选择结构
if结构
当只有一个选择是使用if结构,使用if语句,if语句如同我们口中的”如果…就…”
#if 条件表达式:# 表达式_true_suite语句if i=10:print('回答正确')#如果i=10输出回答正确
注意在一个程序内要统一使用tab或者空格缩进
if/else语句做双向判断
有两个选择的时候可以使用if/else语句,就如”如果…就…,否则…”
#if 条件表达式:# 表达式_true_suite语句#else:# 表达式_false_suite语句if i=10:print('回答正确')else:print('回答错误')
X if C else Y
if/else语句还能以三元运算
X if C else Y#Expr_true if 条件表达式 else Expr_false'及格' if i>=60 else '不及格'
多重选择if/elif
学生成绩会按照不同分数分级,如果使用多个if语句嵌套会很复杂,所以要使用if/elif语句
if i>=90:print('A')elif i>=80:print('B')elif i>=60:print('C')else:print('D')
循环语句
所谓循环是指根据条件运算反复执行循环体内的语句,只要进入循环就会再一次检查条件运算,只要符合条件就会继续执行,直到条件不符合才会退出循环
for循环
使用for/in循环必须在循环中加入计数器,用来控制循环执行的次数
for item in sequence/iterable:#for_suiteelse:#else_suite
item:代表的是元组和列表的项目,通常指计数循环的计数器
sequence/iterable:序列值,可顺序重复的对象,可以搭配内置函数range()来使用
else和else_suit语句可以省略,加入此语句可以提示用户for循环已正常执行完毕
range语法如下
range([start],stop[,step])#start:起始值,默认为0,可省略#stop:停止条件,必要参数不可省略#step:计数器的增减值,默认值为1
通常range()函数会和tuple(元组)和list(列表)数据一起使用
print(list(range(5)))#输出[0,1,2,3,4]print(list(range(4,10)))#输出[4,5,6,7,8,9]print(list(range(4,10,2)))#输出[4,6,8]
while循环
while循环会根据条件值不断地执行,直到条件值不符合为止,while不清楚循环的次数
while 条件表达式:#符合条件语句else:不符合条件语句
注意while条件如果始终为真会进入死循环,需要设置退出条件
特殊流程控制语句
break语句
break语句用来终端循环的执行,退出循环
number=25while True:guess=int(input('请输入1-100之间的数字'))if guess == number:print('你猜对了')break#用来退出循环
continue语句
continue语句用来跳过当前循环语句
#计算1-20之间的奇数和sum = 0 #存储累加值for count in range(0, 20):if count%2 == 0:continue # 偶数的时候跳过else:sum += countprint('计数器 ={0:2d}, 总和 = \{1:2d}'.format(count, sum))
嵌套
通常代码中不会只有一种流程控制,而回根据程序的复杂度加入不同的流程
嵌套if
嵌套if就是if里面还有if,不同的if语句不能交错,示例:
month = int(input('请输入1~12月份:'))# 第一层 if/else语句 确认输入月份在 1~12之间if month >= 1 and month <= 12:# 第二层 if/elif语句if month == 4 or month == 6 or month == 9 \or month == 11:print('{0} 月有30天'.format(month))elif month == 2:print('{0} 月有28或29天'.format(month))else:print('{0} 月有31天'.format(month))else:print('输入月份不对,请重新输入')
嵌套循环
嵌套循环就是在循环内还有循环,示例:
#用双层for/in循环产生九九表# 建立表头print(' |', end = '')for k in range(1, 10):print('{0:3d}'.format(k), end = '') #不自动换行,只留空格符print()print('-'*32)# 第一层 for/infor one in range(1, 10):print(one, '|', end = '')# 第二层 for/infor two in range(1, 10):print('{0:3d}'.format(one*two), end = '')print() #换行
产生随机数的random模块
若要产生随机数,需要导入random模块
import random#导入random模块random()#随机产生0~1之间的浮点数randint(a,b)#产生a-b之间的随机整数randrange(start,stop[,step])#根据指定的范围,按setp递增步长来获得一个随机数
