Python循环
流程控制语句:
分类
1.顺序结构
2.判断结构解析,如果……否则……
3.循环结构
判断结构
格式一
① if 条件表达式
② 语句块
如果条件表达式的结果为True,那么就会立即进入到if的内部去执行语句块,
等到语句块执行完毕了,就可以认为if结构结束了,但是程序一定会去执行;
如果条件表达式的结果为False,那么就会不会进入到if的内部去执行语句块,
也就意味着if结构已经结束了,但是程序一定会去执行
#需求:从键盘读入一个正整数,判断其奇偶性
num = int(input('请输入一个正整数:'))
if num % 2 == 0:
print('是偶数...')
if num % 2 == 1:
print('是奇数...')
print('程序结束了...')
格式二
① if 条件表达式:
② 语句块1
③ else:
④ 语句块2
执行流程:
计算机会先执行①,遇到了if关键字会先执行条件表达式,
如果条件表达式的结果为True,那么就会立即进入到if的内部去执行语句块②,
等到语句块②执行完毕了,整个if...else结构就结束了,但是程序一定会去执行③
如果条件表达式的结果为False,那么就会立即进入到else的内部去执行语句块④,
等到语句块④执行完毕了,整个if...else结构就结束了,但是程序一定会执行
age = eval(input("请输入你的年龄: "))
if age >= 18:
print("你已经成年了。。。")
else:
print("回家写作业去吧。。。")
print("小弟弟,出来混迟早要还的……")
#使用判断结构if...else重构之前三元中的案例:两个数中的较大值
num1 = 10
num2 = 20
if num1 > num2:
print('较大值为:{}'.format(num1))
else:
print('较大值为:{}'.format(num2))
练习:
需求:
模拟一个购物系统,通过键盘输入:单价,数量,付款金额;
最后计算得到应收金额和找零;
单价:price
数量:amount
支付金额:money
总金额:totalPrice
找零:change
附加需求:
满500元打8折
price = eval(input("请输入商品的价格: "))
amount = eval(input("请输入商品的数量: "))
totalPrice = price * amount #计算总消费金额
print("您应该消费了%s钱"%totalPrice)
money = eval(input("请输入付款金额: "))
if money < totalPrice:
chajia = totalPrice - money
print("总金额不足,差%s钱,请继续加款。。。"%chajia)
else:
change = money - totalPrice
print("应找您{}钱".format(change))
if totalPrice >= 500:
print("恭喜您获得八折优惠!!!")
totalPrice2 = totalPrice * 0.8
good = float(totalPrice -totalPrice2)
print("您优惠的总金额为,",totalPrice2,"钱,优惠了",good,"元")
格式三:
if 条件表达式1:
语句块1
elif 条件表达式2:
语句块2
elif 条件表达式3:
语句块3
elif 条件表达式y:
语句块y
else:
语句块z
执行流程:
计算机一定会先执行开始语句,遇到了if关键字执行条件表达式1,如果条件表达式1的结果为True,那么就进入if内部执行语句块1,执行结束后,整个if elif else结构结束了,但是程序一定会执行else。如果条件表达式1的结果为False,那么执行elif后面的条件表达式2,如果条件表达式2的结果为True,那么就进入elif内部执行语句块2,执行结束后,整个if elif else结构结束了,但是程序一定会执行else。如果所有的条件表达式的结果都为False,最终会执行else中的语句块z,执行结束后,程序一定会执行else
age = 30
if age < 0 or age > 130:
print('你可能不是人...')
elif age <= 20:
print('伦家还很小的啦!么么哒...')
else:
print('别追我了,我已经有两个娃了...')
需求:
从键盘输入小明的期末考试成绩
当成绩为100分时,奖励一辆BMW;
当成绩为(80,99]时,奖励一台8848;
当成绩为[60,80]时,奖励一本从入门到精通只需33天;
其它时,暴打一顿!
注意事项:
如果多个elif后面的条件表达式是互斥关系,那么谁上谁下无所谓
如果多个elif后面的条件表达式是包含关系,那么范围小的要在范围大的上面议:
score = int(input('请输入小明的考试成绩:(分)'))
if score < 0 or score > 100:
print('输入的成绩有误!请重新输入...')
else:
if score == 100:
print('奖励一辆BMW')
elif score > 80:
print('奖励一台8848')
elif score >= 60:
print('奖励一本参考书')
else:
print('老子要揍你了!!555555~~~~')
while循环:
有四要素组成:
①.初始化条件(执行一次)一个起始数据/起点,一般使用变量来进行存储
②.循环条件(可能执行多次)循环合适结束全靠它,执行结果为True,那么循环继续,反之,循环就终止了
补充:需要和初始化条件配合
③.迭代条件(可能执行多次)用来改变初始化条件中的数据,只有变化了,才有终止的那一刻
④.循环体(可能执行多次)需要重复执行的逻辑代码
格式:
①
while ②:
④
③
⑤
执行流程:① -> ② -> ④ -> ③ -> ② -> ④ -> ③ -> ② -> ⑤
案例1:
演示while循环的使用
需求:打印10次德玛西亚。。。
i = 0
while i < 10:
i +=1
print("德玛西亚。。。")
案例2
需求:打印1~100之间的偶数,并且得到偶数的个数和总和
有计数和累加的思想 --> 可以定义变量来接受
count = 0 # count的作用是为了记录偶数的个数
sum1 = 0 # sum1的作用是为了记录偶数的总和
i = 1
while i < 101:
if i % 2 == 0:
print(i)
count += 1
sum1 += i
i += 1
print('1~100之间偶数的个数为:%d' % count)
print('1~100之间偶数的总和为:%d' % sum1)
案例3:
需求:
打印1~150,
如果是3的倍数追加'foo',
如果是5的倍数追加'biz',
如果是7的倍数追加'baz'
效果如下:
1
2
3 foo
4
5 biz
6
7 baz
15 foo biz
105 foo biz baz
150 foo biz
i = 1
while i <= 150:
print(i, end="")
if i % 3 == 0:
print(" foo", end="")
if i % 5 == 0:
print(" biz", end="")
if i % 7 == 0:
print(" baz", end="")
# 以下的print()的作用仅仅是为了换行
print()
i += 1