Python学习------起步3(序列与数据类型转换)

news2024/11/16 22:53:22

目录

序列

1.切片

2.列表(list)

 3.元组

数据类型转换

习题


        好了,今天就开始序列的学习了,其实在C语言里面我们学过数组或者字符数组,Python中的序列跟它们一样是一种数据的储存方式,其中学习过程也是比较相似的,好了正式进入话题。

序列

概念

        所以什么是序列?实际上就是一块可以存放多个值的内存空间,这跟C语言的数组是差不多的,都是一块可以存放多个值的连续内存空间。那序列也是分有序序列和无序序列,如果存放的值是按照顺序排列的那就叫有序序列,每个值所在的位置都有自己的编号(下标),可以通过所在的位置去找到它们;如果数据存放没有顺序的那就是无序序列,这没什么好讲的,很容易理解。

 有序序列与无序序列的类型成员

有序序列有:字符串 ,列表,元组
无序序列有:集合,字典

我们学习一般重点去学习有序序列的,有序序列内容更加丰富。 

 序列的元素排序(下标)规则

从左往右:是从0开始的,依次递增

从you往左:是从-1开始的,依次递减

(以下演示内容我是在Python的IDLE里面进行演示,包括脚本模式和交互模式) 

1.切片

        很好理解 ,当我们要在序列里面去查询寻找一定范围的元素数据,我们可以通过切片把我们要找的东西切出来,让我们可以看到,就产生了一个新的序列

 name[start:end:step]
序列名[始索引位置:结束索引位置:步长]       

(1)获取一个值:

格式:

序列名[下标] 

这里我想说明一下:这个下标是可以为负数,因为上面说过序列里面可以从左往右从0开始依次递增,也可以从右往左即-1开始依次递减 

我们之前讲的字符串其实就是序列的一种,比如str='吃饭了没有'  那如果我想要找出里面其中的一个字比如 '饭' 这个字那我们就可以通过切片去找出来。

从左往右(依次递增):

从右往左(依次递减):

 很简单,直接输出str[下标] 就行了跟C语言的字符串差不多。

(2)获取多个值

格式:

序列名[起始值:终点值]    

还是那句话str='吃饭了没有'  这里我如果想要输出 '没有' 这两个字,我们同样可以通过切片把这个str 里面的内容切出来,同样跟上面一样,也是有从左往右与从右往左去输出。

从左往右:

 从右往左:

 这里我解释一下,因为从右往左是从-1开始的,如果我写入a=str[-2:-1] 实际上会输出一个‘没’ 字,后面的就没有了,按照位置来算最后一个‘有’ 是第-1的位置,所以我们可以通过a=str[-2:]来表示从第-2这个位置进行开始切直到这个字符串结束,那么就会有人去问我直接a=str[-2:0] 不就行了么,但是别忘了,这个的终止位置是0,在没有设置步长的时候计算机默认是从左到右依次递增的顺序来计算的,也就是说我如果a=str[-2:0],是从-2这个位置开始依次加一,直到加到0,那么0位置是第一个字符的位置,但是我的-2位置对应的正数位置('吃饭了没有')是第3位,所以实际上我是从0每次加1直到到3,这可能吗?不可能的,所以输出结果为空。

规律

当切片取到最后一个值的时候就可以省略终点值的下标(包头不包尾)

当切片该值为第一位的时候就可以省略起点值的下标(包尾不包头)

当切片的终点值大于这个字符串最后一个字符的位置值时,结果输出是从起点到这个字符串最后一个字符(越界当做尾)

示例如下:

1.

( 这里可以看到我完整输出这个字符串,可以用str[:]  直接输出,其实这里没有进行切片,所以默认输出完整字符串)

2.

 (这里可以看出'为人民服务' 这个字符串最后一个字符'务' 的位置是4,然而这里print(str[1:8])很明显已经越界了,但是输出结果是从起点直到这个字符串结束,这就是越界当做尾)

(3)步长取值(字符串)

格式:

name[start:end:step]
序列名[始索引位置:结束索引位置:步长]    

        刚刚说过,python中:表示在切片中每隔几个位置去取一次元素,当步长为1的时候可以省略掉 ,如果我们没有去设置步长的时候系统默认取值方向是从左到右依次递增的,这里我们可以在范围取值的过程加上步长,就是每隔几个位置取一个字符形成新的字符串,然后输出。

        示例:str='你是个小可爱'  对这个字符串操作,输出 : 你个可

 这里我们可以看出当我设置步长为2的时候就可以实现每隔一个进行输出,实际上就是从0开始每数两个然后输出直到这个字符串末尾,最后输出的位置有:0,2,4,  (所以结果是:你个可)

当然了,步长还可以设为负数的呢,也就是反向输出,比如我让这个字符串倒序输出:

