Python基础之判断语句与循环语句
一 嵌套if应用
情节描述:上公交车,并且可以有座位坐下
要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果空座位的数量大于0,就可以坐下
import random money = int(input("请输入公交卡余额:")) numbers = random.randint(0,2) if money >= 2: print("请上车") if numbers > 0: print("有空座位") else: print("没有座") else: print("余额不足")
猜拳小游戏
import random play = input("请输入 石头(1) 剪子(2) 布(2):") playr = int(play) system = random.randint(1,3) if (playr == 1 and system == 1) or (playr == 2 and system == 2) or (playr == 3 and system == 3): print(system) print("平局") elif (playr == 1 and system ==2) or (playr == 2 and system ==3) or (playr == 3 and system ==1): print(system) print("你赢了") else: print(system) print("你输了")
二 while循环应用
计算1~100的累积和(包含1和100)
i = 1 sum = 0 while i <= 100: sum = sum + i i += 1 print("累积和:%d"%sum)
计算1~100之间偶数的累积和(包含1和100)
i = 1 sum = 0 while i<= 100: if i%2 == 0: sum = sum + i i+=1 print("偶数和:%d"%sum)
三 break、continue
break的作用:用来结束整个循环
continue的作用:用来结束本次循环,紧接着执行下一次的循环
注意点
break/continue只能用在循环中,除此以外不能单独使用
break/continue在嵌套循环中,只对最近的一层循环起作用
四 while循环嵌套应用
九九乘法表
i = 1 while i <= 9: j = 1 while j <= i : print("%d*%d=%-2d "%(j,i,i*j),end='') j += 1 print("\n") i += 1
五 for循环
name = "zhangsan" for i in name: print(i) if i == "n": print("停止")
六 总结
if往往用来对条件是否满足进行判断
if有4中基本的使用方法:
基本方法
if 条件:
满足时做的事情
满足与否执行不同的事情
if 条件:
满足时做的事情
else:
不满足时做的事情
多个条件的判断
if 条件:
满足时做的事情
elif 条件2:
满足条件2时做的事情
elif 条件3:
满足条件3时做的事情
else:
条件都不满足时做的事情
嵌套
if 条件:
满足时做的事情
这里还可以放入其他任何形式的if判断语句
while循环一般通过数值是否满足来确定循环的条件
i = 0
while i<10:
print("hello")
i+=1
for循环一般是对能保存多个数据的变量,进行便利
name = 'zhangsan'
for x in name:
print(x)
if、while、for等其他语句可以随意组合,这样往往就完成了复杂的功能
七 练习
1. 使用if,编写程序,实现以下功能:
从键盘获取用户名、密码
如果用户名和密码都正确(预先设定一个用户名和密码),那么就显示“欢迎进入xxx的世界”,否则提示密码或者用户名错误
user = '张三' passwd = 'admin123' u = str(input("请输入用户:")) p = input("请输入密码:") if u == user and p == passwd: print("欢迎进入%s的世界"%u) else: print("密码或者用户名错误")
2. 使用while,完成以下图形的输出
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
i = 1 while i <= 5: print("{:<50}".format(' '.join('*'*i))) i += 1 j = 4 while j >= 1: print("{:<50}".format(' '.join('*' * j))) j -= 1
3.根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用
提示信息:
北京公交地铁新票价确定
据北京市发改委网站消息称,北京市将从2015年12月28起实施公共交通新票价:地铁6公里(含)内3元,公交车10公里(含)内2元,使用市政交通一卡通刷卡乘公交车普通卡5折,学生卡2.5折。
具体实施方案如下:
一、城市公共电汽车价格调整为:10公里(含)内2元,10公里以上部分,每增加1元可乘坐5公里。使用市政交通一卡通刷卡乘坐城市公共电汽车,市域内路段给予普通卡5折,学生卡2.5折优惠;市域外路段维持现行折扣优惠不变。享受公交政策的郊区客运价格,由各区、县政府按照城市公共电汽车价格制定。
二、轨道交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;支出累计达到400元以后的乘次,不再享受打折优惠。
要求:
假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁;每月月初小明第一次刷公交卡时,扣款5元;编写程序,帮小明完成每月乘坐地铁需要的总费用
day = int(input("请输入上班天数:")) count = int(day*2) money = int(count*5) type = str(input("请输入公交卡类型(普通公交卡=1、学生卡=2):")) if type == "1": type = str("普通公交卡") if money <= 100: money = money * 0.5 elif money >= 100 and money <= 150: money = 100 + (money - 100) * 0.5 * 0.8 print(money) elif money >= 150 and money <= 400: money = 150 + (money - 150) * 0.5 * 0.5 elif money >= 400: money = 400 + (money - 150) * 0.5 print("\n本月上班:%s天,共做地铁:%d次,公交卡类型:%s,累积费用:%s元" % (day, count, type, money)) elif type == "2": type = str("学生卡") if money <= 100: money = money * 0.25 elif money >= 100 and money <= 150: money = 100 + (money - 100) * 0.25 * 0.8 print(money) elif money >= 150 and money <= 400: money = 150 + (money - 150) * 0.25 * 0.5 elif money >= 400: money = 400 + (money - 150) * 0.25 print("\n本月上班:%s天,共做地铁:%d次,公交卡类型:%s,累积费用:%s元" % (day, count, type, money)) else: print("公交卡类型不符")