python-if条件判断与while/for循环
条件判断if
让计算机像人一样,能判断是非对错,根据条件做一些事情。
if
''' ------ if代码结构:------- if 条件: 代码体 tips:同一缩进范围内的代码被视作同一代码体,python官方推荐python缩进一次为4个空格 ''' is_happy = True if is_happy: print("Nice to meet you!") # Nice to meet you!
if else
1 ''' 2 ------ if代码结构:------- 3 if 条件: 4 代码体 5 else: 6 代码体 7 8 tips:当不满足if 的条件时就会执行到else ,运行else 中的代码 9 10 ''' 11 is_happy = False 12 if is_happy: 13 print("Nice to meet you!") 14 else: 15 print("Today is a bad day!") 16 # Today is a bad day!
if elif else
1 ''' 2 ------ if代码结构:------- 3 if 条件: 4 代码体 5 elif 条件: 6 代码体 7 else: 8 代码体 9 10 tips:当不满足if 的条件时就会执行到下一个elif....如果接着的都不满足,那最后执行到else 11 12 ''' 13 math_score = 99 14 if math_score >= 90: 15 print("优秀") 16 elif math_score >= 80: 17 print("良好") 18 elif math_score >= 60: 19 print("一般") 20 else: 21 print("很遗憾,未及格!") 22 # 优秀
if 嵌套
# if可以多级嵌套,注意缩进 math_score = 99 if math_score >= 90: if math_score > 100: print("您的输入有误,请输入正确的分数(0~100)!") else: print("优秀")
循环
使用循环来替代重复往返的动作
while循环
while
''' while 条件: 代码体 tips:不要忘了 条件后面的 : 代码体需要缩进4个空格 ''' i = 1 while i < 4: print(i) i += 1 # 1 # 2 # 3
死循环
# 死循环,使CPU 一直处于运算状态 i = 1 while True: i += 1 # 虽然也是 while True 但因其要等待用户输入信息才进入下一轮循环,并非死循环 while True: input("请输入信息")
while else
1 # ---------------对于while else 结构:-------------------- 2 # 当while 循环正常循环(执行)完毕没有遇到break 后会进入else 中 3 4 i = 1 5 while i < 4: 6 if i == 2: 7 i += 1 8 continue 9 print(i) 10 i += 1 11 else: 12 print("while 循环正常执行结束,没有遇到break 提前退出") 13 14 # 1 15 # 3 16 # while 循环正常执行结束,没有遇到break 提前退出 17 18 # 遇到break 退出循环,则不会进入到else 中 19 i = 1 20 while i < 4: 21 if i == 2: 22 i += 1 23 break 24 print(i) 25 i += 1 26 else: 27 print("while 循环正常执行结束,没有遇到break 提前退出") 28 # 1
break:退出本层循环
continue:结束本次循环,直接进入下一次循环
1 i = 1 2 while i < 6: 3 if i == 3: 4 i += 1 5 break 6 print(i) 7 i += 1 8 print(i) 9 # 1 10 # 2 11 # 4 12 # 执行到i == 3的if 语句时就退出了整个循环, 后面的i 只到了4 (i == 3 的时候执行了if i == 3 中的 i += 1) 13 14 i = 1 15 while i < 6: 16 if i == 3: 17 i += 1 18 continue 19 print(i) 20 i += 1 21 print(i) 22 # 1 23 # 2 24 # 4 25 # 5 26 # 6 27 # 执行到i == 3的if 语句时就退出了本次循环,直接重新进入到了 while i < 6 这里开始下一次循环
for循环
for
''' ------for代码结构:------- for 条件: 代码体 tips: for的末尾要写 : 不要漏了代码体的缩进(4各个空格) ''' for i in range(1, 4): print(i) # 1 # 2 # 3
range()函数
''' ------- range()函数 --------- python 2.x: range() xrange() 调用range()函数会生成一个列表 调用xrange()函数会生成一个迭代器对象,只有在使用的时候才会取出里面的对象 python 3.x: range() 同python 2.x 中的 xrange()函数 '''
break、continue: 与while 循环中一致
for else:当for 循环正常执行结束没有遇到break 时会进入 else
# ---------------对于for else 结构:-------------------- # 当for 循环正常循环(执行)完毕没有遇到break 后会进入else 中 for i in range(1, 4): if i == 2: continue print(i) else: print("for 循环正常执行结束,没有遇到break 提前退出") # 1 # 3 # for 循环正常执行结束,没有遇到break 提前退出 # 遇到break 退出循环,则不会进入到else 中 for i in range(1, 4): if i == 2: break print(i) else: print("for 循环正常执行结束,没有遇到break 提前退出") # 1
多重循环(循环嵌套)
1 # 退出双层循环的while循环嵌套 2 user_db = 'abc' 3 pwd_db = '123' 4 flag = True 5 while flag: 6 inp_user = input('username>>>: ') 7 inp_pwd = input('password>>>: ') 8 if inp_user == user_db and pwd_db == inp_pwd: 9 print('login successful') 10 while flag: 11 cmd = input('请输入你需要的命令:') 12 if cmd == 'q': 13 flag = False 14 break 15 print('%s功能执行'%cmd) 16 else: 17 print('username or password error, please input again!') 18 print('退出了while循环')
技巧:定义标志位 flag 跳出多重循环
小案例
九九乘法表
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
for i in range(1, 10): for j in range(1, i+1): print("%d * %d = %2d\t" %(i, j, i*j), end='') print() # 1 * 1 = 1 # 2 * 1 = 2 2 * 2 = 4 # 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 # 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 # 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 # 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 # 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 # 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 # 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
打印指定层数金字塔
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
num = int(input("输入层数 >>>:")) level = 0 for level in range(1, num + 1): for i in range(num - level): print(" ", end='') for j in range(2 * level - 1): print("*", end='') print() # 输入5 # * # *** # ***** # ******* # *********