python-if条件判断与while/for循环

  • 2019 年 10 月 7 日
  • 筆記

条件判断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 跳出多重循环

小案例

九九乘法表

for i in range(1, 10):      for j in range(1, i+1):          print("%d * %d = %2dt" %(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    

打印指定层数金字塔

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  #     *  #    ***  #   *****  #  *******  # *********