4.流程控制
# 条件真假情况如下: # 布尔类型:True为真,False为假 # 对于数字:0或0.0当作假,其它为真 # 对于其它类型,对象为空时为假,其它情况为真,比如:""空字符串、[]空列表、()空元组、{}空字典、None空值。 # pass语句,让解释器跳过此处,什么都不做 a = 10 if 10 == a: pass else: print("a != 10") # assert 断言语句,表达式的值为真,则继续往下执行,反之会报AsserttionError错误 # 格式:assert 表达式 '''相当于 if 表达式 == True: 程序继续执行 else: 程序报AssertionError错误 ''' a = 10 assert 10 == a print("表达式为真") # for循环,常用于遍历字符串、列表、元组等序列 str1 = "12345" for a in str1: print(a,end=' ') print() # 内置函数 range(start,stop[,step]) 常用于遍历数字序列,该函数可以生成算术级数 for a in range(5):# range(5)等价于range(0,5) print(a,end=' ') print() # for循环遍历字典时,遍历的时键值 dict1 = {'one':1, 'two':2, 'three':3} for a in dict1:# 相当于 for a in dict1.keys(): print(a,end=' ') print() # 循环结构中else的使用 num = 0 while num < 5: print(num,end=' ') num+=1 else:# 当循环条件为False时,执行else的代码,然后跳出循环(for循环同样适用) print("end") # 循环嵌套(乘法表) for a in range(1,10): for b in range(1, a+1): print("%2d *%2d =%2d" %(a,b,a*b),end='') print() # 嵌套循环(冒泡) date = [5, 8, 4, 1] num = len(date) for i in range(num-1): for j in range(i+1, num): if date[i] > date[j]: date[i], date[j] = date[j], date[i] print(date) # break 跳出本层循环 str1 = "break跳出本层循环,continue跳出本次循环" for char in str1: if ',' == char: break print(char,end='') print('-结束') # continue 跳出本次循环 str1 = "break跳出本层循环,continue跳出本次循环" for char in str1: if ',' == char: continue print(char,end='') print("-结束") # python推导式,快速格式化各类序列 # 列表推导式 # [表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]] list1 = [i*i for i in range(5)] print(list1) # 嵌套的列表推导式 list1 = [(x, y) for x in range(5) for y in range(4)] print(list1) '''等价于 list1 = [] for x in range(5): for y in range(4): list1.append((x, y)) ''' # 元组推导式 # (表达式 for 迭代对象 in 可迭代对象 [if 条件表达式]) ob = (i for i in range(5)) # 元组推导式生成的结果并不是一个元组,而是一个生成器对象 print(tuple(ob)) # 字典推导式 # {表达式 for 迭代对象 in 可迭代对象 [if 条件表达式]} list1 = ['123','1234','12345'] dict1 = {key:len(key) for key in list1} print(dict1) # 集合推导式 # {表达式 for 迭代对象 in 可迭代对象 [if 条件表达式]} set1 = {i for i in range(5)} print(set1) # zip()函数,将序列中对应的元素重新组合,生成一个新的元组 list1 = [1,2,3] tuple1 = (4,5,6) print([i for i in zip(list1,tuple1)]) # reversed()函数,将序列中元素逆序 print([i for i in reversed([1,2,3,4])]) print([i for i in reversed(range(5))]) print(list(reversed(range(6)))) # sorted()函数,对序列进行排序,返回排序好的列表 # list = sorted(iterable, key=None, reverse=False) 默认Flase升序,False降序 list1 = [5,4,2,1,3] tuple1 = (5,4,2,1,3) set1 = {5,4,2,1,3} str1 = 'badc' print(sorted(list1)) print(sorted(tuple1,reverse=True)) print(sorted(set1)) print(sorted(str1))