一、顺序控制语句
(一)单分支结构
每个判断条件间没有关系,相互不影响。
salary=int(input("请输入你的工资:"))
if salary>=10000 and salary<20000:
print('买辆迈腾')
if salary>=20000 and salary<30000:
print('速腾')
if salary>=30000:
print('买辆A6')
if salary<=3000:
print('电动72 35v 50迈,续航:90')
注:条件表达式后面有‘:’,后面跟着代码块。python中的代码块是靠缩进表示的,一般缩进4个空格(即:一个tab键)
(二)双分支结构
两个条件之间是互斥关系,只可能进入一个分支。
score=int(input("请输入四级成绩:"))
if score<425:
print("下次加油")
else:
print("恭喜获得四级证书")
(三) 多分支结构
形如if…elif…elif…else…
elif可以有多个,else可以没有。同双分支结构一样,条件和条件之间是互斥关系,只可能进入一个分支。
先给出一段单分支代码:
score=int(input("请输入学习成绩:"))
if score>=90 and score<=100:
print("优秀")
if score>=80 and score<90:
print("良好")
if score>=70 and score<80:
print("一般")
if score>=60 and score<70:
print("及格")
if score<60:
print("不及格")
print('结束'
上述代目段,若使用多分支结构可改为:
score=int(input("请输入学习成绩:"))
if score>=90 and score<=100:
print("优秀")
elif score>=80:
print("良好")
elif score>=70:
print("一般")
elif score>=60:
print("及格")
else:
print("不及格")
print('结束')
连续比较
先给出使用逻辑运算符的代码,功能是判断大小写字母、数字、下划线和其他字符:
char=input('请输入一个字符:')
n=ord(char)
if n<=90 and n>=65:
print('这是一个大写字母')
elif n<=122 and n>=97:
print('这是一个小写字母')
elif char >= '0' and char <= '9':
print('这是一个数字')
elif n == 95:
print('这是一个下划线')
else:
print('其他字符')
如果使用连续比较,上述代码可以改为:
char=input('请输入一个字符:')
n=ord(char)
if 65 <= n <=90:
print('这是一个大写字母')
elif 97 <= n <= 122:
print('这是一个小写字母')
elif '0' <= char <= '9':
print('这是一个数字')
elif n == 95:
print('这是一个下划线')
else:
print('其他字符')
(四)分支嵌套结构
嵌套,也就是在分支结构中再套分支结构。
price=float(input('请输入西红柿单价:'))
num=float(input('请输入购买数量:'))
total=price*num
if total>=50:
level=input('请输入vip级别:')
if level == '1':
total *= 0.8
print('享受总金额打八折优惠,金额为:%.2f' % total)
elif level == '2':
total=int(total)
total=total-total%10
print('享受抹零优惠,金额为:%d' % total)
elif level == '3':
print('享受去小数优惠,金额为:%d' % total)
else:
sex=input('请输入性别:')
if sex == '男':
print('赠送玩具劳斯莱斯一个')
elif sex == '女':
print('赠送小猫一只')
二、while循环
循环三大要点:
1.初始值
2.控制条件
3.步长
利用while循环求1-2+3-4…+99的值:
n = 1
sum = 0
while n < 100:
if n % 2 == 0:
sum -= n
else:
sum += n
n += 1
print(sum)
在这段代码中:
初始值为1,要先在循环外面为变量赋初值。
控制条件为n<100,每执行完一次代码段都会以此为标准再判断一次。
‘n+=1’,步长为1。
应用
输入五个数字,求最大值:
i = 1
max = int(input('请输入一个数:'))
while i <= 4:
data=int(input('请输入一个数:'))
if data > max:
max = data
i += 1
print('最大值为:',max)
输出:
*
**
***
****
*****
i = 1
while i <= 5:
j = 1
while j <= i:
print('*',end='')
j += 1
print()
i += 1
三、break–中断循环
i=1
while i<=5:
age=int(input('请输入年龄:'))
if age<0:
print('您输入的年龄有问题')
break
i+=1
四、continue–退出本次循环,进入下一次循环
跳过3的倍数输出:
i=1
while i<=10:
if i%3==0:
i+=1
continue
print(i)
i+=1
应用
输入十个数,
如果输入的<18,不参加运算;
如果输入的>65,跳出循环;
求输入的年龄的平均值。
i=1
n=0
sum=0
while i<=10:
age=int(input('请输入年龄:'))
if age<18:
i+=1
continue
elif age>65:
break
else:
sum+=age
i+=1
n+=1
if n==0:
print('无有效数据!')
else:
print("平均值为:",(sum//n))