看吧非常简单,3行就搞定了,连循环都不需要,如果是在C语言的话一般都要用到循环,或者用到其他函数,在Python就非常简单了,直接设置步长为-1,从默认位置0位置开始,倒序输出直到这个字符串全部遍历结束 。

知识点:如果不去设置引索起始位置或者终止位置的值的话,解释器会默认从改位置开始直到整个序列全部遍历结束

2.列表(list)

概念:

列表是一个可以存放多个值的容器,是属于有序序列

定义列表:

使用  列表名=[ ]  创建列表后,一般使用=将它赋值给某个变

示例:

 用type函数可以查看出整个num的数据类型是列表,输出结果也就是一个列表,这也就实现了列表的创建。

列表是有序序列,属于列表是有下标值的(位置),所以我们可以通过上面讲到的切片法去查找我们想要的结果。

 这里就给一个示例了,其实方法跟上面一样的,同样也可以去设置步长等等……

列表的数据类型;

列表里面的元素可以是Python支持的所有数据类型

 列表的嵌套:

列表里面,还可以再放列表 ,进行列表的嵌套

列表的修改:

列表是可以进行修改的,我们可以通过列表的下标进行修改某一个位置的值

 3.元组

元组的表现形式为用()小括号包裹起来的数据,里面的数据用,逗号隔开 。

格式:

元组名 = (数据1,数据2, ……)

同样元组也是可以用切片法进行数据处理,这里就不多说了。

 注意事项:

如果一个元组里面只要一个元素的时候,必须在末尾加上逗号,不然解释器不会认为该类型是一个元组

示例如下: 

元组与列表的区别:

1.元组是小括号,列表是中括号

2元组的数据是不可变的,列表的数据是可变

数据类型转换

把数据转换为别的类型就叫数据类型转换

int(x):将 x 转换成整数类型

float(x):将 x 转换成浮点数类型

str(x):将 x 转换为字符串

bool(x):把x转为布尔类型

list(x):把x转为列表

tuple(x) : 把x转为元

示例:

这个就是把字符串类型转换为int类型,然后进行数学运算。在没类型转换之前是纯粹的字符串拼接'12' 后面接上 '3' 然后输出'123' 进行int类型转换之后就是12+3=15 

习题

1.列表的可以存放什么数据?

2.定义一个列表,列表中有2种数据类型,取出列表的每一个元素数据类型.

3.输出'欲穷千里目,更上一层楼',其中逗号后面要换行

4.str1='你真是小可爱呀',取出'你是可呀'

5.简述列表与元组的区别

6.当元组中元素只有一个的时候该如何定义

7.times = '20230201',输出格式为 结果为:2023年02月01日

兄弟们,感觉做做吧!!

答案

#Pyhon 学习 day3

#1
# Pyhon所有数据类型
#2
lists=[1,1.5]
print(type(lists[0]),type(lists[1]))
#3
print('欲穷千里目,\n更上一层楼')
#4
str1='你真是小可爱呀'
print(str1[::2])
#5
#(1)列表是用[]表示的,元组是用()表示的
#(2)列表是可修改的,元组是不可修改的
#6
#要在后面加上逗号,比如str1=(1,)
#7
times = '20230201'
print(times[0:4]+'年'+times[4:6]+'月'+times[6:]+'日')

 

 好了,这一期就讲这么多了,记得给个赞哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode动态规划(九):完全背包(初级)

学习目标: 理解完全背包和0-1背包遍历顺序的区别 学习内容: 15. LeetCode377. 组合总和 Ⅳhttps://leetcode.cn/problems/combination-sum-iv/ 16. 爬楼梯(进阶班版) 17. LeetCode322. 零钱兑换https://leetcode.cn/problems/coin-change/ 18. Leet…

winform发布功能附加dll、db、xml、json等文件

我们日常进行程序的更新升级可能会用到winform的发布功能,但有些文件可能会无法伴随着发布一同发布出去或者每次发布后文件的数据被覆盖,下面一起看一下怎么解决: winform发布功能参考我另一篇文章https://blog.csdn.net/qq_39569480/articl…

筑基四层 —— 详解三子棋和扫雷

目录 一.修炼必备 二.三子棋详解 三.扫雷详解 四.三子棋和扫雷的完整代码 !!!恭喜你,成功突破至筑基四层!!! 一.修炼必备 1.入门必备:VS2019社区版,下载地址&#xff…

leetcode51,52 N皇后相关(回溯方法)

题目1:N皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题…

入职一年,那个准的下班的人,比我先升职了...

最近心态崩了。 和我同期一道进公司的人又升了一级,可是明明大家在进公司时,他不论是学历还是工作经验,样样都不如自己,眼下不过短短的两年时间便一跃在自己的职级之上,这着实让我有几分不甘心。 我想不明白&#xff…

谈谈Linux epoll惊群问题的原因和解决方案

