第11课 循环嵌套和算法
一、循环嵌套
1、打印九九乘法表
for i in range(1, 10): # 行数 for j in range(1, i + 1): # print('{} * {} = {}'.format(j, i, i * j), end = '\t' ) # end = ''---的意思是不换行; \t--制表符,作用是对齐表格数据的各列 print() # print()---默认换行 # 输出结果 1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
二、列表生成式
1、aftertax = [int(one * 0.9) for one in beforetax if one > 3500]
one * 0.9--循环体内容
for one in beforetax---循环语句
if one > 3500----过滤条件
举例:计算员工的税后工资
#---计算员工税后工资 beforetax = [10000, 15000, 8000, 3400, 5000] aftertax = [int(one * 0.9) for one in beforetax if one > 3500] # 加上int取整数,加上if条件判断 print(aftertax) # 执行结果 [9000, 13500, 7200, 4500]
三、算法
1、冒泡排序---alist = [8, 2, 0, 5]
思路:
1)找出 3个较大值,最后一个就是最小的
第一次----8
1---8和2比较-----8 交换位置 ---[2, 8, 0, 5]
2---8和0比较-----8 交换位置----[2, 0, 8, 5]
3---8和5比较-----8 交换位置----[2, 0, 5, 8]
第二次----5
1---2和0比较----2 交换位置----[0, 2, 5, 8]
2---2和5比较----5 不用交换----[0, 2, 5, 8]
第三次----2
1---0和2比较----2 不用交换----[0, 2, 5, 8]
# ------------冒泡排序 alist = [8, 2, 0, 5] for i in range(0, len(alist) - 1): # 遍历列表中的元素 for j in range(0, len(alist) - i - 1): # 比较大小。 len(alist) - i - 1 --- 说明:len(alist) - i表示减去已经比过的下标,再减一是因为从0开始 if alist[j] > alist[j + 1]: alist[j], alist[j + 1] = alist[j + 1], alist[j] # 交换位置 print(alist) # 执行结果 [0, 2, 5, 8]
2、按照从大到小排列,只需要把 if alist[j] > alist[j + 1] 改为 if alst[j] < alist[j + 1]即可
#-------按照从大到小排列 alist = [8, 2, 0, 5] for i in range(0, len(alist) - 1): # 遍历列表中的元素 for j in range(0, len(alist) - i - 1): # 比较大小。 len(alist) - i - 1 --- 说明:len(alist) - i表示减去已经比过的下标,再减一是因为从0开始 if alist[j] < alist[j + 1]: alist[j], alist[j + 1] = alist[j + 1], alist[j] # 交换位置 print(alist) # 执行结果 [8, 5, 2, 0]
四、知识点补充
1、判断条件简写
只要x是非零值、非空字符串、非空list等,就判断为True,否则为False。
>>> alist [1, 2, 3, 4, 5] >>> x = 9 >>> if x: print('hello world') hello world >>> # 只要x是非零值、非空字符串、非空list等,就判断为True,否则为False
2、关于函数的调用,必须先定义后调用。
#----函数先定义,再调用 def bar(): print('in bar()') def foo(): print('in foo()') bar() foo() #-----也可以颠倒次序,函数不调用不执行。 def foo(): print('in foo()') bar() def bar(): print('in bar()') foo()