while 条件:
条件成立之后循环执行的子代码块
每次执行完循环体子代码之后都会重新判断条件是否成立
如果成立则继续执行子代码如果不成立则退出
break用于结束本层循环
### 一:continue:结束本次循环,开始下一次循环
1.直接让代码再次回到while循环的条件判断处,重新判断条件在执行,这就叫做continue
- break结束本层循环 # continue结束本次循环
- continue会让循环体代码直接回到条件判断处重新判断
### 2.while+else
当while循环没有被人为中断(break)的情况下才会走else/执行子代码
当while循环被人为中断(break)的情况不会走else/执行子代码
3.死循环
"""死循环会让CPU极度繁忙 甚至奔溃"""
### 4.for循环
1.or循环能做到的事情 while循环都可以做到
但是for循环语法更加简洁 并且在循环取值问题上更加方便
现在我有一个班级列表,里面存了几个人名字,循环取出列表每一个元素/数据,打印出来
循环取出列表每一个元素,并打印
while实现:
- for 变量名 in 可迭代对象: # 字符串、列表、字典、元组、集合 for循环体代码
- ps:变量名如果没有合适的名称 那么可以使用i,j,k,v,item等
- for循环实现:
for 变量名 in 可迭代对象
循环依次取出列表内的元素,直到列表内取完一个不剩 自动结束。
现在我有一个班级列表,里面存了几个人名字,循环取出列表每一个元素/数据,打印出来
循环取出列表每一个元素,并打印
for循环可以把列表内的元素都打印出来
- for循环 字符串
从头开始,把第一个字符,赋值给变量名i,打印i之后这个子代码就结束了,
结束之后这个i就解放了,就会不绑定这个i了,就绑定第二个字母e,然后在绑定l,打印l,这个叫for循环,迭代取值。
- for循环 字典
详细
for循环字典:默认只能拿到k
5.range关键字
- while实现 循环打印出0-1000
关键字range - range 能产生一定范围的数字
range是专门配合for循环使用的,频率非常的高
range相当于是一个数字范围,
第一种:一个参数 从0开始 顾头不顾尾
第二种:两个参数 自定义起始位置 顾头不顾尾
第三种:三个参数 第三个数字用来控制等差的数值
-
range(范围)
https://movie.douban.com/top250 第一页
https://movie.douban.com/top250?start=25&filter= 第二页
https://movie.douban.com/top250?start=50&filter= 第三页
https://movie.douban.com/top250?start=75&filter= 第四页 网址链接 获取
range在不同版本的解释器中 本质不同
在python2.X中range会直接生成一个列表
在python2.X中有一个xrange也是迭代器(老母猪)
在python3.X中range是一个迭代器(老母猪) 节省内存空间
'''python2.X中xrange就是python3.x里面的range'''
6.for循环的功能
for+break
break:功能也是用于结束本层循环for+continue
continue:功能也是用于结束本次循环for+else
else:也是在for循环正常结束的情况下才会执行
7.for循环的嵌套使用
- for循环嵌套(大循环套小循环)
1.for嵌套
演示1:
演示2: - for循环(99乘法表)
### 8.数据类型的内置方法
在日常生活中不同类型的数据具有不同的功能
# eg:表格数据文件具有处理表格的各项功能(透视表 图形化 公式计算)
视频数据文件具有快进 加速等各项功能
程序里也有不同的数据类型,每个数据类型也有它独有的功能
## 数据类型的内置方法
方法在代码中展示出来的效果 就是 名字() 如:print() inpit() id()等
# 整型 (int)
i = 999
# 唯一需要掌握的就是 类型转换
res = '123' # '123'类型字符串
print(type(res)) # 查看res类型为(字符串)
res = int(res) # 将res转换为(整型)
print(type(res)) # 查看res类型为(整型)
# int在做类型转换的时候 只能转换纯数字
int('123.123') # 报错 整型是不识别小数字的
int('jason123') # 报错 不识别除数字以外的数据
# # int其实还可以做进制数转换
print(bin(100)) # 将十进制的100转换成二进制 0b1100100 #十进制逢十进一
print(oct(100)) # 将十进制的100转换成八进制 0o144 #八进制逢八进一
print(hex(100)) # 将十进制的100转换成十六进制 0x64 #十六进制逢十六进一
# 0b开头为二进制数 0o开头为八进制数 0x开头为十六进制数
# 怎么把其他进制数转换成十进制
print(int('0b1100100', 2)) # 100 # 前面放int 后面字符串形式 后面放上是几进制数
print(int('0o144', 8)) # 100
print(int('0x64', 16)) # 100
# 相互类型的转换
*1.浮点型float
类型转换:
res = '123.23'
print(type(res)) # class str 输入输出都为字符串
res = float(res) # 将res所指向的值转换成浮点型,并重新赋值给res变量名
print(type(res)) # 查询res类型为:浮点型
print(float('123')) # 将整型转换成浮点型 123.0
print(float('jason123')) # 报错 不识别 数字 小字点 以外的
- 2.字符串str
类型转换
# 字符串的 str
# 类型转换
# * 任何数据类型都可以转换成字符串
print(str(123)) # 转整型
print(str(123.21)) # 转浮点型
print(str([1, 2, 3, 4])) # 转列表
print(str({'name': 'jason', 'pwd': 123})) # 转字典
print(str((1, 2, 3, 4))) # 转元组
print(str(True)) # 转布尔值
print(str({1, 2, 3, 4})) # 转集合
# 都转成了字符串
9.基本用法:
res = 'hello world'
# # 索引取值
# print(res[1]) # e
#
# # 切片操作 # 顾头不顾尾
# print(res[1:4]) # ell
# 步长操作
print(res[1:10:1]) # ello worl # 写1和不写1一样的,1就是不跳,2就是跳1格
print(res[1:10:1]) # ello worl
print(res[1:10:2]) # el # 2:跳一格 隔一格取一个
# 帮助你有规则的去取,跳几格,跳几格。
res = 'hello world!'
1.索引支持负数
print(res[-1]) # ! 取最后一位
2.切片支持负数
print(res[-5:-1]) # orld 顾头不顾尾
3.步长支持负数
print(res[-5-1]) # 取不到 方向冲突
5.统计字符串内部字符的个数
res = 'hello world!'
print(len(res)) # 12 # 统计空格也算,len统计字符个数,把你想要的东西放在里面,会返回这个数据的格数
6.移除字符串首尾指定的字符 strip()
# name = ' jason ' # 首尾两个空格
# print(name, len(name)) # 打印name 统计name有9个个数
# print(len(name.strip())) # 统计name有9个个数 strip()默认移出首尾的空格
# # 也可以指定移出符号
# name1 = '$$jason$$'
# print(name1.strip('$')) # 指定移出首尾的字符
# print(name1.lstrip('$')) # lstrip移除左边
# print(name1.rstrip('$')) # rstrip移除右边
- 实现用户输入时加入空格时,去除首尾空格
eg:strip用习惯后可以直接:
username = input('请输入您的姓名').strip()
意思:先获取用户输入的内容,在移除首尾的空格,在赋值给变量名username,在使用。
7.按照指定的字符切割字符串 split() 该方法的结果是一个列表
res2 = 'jason|123|18'
# 这个字符串里面包含了jason的用户名,密码,年龄,现在把这三个赋值给三个变量。
print(res2.split('|')) # 切割结果为列表['jason', '123', '18']
print(res2.split('|', maxsplit=1)) # 用于控制切割的次数,切割数为1,只切割一个,从左往右
print(res2.rsplit('|', maxsplit=1)) # 控制切割次数,切割为1 :rsplit从右往左切
整体
res2 = res2.split('|')
name = res2[0]
gae = res2[1]
count = res2[2]
print(name, gae, count)
技巧:
如何查看数据类型都有哪些内置方法
句点符(.)