近期排查了一个问题,epoll惊群的问题,起初我并不认为这是惊群导致,因为从现象上看,只是体现了CPU不均衡。一共fork了20个Server进程,在请求负载中等的时候,有三四个Server进程呈现出比较高的CPU利用率&…

OpenCV 图像平滑处理

本文是OpenCV图像视觉入门之路的第10篇文章,本文详细的在图像上面进行了图像均值滤波、方框滤波 、高斯滤波、中值滤波、双边滤波、2D卷积等操作。 OpenCV 图像平滑处理目录 1 均值滤波 2 方框滤波 3 高斯滤波 4 中值滤波 5 双边滤波 6 2D卷积(自定义…

电子技术——分立MOS放大电路

电子技术——分立MOS放大电路 有了前两节的学习,即三种放大器配置和偏置方法之后,我们可以通过现成的分立晶体管、电阻、电容等搭建分立MOS放大电路。 DC偏置基本结构 在本节我们选用的DC偏置基本结构是如图所示的源极恒流源的偏置方案,下图…

用#define宏实现Add函数

✋作者:阿润菜菜 📖专栏:C语言 我们知道#define宏是一种非常暴力的替换,宏定义会在程序编译预处理阶段在调用宏的位置进行文本内容的直接替换,因此我们在使用宏定义实现Add加法函数时就要注意一些可能会报错的问题。 …

第九层(10):STL之函数对象

文章目录前情回顾函数对象概念特点谓词概念内建函数对象分类算术仿函数关系仿函数逻辑仿函数下一座石碑🎉welcome🎉 ✒️博主介绍:一名大一的智能制造专业学生,在学习C/C的路上会越走越远,后面不定期更新有关C/C语法&a…

你是如何学习 Java 的?

每一个行业中能成为大佬的人,一定都有他自己一套具有独到见解的方法...... 这个问题我很有发言权,从刚毕业做Java实习生月薪2k,到现在干了5年Java开发月薪43k,一直都在保持不断学习的状态。以我个人的经验来看,一个程…

视频分割新范式:视频感兴趣物体实例分割 VOIS

1. 背景视频中物体分割是视频理解的基础算法,也是对淘宝商品视频分析和加工所依赖的重要能力。传统的视频分割任务一般分为两种类型:一种是VOS(Video Object Segmentation),该任务需要在第一帧给出物体的初始分割标注&…

Linux系列 目录和文件管理

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 简介 本章重点 一.检查文本内容 ​编辑 1.cat命令——显示并…

MySQL分表查询之Merge存储引擎实现

概念介绍 MySQL 分表之后怎么进行联合查询?用有表数量限制的 union all,还是汇总到一张表再查询,亦或用Sphinx( 高性能SQL全文检索引擎 )? 在这篇文章里,介绍使用 Merge [mɜːrdʒ] 存储引擎…

浅读人月神话(2)

读书笔记:今日翻书浅读,从《为什么巴比伦塔会失败》开始至《干将莫邪》结束,巴比伦塔的建造对当下项目推进有广泛借鉴意义,今天这几个章节在PMBOK中有一些可以互相对照学习的内容,《为什么巴比伦塔会失败?》…

荔枝派 zero 使用 Jlink 调试

Jlink 所谓硬件版本,就是这个调试器的硬件是第几代,我手上的这个是 V8 所谓固件版本,就是这个调试器主芯片中内置的软件是什么版本,我刷入的是 J-Link ARM V8 compiled Nov 28 2014 13:44:46 所谓 Jlink 工具版本,就…

记录--原生 canvas 如何实现大屏?

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 可视化大屏该如何做?有可能一天完成吗?废话不多说,直接看效果,线上 Demo 地址 lxfu1.github.io/large-scree…。 看完这篇文章(这个项目)&#xff…

在线支付系列【13】微信支付之签名验签流程分析

有道无术,术尚可求,有术无道,止于术。 文章目录前言签名生成签名验证总结前言 在上篇文档中,我们简单实现了对接微信支付的几个接口。了解到wechatpay-apache-httpclient框架自动实现了签名和验签,接下来跟踪下源码&a…

LeetCode-136. 只出现一次的数字

目录题目分析哈希集位运算题目来源 https://leetcode.cn/problems/single-number/ 题目分析 题目有个条件可谓相当重要,即凡重复的元素最多重复一次(原话:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个…

详解Mybatis-Plus中分页插件PaginationInterceptor, MybatisPlusInterceptor在SpringBoot中的使用

文章目录1. 描述1.1 MybatisPlusInterceptor1.2 InnerInterceptor2. 实现2.1 不带条件的分页查询2.2 带条件的分页查询2.3 简述Page类3. 注意事项1. 描述 1.1 MybatisPlusInterceptor 我们在开发的过程中,经常会遇到分页操作,其分为逻辑分页和物理分页…