选择结构

if结构

当只有一个选择是使用if结构,使用if语句,if语句如同我们口中的”如果…就…”

  1. #if 条件表达式:
  2. # 表达式_true_suite语句
  3. if i=10:
  4. print('回答正确')#如果i=10输出回答正确

注意在一个程序内要统一使用tab或者空格缩进

if/else语句做双向判断

有两个选择的时候可以使用if/else语句,就如”如果…就…,否则…”

  1. #if 条件表达式:
  2. # 表达式_true_suite语句
  3. #else:
  4. # 表达式_false_suite语句
  5. if i=10:
  6. print('回答正确')
  7. else:
  8. print('回答错误')

X if C else Y

if/else语句还能以三元运算

  1. X if C else Y
  2. #Expr_true if 条件表达式 else Expr_false
  3. '及格' if i>=60 else '不及格'

多重选择if/elif

学生成绩会按照不同分数分级,如果使用多个if语句嵌套会很复杂,所以要使用if/elif语句

  1. if i>=90:
  2. print('A')
  3. elif i>=80:
  4. print('B')
  5. elif i>=60:
  6. print('C')
  7. else:
  8. print('D')

循环语句

所谓循环是指根据条件运算反复执行循环体内的语句,只要进入循环就会再一次检查条件运算,只要符合条件就会继续执行,直到条件不符合才会退出循环

for循环

使用for/in循环必须在循环中加入计数器,用来控制循环执行的次数

  1. for item in sequence/iterable:
  2. #for_suite
  3. else:
  4. #else_suite

item:代表的是元组和列表的项目,通常指计数循环的计数器
sequence/iterable:序列值,可顺序重复的对象,可以搭配内置函数range()来使用
else和else_suit语句可以省略,加入此语句可以提示用户for循环已正常执行完毕
range语法如下

  1. range([start],stop[,step])
  2. #start:起始值,默认为0,可省略
  3. #stop:停止条件,必要参数不可省略
  4. #step:计数器的增减值,默认值为1

通常range()函数会和tuple(元组)和list(列表)数据一起使用

  1. print(list(range(5)))#输出[0,1,2,3,4]
  2. print(list(range(4,10)))#输出[4,5,6,7,8,9]
  3. print(list(range(4,10,2)))#输出[4,6,8]

while循环

while循环会根据条件值不断地执行,直到条件值不符合为止,while不清楚循环的次数

  1. while 条件表达式:
  2. #符合条件语句
  3. else:
  4. 不符合条件语句

注意while条件如果始终为真会进入死循环,需要设置退出条件

特殊流程控制语句

break语句

break语句用来终端循环的执行,退出循环

  1. number=25
  2. while True:
  3. guess=int(input('请输入1-100之间的数字'))
  4. if guess == number:
  5. print('你猜对了')
  6. break#用来退出循环

continue语句

continue语句用来跳过当前循环语句

  1. #计算1-20之间的奇数和
  2. sum = 0 #存储累加值
  3. for count in range(0, 20):
  4. if count%2 == 0:
  5. continue # 偶数的时候跳过
  6. else:
  7. sum += count
  8. print('计数器 ={0:2d}, 总和 = \
  9. {1:2d}'.format(count, sum))

嵌套

通常代码中不会只有一种流程控制,而回根据程序的复杂度加入不同的流程

嵌套if

嵌套if就是if里面还有if,不同的if语句不能交错,示例:

  1. month = int(input('请输入1~12月份:'))
  2. # 第一层 if/else语句 确认输入月份在 1~12之间
  3. if month >= 1 and month <= 12:
  4. # 第二层 if/elif语句
  5. if month == 4 or month == 6 or month == 9 \
  6. or month == 11:
  7. print('{0} 月有30天'.format(month))
  8. elif month == 2:
  9. print('{0} 月有28或29天'.format(month))
  10. else:
  11. print('{0} 月有31天'.format(month))
  12. else:
  13. print('输入月份不对,请重新输入')

嵌套循环

嵌套循环就是在循环内还有循环,示例:

  1. #用双层for/in循环产生九九表
  2. # 建立表头
  3. print(' |', end = '')
  4. for k in range(1, 10):
  5. print('{0:3d}'.format(k), end = '') #不自动换行,只留空格符
  6. print()
  7. print('-'*32)
  8. # 第一层 for/in
  9. for one in range(1, 10):
  10. print(one, '|', end = '')
  11. # 第二层 for/in
  12. for two in range(1, 10):
  13. print('{0:3d}'.format(one*two), end = '')
  14. print() #换行

产生随机数的random模块

若要产生随机数,需要导入random模块

  1. import random#导入random模块
  2. random()#随机产生0~1之间的浮点数
  3. randint(a,b)#产生a-b之间的随机整数
  4. randrange(start,stop[,step])#根据指定的范围,按setp递增步长来获得一个随机数