条件判断语句(if语句)

  • 执行的流程:
    • if语句在执行时,会先对条件表达式进行求值判断,
    • 如果为True,则执行if后的语句
    • 如果为False,则不执行
  • 语法:if 条件表达式 :

    代码块

  • 代码块代码块中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行

  • 代码块以缩进开始,直到代码恢复到之前的缩进级别时结束
  • 代码块就是一种为代码分组的机制


  1. a = int(input('请输入0.1或者2的数字中的一个:'))
  2. if a == 0:
  3. print(123)
  4. print(123)
  5. print(123)
  6. if a == 1:
  7. print(456)
  8. if a == 2:
  9. print('hahaha')
  10. # 赋值
  11. num = 35
  12. if num > 20 and num < 40:
  13. print('num比20大,num比40小')

input() 函数

  • 该函数用来获取用户的输入
  • input()调用后,程序会立即暂停,等待用户输入
  • 用户输入完内容以后,点击回车程序才会继续向下执行
  • 用户输入完成以后,其所输入的的内容会以返回值得形式返回


  1. # eval() 去掉字符串的‘’ int()将由int类型构造的字符串强制转换为int类型本身
  2. # a = int(eval(input('请输入0.1或者2的数字中的一个:')))
  3. a = eval(input('请输入0.1或者2的数字中的一个:'))
  4. print(type(a)) # '1' 1 str类型 必须由''"" """""" 包裹的才叫做str
  5. print(a)
  6. # input具有阻塞程序的作用,你不输入,那么程序永远都不会继续往下执行
  7. print(111)
  8. if a == 0:
  9. print(123)
  10. print(123)
  11. print(123)
  12. if a == 1:
  13. print(456)
  14. if a == 2:
  15. print('hahaha')

if-else语句

  • 语法:

    if 条件表达式 :
    代码块
    else :
    代码块

  • 执行流程:

    • if-else语句在执行时,先对if后的条件表达式进行求值判断
    • 如果为True,则执行if后的代码块
    • 如果为False,则执行else后的代码块)


  1. a = int(input('请输入:'))
  2. if a == 0:
  3. print(123)
  4. else:
  5. print(456)
  6. 请输入:3
  7. 456
  8. a = int(input('请输入:'))
  9. if a == 0:
  10. print(123)
  11. elif a == 1:
  12. print(456)
  13. elif a == 2:
  14. print(789)

if-elif-else 语句

  1. value = 30000
  2. if value >= 30000:
  3. print('有钱任性')
  4. elif value >= 20000:
  5. print('有钱真好')
  6. elif value >= 10000:
  7. print('哥也月薪上万了')
  8. elif value >= 5000:
  9. print('工资还说的过去')
  10. elif value >= 2000:
  11. print('能养活自己了')
  • 语法:

    if 条件表达式 :
    代码块
    elif 条件表达式 :
    代码块
    elif 条件表达式 :
    代码块
    ……..
    else :
    代码块

  • 执行流程:

    • if-elif-else语句在执行时,会自上向下依次对条件表达式进行求值判断,
    • 如果表达式的结果为True,则执行当前代码块,然后语句结束
    • 如果表达式的结果为False,则继续向下判断,直到找到True为止
    • 如果所有的表达式都是False,则执行else后的代码块 ```python

“”” 345月属于春季 678月属于夏季 9 10 11月属于秋季 12, 1 2属于冬季 “””

month = float(input(‘请输入月份:’)) if 0 < month <= 12: if 3 <= month <= 5: print(‘春季’) elif 6 <= month <= 8: print(‘春季’) elif 9 <= month <= 11: print(‘春季’) else: print(‘冬季’)

  1. - 总结: if-elif-else中只会有一个代码块会执行, 并且完整语句一定会有输出, 但是if-elif-elif 不一定有输出, 但是如果有输出,一定只会输出一条.
  2. <br />
  3. <a name="article-title"></a>
  4. # 循环控制
  5. <a name="AIczk"></a>
  6. ## **while语句**
  7. - 循环语句可以使指定的代码块重复指定的次数.循环语句分成两种,while循环 for循环
  8. - 语法:
  9. while 条件表达式 :<br /> 代码块<br /> else:<br /> 代码块
  10. ```python
  11. # 著名的现象:死循环 当有条件的时候,检测到这个条件符合要求,才会去调用一次死循环
  12. # while True:
  13. # print(111)
  14. # 三大要素
  15. # 1. 设置一个初始值
  16. # 2. while后面加上一个判断,对初始值的判断, 也可以是说对初始值进行一个限制
  17. # 3. 初始值的自增长
  18. i = 1
  19. while i <= 10:
  20. print(111)
  21. print(i)
  22. i += 1
  1. # 求100以内所有的偶数的和, 包括100
  2. # 首先拿到1-100的数
  3. # 拿到偶数
  4. # 在相加
  5. # 1
  6. i = 0
  7. r = 0
  8. while i < 100:
  9. i += 1
  10. # print(i)
  11. if i % 2 == 0:
  12. r = r + i # r += i
  13. print(r)
  14. #2
  15. j = 0
  16. s = 0
  17. while j < 100:
  18. j += 2
  19. s += j
  20. print(s)

