补充流程控制及基本数据类型的内置方法
流程控制
while+continue
例:
# 请听题:循环打印出0-10之间的数字 # 请听题:循环打印出0-9之间的数字,但是不打印6 count = 0 while count < 4: if count == 2: count+=1 continue # 是调出本次循环 print(count) count += 1
运行结果:
while+else
当while循环内没有被人为中断(break)的时候,会执行else语句。
例:
count = 0 while count < 5: if count == 3: break print(count) count += 1 else: print('嘿嘿嘿')
运行结果:使用break / 未使用
while True: print(123) # 在程序中,死循环坚决不能出现
for循环
for循环能做的事情,while循环都能够做
for循环代码更加简介,另外,它不会出现死循环.
# 请听题: name_list = ['kevin', 'tank', 'jason', 'tony'] # 循环取出列表中每一个人名 for name in name_list: print(name)
运行结果:
""" 语法格式: for 变量名 in 可迭代对象: # 可迭代对象:可循环的对象,字符串、列表、字典、元组等 print() 当你的变量名没有合适的名字可叫的时候,可以采用i,j,k,v,item等代替 """ # 字典报出来的是字段的K # 循环打印字段的k和v
d = {"username":'kevin', "age":18} for i in d: print(i, d[i])
运行结果:
range关键字
一般配合for循环使用,有三种:
1 for i in range(10): # 如果只有一个参数,意思是:从0开始,到10之间的整数 print(i) 2 for i in range(3, 10): # 如果有两个参数,意思是:从3开始,到10之间的整数 print(i) 3 for i in range(1, 10, 2): # 如果有三个参数,意思是:从1开始,到10之间的整数,隔2个步长 print(i)
例:
1 base_url = 'https://movie.douban.com/top250?start=%s&filter=' 2 for i in range(0, 150, 10): # 网址使用占位符%s 3 print(base_url % i)
运行结果:
for+break/continue
1 for i in range(10): 2 if i == 3: 3 break/continue 4 print(i)
运行结果:
for+else
1 for i in range(10): 2 if i == 3: 3 break 4 print(i) 5 else: 6 print('嘿嘿')
九九乘法表
for i in range(1, 10): for j in range(1, i + 1): print('%s*%s=%s' % (i, j, i * j), end=' ') # 要公式示范 print()
运行结果:
数据类型内置方法
就是给各个数据类型内置的功能,如:表格数据有公式计算、透视表、对边框的各种操作等功能;视频数据有暂停、快进、倍速等功能。
它表现的形式:名字() int() print()
1.整形(int)
# 常见的进制数:二进制、八进制、十进制、十六进制(A B C D E F)
# 二进制和十进制之间转换
# 十进制转二进制:除2取余法
print(bin(10)) # 0b 1010 0b 代表的就是二进制 print(oct(10)) # 0o 12 0o 代表的是八进制 print(hex(10)) # 0x a 0x 代表的是十六进制
2.浮点型(float)
1 >>> s = '12.3' 2 >>> res=float(s) 3 >>> res,type(res) 4 (12.3, <class 'float'>)
3.字符串(str)
1 print(str(res), type(str(res)))
2 print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4])))
内置方法
l = [1, 2, 3, 4] res1 = str(l) # 转成字符串 print(res1[4])
运行结果:
支持索引取值:
1 res='helloworldhelloworldhelloworldhelloworldhelloworldadadasdasdsadhelloworldhelloworldhelloworld' # 支持索引取值 2 # print(res[0]) # h 3 # print(res[1]) # e
切片:顾头不顾尾
1 print(res[0:3]) # hel
2 print(res[0:9:2]) # hlool 步长
反向切片
# print(res[2:]) # lloworld 冒号右边不写,一直切到结束
# print(res[:6]) # hellow 冒号左边不写从0开始切
# print(res[::3]) # hellow 冒号左边不写从0开始切
# print(res[::-1]) # dlrowolleh,翻转字符串其中一种方式
长度len
# print(len(res)) # 93 length---->len
# print(len([1, 2, 3, 4]))
# print(len({'a':1, 'b':2}))
例子:
strip 移除字符串首尾指定的字符(默认移除空格)
res1 = '@@hello@world@@'
# print(res1)
# print(res1.strip())
# print(res1.lstrip())
# print(res1.rstrip()) # 默认什么都不写,去掉的是空格
print(res1.strip('@')) 去除两边
# print(res1.lstrip('@')) 去除左边
# print(res1.rstrip('@')) 去除右边的特殊符号
# 中间的去不掉
1 切分 split 2 res1 = 'helloworld' 3 res1 = 'kevin 18 123' 4 res1 = 'kevin|18|male' 5 print(res1.split()) # ['kevin', '18', '123'] 默认是空格切分,切分之后是列表的形式 6 print(res1.split('|')) # ['kevin', '18', 'male'] 默认是空格切分,切分之后是列表的形式 7 print(res1.rsplit('|', maxsplit=1)) # ['kevin', '18', 'male'] 默认是空格切分,切分之后是列表的形式