------------恢复内容开始------------
while搭配和数据类型的内置方法
一.while + continue
例子:1. 使用while循环打出0--10
count = 0
while count < 11:
print(count)
count += 1
2.使用while循环来打印0--10,但不打印4。
count = 0
while count < 11:
if count == 4:
count += 1
continue
print(count)
count += 1
ps:continue会让循环体代码直接回到条件判断处重新判断
while + else
count = 0
while count < 5
print(count)
count += 1
else:
print(嘿嘿嘿)
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print(嘿嘿嘿) # 始终不会执行else 子代码
ps:当while循环没有被人为中断(break)的情况下才会走else
死循环
while True:
print(1)
ps: 死循环会让cpu极度繁忙 甚至崩溃
for循环
for循环能做到的事情 while循环都可以做到
但是for循环语法更加简洁 并且再循环取值问题上更加方便
例子: name_list = ['jason', 'tony', 'kevin', 'jack', 'xxx']
# 循环取出列表的每一个元素并打印
# while实现
count = 0
while count < 5:
print(name_list[count])
count+= 1
# for循环实现
for name in name_list:
print(name)
for循环字符串
for i in 'hello world':
print(i)
for循环字典:默认只能拿到k
d = {'username': 'jason', 'pwd': 123, 'hobby': 'read'}
for k in d:
print(k, d[k]) (这样就是打印k:v)
ps: for 变量名 in 可迭代对象: (可迭代对象可以是 字串符 列表 字典 元组 集合)
以上就是for循环代码
变量名如果没有合适的名称 那么可以使用i,j , k , v , item等
range关键字
关键字range
第一种:一个参数 从0开始 顾头不顾尾
for i in rang(10):
print(i)
第二种:两个参数 从0开始 顾头不顾尾
for i in rang(4, 10):
第三种:三个参数 第三个数字用来控制等差值
for i in rang(2, 100, 10):
print(i)
扩展知识:
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= 第四页
https://movie.douban.com/top250?start=0&filter= 推测第一页
base_url = "https://movie.douban.com/top250?start=%s&filter="
for i in range(0, 250, 25):
print(base_url % i)
# range在不同版本的解释器中 本质不同
在python2.X中range会直接生成一个列表
在python2.X中有一个xrange也是迭代器(老母猪)
在python3.X中range是一个迭代器(老母猪) 节省内存空间
'''python2.X中xrange就是python3.x里面的range'''
for + break
break功能也是结束本层循环
for i in rang(10):
if i == 4:
break
print(i)
for + continue
continue功能也是用于结束本次循环
for i in rang(10):
if == 4:
continue
print(i)
for + else
else也是在for循环正常结束的情况下才会执行
for i in rang(10):
if == 4:
break
print(i)
else:
print(‘你来追我!!’)
for循环的嵌套使用
例子: for i in range(3):
for j in rang(5):
print(“*”,end='')
print()
例子2: for i in rang(1, 10):
for j in range(1, i + 1)
print('%s*%s=%s' % (i, j, i * j), end=' ')
print()
数据类型的内置方法
在日常生活中不同类型的数据具有不同的功能
eg:表格数据文件具有处理表格的各项功能(透视表 图形化 公式计算)
视频数据文件具有快进 加速等各项功能
......
1.整型int
方在代码中展示出来的效果就是 名字()
类型转换
res = '123'
print(type(res)) # <class 'str'> 字符串
res = int(res)
print(type(res)) # <class 'int'>
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
print(int('0o144', 8)) # 100
print(int('0x64', 16)) # 100
浮点型float
类型转换
res = '123.23'
print(type(res))
res = float(res) (将res所指向的值)转换成浮点型 并重新给到变量名res
print(type(res))
print(float('123')) # 123.0
字符串str
类型转换
print(str(123))
print(str(123.21))
print(skr([1, 2, 3, 4]))
print(str({'name' : 'jason', 'pwd' : 123}))
print(str((1, 2, 3, 4)))
print(skr(True))
print(skr({1, 2, 3, 4}))
基本用法
res = 'hello world'
1.索引取值
print(res[1]) # e
2.切片操作 顾头不顾尾
print(res[1:4]) #ell
3.步长操作
print(res[1:10]) #ello worl
print(res[1:10:2]) #el ol (隔一个取值)
4.索引支持负数
print(res[-1]) # ! (最后一位)
print(res[-5:-1]) # orld 顾头不顾尾
print(res[-5:-1:-1]) # 方向冲突
5.统计字符串内部字符的个数
print(len(res)) #12
6.移除字符串收尾指定的字符 strip()
name = ' jason '
print(name, len(name))
print(len(name.strip())) # 默认移除首尾的空格
name1 = '$$jason$$'
print(name1.strip(‘$’)) # jason
print(name1.lstrip('$')) # jason$$
print(name1.rstrip('$')) # $$jason
username = input('username>>>:')
username = username.strip()
username = input('username>>>:').strip()
if username == 'jason':
print('老板好')
else:
print('去你妹的')
7.按照指定的字符切割字符串 split() 该方法的结果是一个列表
res2 = 'jason|123|18'
print(res2.split('|')) # ['jason', '123', '18']
print(res2.split('|', maxsplit=1)) # ['jason', '123|18'] maxsplit用于控制切割的次数
print(res2.rsplit('|', maxsplit=1)) # ['jason|123', '18']
ps:如何查看数据类型都有哪些内置方法: 句点符(.)