while 循环嵌套

  1. i = 0
  2. while i < 5: # i控制行数
  3. j = 0
  4. while j < 5: # j控制每一行有几列*
  5. print('*', end='')
  6. j += 1
  7. print()
  8. i += 1
  9. *****
  10. *****
  11. *****
  12. *****
  13. *****
  14. """
  15. * 0 1
  16. ** 1 2
  17. *** 2 3
  18. **** 3 4
  19. ***** 4 5
  20. """
  21. i = 0
  22. while i < 5: # i控制行数
  23. j = 0
  24. while j < i+1: # j控制每一行有几列*
  25. print('*', end='')
  26. j += 1
  27. print()
  28. i += 1
  29. *
  30. **
  31. ***
  32. ****
  33. *****
  34. """
  35. ***** i=0 j=5 i + j < 5 j < 5-i
  36. **** i=1 j=4
  37. *** i=2 j=3
  38. ** i=3 j=2
  39. * i=4 j=1
  40. """
  41. i = 0
  42. while i < 5: # i控制行数
  43. j = 0
  44. while j < 5-i: # j控制每一行有几列*
  45. print('*', end='')
  46. j += 1
  47. print()
  48. i += 1
  49. *****
  50. ****
  51. ***
  52. **
  53. *

break和continue

  • break 可以用来立即退出循环语句,包括else语句
  • continue 用来跳过当次循环 ```python

    break 会直接结束循环 终止循环, 不会执行else后面的语句

    i = 0 while i < 5: if i == 3:
    1. break
    print(i) i += 1 else: print(‘while循环正常结束’)

0 1 2

  1. <a name="ouHgO"></a>
  2. ## for循环遍历
  3. <a name="xmibq"></a>
  4. ### for循环
  5. - 通过for循环来遍历列表
  6. ```python
  7. # 语法
  8. # for 变量 in 序列(遍历的规则):
  9. # 代码块
  10. list1 = ['第一', '第二', '第三', '第四', '第五', '第六']
  11. len(list1)
  12. i = 0
  13. while i < len(list1):
  14. print(list1[i])
  15. i += 1
  16. 第一
  17. 第二
  18. 第三
  19. 第四
  20. 第五
  21. 第六
  22. ---------------------------
  23. list1 = ['第一', '第二', '第三', '第四', '第五', '第六']
  24. for i in list1:
  25. print(i)
  26. 第一
  27. 第二
  28. 第三
  29. 第四
  30. 第五
  31. 第六
  32. ------------------------------
  33. # 需求: 拿到一个列表数据,要对列表数据进行数据处理之后,在用
  34. list1 = ['第一', '第二', '第三', '第四', '第五', '第六']
  35. list2 = []
  36. for i in list1:
  37. list2.append(i)
  38. print(list2)
  39. ['第一', '第二', '第三', '第四', '第五', '第六']
  40. ------------------------------------------
  41. # for循环循环的次, 如果你在循环过程中对列表的长度做了修改,那么你的循环次数就不在受控制了数取决于列表的长度
  42. list1 = ['第一', '第二', '第三', '第四', '第五', '第六']
  43. for i in list1:
  44. list1.remove(i)
  45. print(list1)
  46. ['第二', '第四', '第六']
  • 注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素

    range(start, stop[, step])

    参数说明

  • ·start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);

  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) ```python

    range()函数

    语法 range(开始位置, 结束位置, 步长) 开始位置可以省略,省略即开始位置的数为0, 步长省略即为1 左闭右开区间

    range(9) # 相当于 range(0, 9, 1)

    print(range(9)) print(list(range(9))) for i in range(9): print(i)

range(0, 9) [0, 1, 2, 3, 4, 5, 6, 7, 8] 0 1 2 3 4 5 6 7

8

list1 = [‘第一’, ‘第二’, ‘第三’, ‘第四’, ‘第五’, ‘第六’] print(‘list1=’, list1) list2 = [] for i in range(len(list1)): list2.append(list1[i]) print(‘list2=’, list2)

list1= [‘第一’, ‘第二’, ‘第三’, ‘第四’, ‘第五’, ‘第六’] list2= [‘第一’, ‘第二’, ‘第三’, ‘第四’, ‘第五’, ‘第六’]

  1. <a name="KZyzj"></a>
  2. ### 作业
  3. 1. 求1000以内所有的水仙花数。水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
  4. ```python
  5. i = 100
  6. while 100 <= i and i <1000:
  7. hundreds = i // 100 # 百位数
  8. tens = i % 100 // 10 # 十位数
  9. ones = i % 10 # 个位数
  10. if ones ** 3 + tens ** 3 + hundreds ** 3 == i:
  11. print(i)
  12. i += 1
  13. 153
  14. 370
  15. 371
  16. 407
  1. 打印 9x9乘法表 ```python i = 0 while i < 9: # i控制行数 i += 1 j = 0 while j < i: # j控制每一行有几列*
    1. j += 1
    2. print(f'{j}*{i}={j*i}', end='\t')
    print()

11=1
1
2=2 22=4
1
3=3 23=6 33=9
14=4 24=8 34=12 44=16
15=5 25=10 35=15 45=20 55=25
1
6=6 26=12 36=18 46=24 56=30 66=36
1
7=7 27=14 37=21 47=28 57=35 67=42 77=49
18=8 28=16 38=24 48=32 58=40 68=48 78=56 88=64
19=9 29=18 39=27 49=36 59=45 69=54 79=63 89=72 9*9=81

  1. 3. 获取用户输入的任意数,判断其是否是质数?
  2. ```python
  3. num = int(input('Please input a number:'))
  4. prime = True # 是否质数标记,初始值为TRUE(质数)
  5. while num > 1:
  6. j = 2
  7. while j < num ** 0.5:
  8. if num % j == 0:
  9. prime = False # 找到任何一个因数,标记改为FALSE(非质数)
  10. j += 1
  11. if prime == True:
  12. print(num, '是质数')
  13. break
  14. else:
  15. print(num, '不是质数')
  16. break
  17. Please input a number:28
  18. 28 不是质数
  19. Please input a number:97
  20. 97 是质数
  1. 猜拳游戏:
    • 出拳 玩家:手动输入 电脑:随机输入
    • 判断输赢: 玩家获胜 电脑获胜 平局 ```python import random while True: user = int(input(‘0 代表拳头, 1代表布,2 代表剪刀. 玩家出:’)) if user in [0, 1, 2]: computer = random.randint(0,2) if computer == user:
      1. print('平局:', '电脑出', computer, ' 玩家出',user,)

      三种可能电脑胜

      elif (computer == 1 and user == 0) or (computer == 0 and user == 2) or (computer == 2 and user == 1):
      1. print('电脑获胜:', '电脑出', computer, ' 玩家出',user)
      else:
      1. print('玩家获胜:', '电脑出', computer, ' 玩家出',user)
      else: print(‘玩家输入错误,请重新开始!’) break

0 代表拳头, 1代表布,2 代表剪刀. 玩家出:0 电脑获胜: 电脑出 1 玩家出 0 0 代表拳头, 1代表布,2 代表剪刀. 玩家出:1 玩家获胜: 电脑出 0 玩家出 1 0 代表拳头, 1代表布,2 代表剪刀. 玩家出:2 平局: 电脑出 2 玩家出 2 0 代表拳头, 1代表布,2 代表剪刀. 玩家出:3 玩家输入错误,请重新开始! ```