流程控制和一些字符串内部读取关键词或格式
1.流程控制
1.while+continue
立即调出本次循环,同属一个代码块后面的代码都不会进行,直接回到while //不仅可以用在while中,for循环中也可以
例:
1 # 打印出0到5的数字,除了3 2 x = 0 3 while x <= 5: 4 if x == 3: 5 x += 1 6 continue 7 else: 8 print(x) 9 x += 1 10 ''' 11 打出结果: 12 0 13 1 14 2 15 4 16 5 17 '''
2.while+else
当while循环内没有被人为中断(break)的时候,会执行else语句,就是while循环分为两半,第一部分是循环部分,第二部分就是else这块,循环部分如果没有break的部分时,else不参与循环,循环结束后再执行else;如果循环部分有break时,循环到break时直接结束整个while循环,else部分也不执行。
例:
1 count = 0 2 while count < 10: 3 if count == 3: 4 break 5 print(count) 6 count += 1 7 else: 8 print('嘿嘿嘿') 9 10 ''' 11 当没有break的部分时会输出0到9,然后再输出'嘿嘿嘿' 12 有了break的部分后,进行到时候直接跳出循环,且'嘿嘿嘿'不再输出 13 '''
3.死循环
就是循环一直进行,计算机内部一直在进行循环,容易烧坏cpu
例:
1 while True : 2 (123)
4.for循环
for循环和while循环一样,满足判断条件的情况下会一直循环代码块,但是for循环比while循环代码简洁一点,而且不会出现死循环
语法结构:
for 变量名 in 可迭代对象: //就是可以循环的对象,除了int不行其他类型都可以
print()
当可迭代对象是字典时,打印出来的部分是K
例:
1 name_list = ['kevin', 'tank', 'jason', 'tony'] 2 # 循环取出列表中每一个人名 3 for name in name_list: 4 print(name)
当可迭代对象是字典时:
1 d = {"username":'kevin', "age":18} 2 for i in d: 3 print(i, d[i]) 4 5 ''' 6 输出结果: 7 username kevin 8 age 18 9 '''
5.range关键字
一般配合for 循环使用,就是某个区间内,走某个步长(某个跨度),比如range(1,10,3)从1开始到10结束,每次循环都第三步的时候执行,省去2,3的情况,走到第三步4的时候执行,当为10的时候判断成功就直接跳出了,所以也不包含末尾的部分,只有一个数的时候默认从0开始,走一步,2个数的时候从头开始到尾-1。
例:
1 # range关键字有三种玩法,一般配合for循环使用 2 # 1. 3 for i in range(10): # 如果只有一个参数,意思是:从0到10的整数 4 print(i) 5 # 2. 6 for i in range(3, 10): # 如果有两个参数,意思是:从3到10的整数 7 print(i) 8 # 3. 9 for i in range(1, 10, 2): # 如果有三个参数,意思是:从1到10的整数,步长为2 10 print(i)
6.for+break
就是跳出循环,break对应的是于它上级的循环结束
例:
1 for i in range(10): 2 if i == 3: 3 break 4 print(i) 5 6 ''' 7 输出结果: 8 0 9 1 10 2 11 '''
7.
1 for i in range(10): 2 if i == 3: 3 continue 4 print(i)
8.
1 for i in range(10): 2 if i == 3: 3 break 4 print(i) 5 else: 6 print('嘿嘿')
9.
1 for i in range(1, 10): 2 for j in range(1, i + 1): 3 print('%s*%s=%s' % (i, j, i * j), end=' ') 4 print()
10.数据类型内置办法
就是转换数据的类型
表现形式:名字() int() print()
1.整型
int 了解一下
# int它也支持二进制转换 print(bin(10)) # 0b 1010 0b代表的就是二进制 print(oct(10)) # 0o 12 0o代表的是八进制 print(hex(10)) # 0x a 0x代表的是十六进制
1 # 把二进制转为十进制 2 print(int('0b1010', 2)) 3 print(int('0o12', 8)) 4 print(int('0xa', 16))
2.浮点型
# 1.3 float同样可以用来做数据类型的转换 s = '12.3' res=float(s) res,type(res) # (12.3, <class 'float'>)
4.字符串
当字典列表需要用括号括起来的转换成字符串后,其括号逗号也成为其一部分
1 # 类型转换 2 print(str(res), type(str(res))) 3 print(str(1.11), type(str(1.11))) 4 print(str('helloworld'), type(str('helloworld'))) 5 # print(str([1, 2, 3, 4]), type(str([1, 2, 3, 4]))) 6 print(str({'a': 1, 'b': 2}), type(str({'a': 1, 'b': 2}))) 7 print(str((1, 2, 3)), type(str({'a': 1, 'b': 2}))) 8 print(str(({1, 2, 3})), type(str({'a': 1, 'b': 2})))
一些关键字
11.字符串的内置办法
1.print( res[ -x ] )
读取res字符串中,从右边到x的位置的那个内容
2.print( res[ x : y :z])切片
依次读取res中从x+1开始到y的内容,且步长为z(z为正数时),类似range的原理类似,也可以省略步长,默认步长为1,其他情况如下
例:
1 print(res[0:]) #helloworld 2 print(res[2:]) #从第3个开始 冒号右边不写,一直切到结束 3 print(res[:6]) #hellow 冒号左边不写从0开始切 4 print(res[::3]) #lw 冒号左边不写从0开始切 3步一打印 5 print(res[::-1]) # res从左到右依次打印 dlrowolleh,翻转字符串其中一种方式
3.长度len
就是数某个变量中有多少个变量值 //字典一个 :算一个
例:
1 print(len(res)) # 93 2 print(len([1, 2, 3, 4])) # 4 3 print(len({'a':1, 'b':2})) # 2
4.strip
移除字符串首尾的指定字符(默认移除空格)
例:
1 res1 = '@@hello@world@@' 2 print(res1) 3 print(res1.strip()) # 默认什么都不写,去掉的是空格 4 print(res1.lstrip()) # 去掉左边空格 5 print(res1.rstrip()) # 去掉右边的 6 7 print(res1.strip('@')) 8 print(res1.lstrip('@')) 9 print(res1.rstrip('@')) # 只能去除两边的特殊符号,中间的去不掉
5.split
按照某个符号或字切分字符串,什么都不写默认为空格
例:
1 res1 = 'kevin 18 123' 2 3 print(res1.split()) # ['kevin', '18', '123'] 默认是空格切分,切分之后是列表的形式 4 res1 = 'kevin|18|male' 5 print(res1.split('|')) # ['kevin', '18', 'male'] 默认是空格切分,切分之后是列表的形式 6 print(res1.rsplit('|', maxsplit=1)) # 切除从右边开始一个'|',如果数字是几就切几次
作业
https://sh.lianjia.com/ershoufang/pg1/
# 使用range函数,生成100个url地址
1 # https://sh.lianjia.com/ershoufang/pg/ 2 # 使用range函数,生成100个url地址 3 for i in range(1, 101): 4 print("https://sh.lianjia.com/ershoufang/pg%s/" % i)