选择结构
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_suite
else:
#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=25
while 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 += count
print('计数器 ={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/in
for one in range(1, 10):
print(one, '|', end = '')
# 第二层 for/in
for 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递增步长来获得一个随机数