参考链接: Python | 实施剪刀石头布游戏的程序
程序的三大执行流程:顺序执行、选择执行、循环执行
一、判断
1、if比较运算符、and、or、if-else
if-else的使用格式
if 条件:
满足条件时要做的事情1
满足条件时要做的事情2
满足条件时要做的事情3
...(省略)...
else:
不满足条件时要做的事情1
不满足条件时要做的事情2
不满足条件时要做的事情3
...(省略)...
demo1
chePiao = 1 # 用1代表有车票,0代表没有车票
if chePiao == 1:
print("有车票,可以上火车")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有车票,不能上车")
print("亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~")
运行结果:
结果1:有车票的情况
有车票,可以上火车
终于可以见到Ta了,美滋滋~~~
结果2:没有车票的情况
没有车票,不能上车
亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~
demo2
you = input("你去么?------") #去或者不去
your_wife = input("你老婆去么------") #去或者不去
# if you == "去" or your_wife == "去"
if you == "去" and your_wife == "去":
print("可以申请贷款!")
else:
print("不可以申请贷款!")
运行结果:
demo3
skin_color = input("你白么?------")
property = int(input("请输入你的财产总和------"))
beautiful = input("你美么?------")
if (skin_color == "白" and property >= 10000000 and beautiful == "美"):
print("白富美...")
else:
print("普通人...")
运行结果:
2、if语句的注意点
<1>if xxx: 或者 else xxx: 后面的语句必须缩进,缩进为四个空格(冒号后面必须跟缩进,不局限于这两种。这是python规定的语法,不缩进会报错,其他不需要缩进的地方缩进的话也会报错)
<2>冒号后面所有连续缩进的代码块可看做是一个语句
<3>如果冒号后面遇到没有缩进的语句,就不属于if 代码块
3、if逻辑运算符not(其他运算符就不举例了,可以看前面的表格)
就是取反的作用
demo
a = 90
if not(a < 60 and a > 100):
print("及格!")
运行结果:
及格!
4、if-elif的使用
想一想:
if能完成当xxx时做事情
if-else能完成当xxx时做事情1,否则做事情2
如果有这样一种情况:当xxx1时做事情1,当xxx2时做事情2,当xxx3时做事情3,那该怎么实现呢?
答: elif
<1>elif的功能
elif的使用格式如下:
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
说明:
当xxx1满足时,执行事情1,然后整个if结束当xxx1不满足时,那么判断xxx2,如果xxx2满足,则执行事情2,然后整个if结束当xxx1不满足时,xxx2也不满足,如果xxx3满足,则执行事情3,然后整个if结束
demo
score = 77
if score>=90 and score<=100:
print('本次考试,等级为A')
elif score>=80 and score<90:
print('本次考试,等级为B')
elif score>=70 and score<80:
print('本次考试,等级为C')
elif score>=60 and score<70:
print('本次考试,等级为D')
elif score>=0 and score<60:
print('本次考试,等级为E')
<2> 注意点
2.1 可以和else一起使用
if 性别为男性:
输出男性的特征
...
elif 性别为女性:
输出女性的特征
...
else:
第三种性别的特征
...
说明:
当 “性别为男性” 满足时,执行 “输出男性的特征”的相关代码当 “性别为男性” 不满足时,如果 “性别为女性”满足,则执行 “输出女性的特征”的相关代码当 “性别为男性” 不满足,“性别为女性”也不满足,那么久默认执行else后面的代码,即 “第三种性别的特征”相关代码
2.2 elif必须和if一起使用,否则出错
<3>练一练
需求:获取用户输入(1-7),输入1、输出Monday,输入2、输出Tuesday ...
代码:
num = int(input("请输入一个数字(1 - 7):"))
if num == 1:
print("Monday")
elif num == 2:
print("Tuesday")
elif num == 3:
print("Wednesday")
elif num == 4:
print("Thursday")
elif num == 5:
print("Friday")
elif num == 6:
print("Saturday")
elif num == 7:
print("Sunday")
else:
print("输入错误!")
运行结果:
5、if嵌套
想一想:
坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?
答:if嵌套
<1>if嵌套的格式
if 条件1:
满足条件1 做的事情1
满足条件1 做的事情2
...(省略)...
if 条件2:
满足条件2 做的事情1
满足条件2 做的事情2
...(省略)...
说明
外层的if判断,也可以是if-else内层的if判断,也可以是if-else根据实际开发的情况,进行选择
<2>if嵌套的应用
demo1:
ticket = int(input("请拿出你的车票(1表示有,0表示没有):"))
if ticket == 1:
dao_lenght = int(input("请输入刀子的长度:"))
print("有车票,可以进站")
if dao_lenght < 10:
print("通过安检")
print("终于可以见到Ta了,美滋滋~~~")
else:
print("没有通过安检")
print("刀子的长度超过规定,等待警察处理...")
else:
print("没有车票,不能进站")
print("亲爱的,那就下次见了,一票难求啊~~~~(>_<)~~~~)")
运行结果:
demo2
sex = input("请输入你对象的性别:")
if sex == "女":
skin_color = input("她白么?------")
property = int(input("请输入她的财产总和------"))
beautiful = input("她美么?------")
if (skin_color == "白" and property >= 10000000 and beautiful == "美"):
print("白富美...")
else:
print("普通人...")
elif sex == "男":
height = input("他高么?------")
property = int(input("请输入他的财产总和------"))
cool = input("他帅么?------")
if (height == "高" and property >= 10000000 and cool == "帅"):
print("高富帅...")
else:
print("普通人...")
else:
print("中国不合法公民!")
运行结果:
demo3
猜拳游戏,要求效果:
参考代码:
import random
#1. 提示并获取用户的输入
player = int(input("请输入 0--- 剪刀 1---石头 2---布 "))
#2.让电脑出一个
computer = random.randint(0,2) #随机产生0到2的整数
#3. 判断用户的输入,然后显示对应的结果
#玩家获胜的条件
if ((player==0 and computer==2) or (player==1 and computer==0) or (player==2 and computer==1)):
print("赢了,请收下游戏币!")
#玩家平局的条件
elif (player == computer):
print("平局了,决战到天亮!")
else:
print("输了,回家拿钱!")
运行结果:
二、循环
1.while循环
<1>while循环的格式
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
demo1
i = 1
while i <= 10:
print(i)
i = i 1
运行结果:
<2>while循环应用
① 计算1~100的累积和(包含1和100)
参考代码如下:
i = 1
sum = 0
while i<=100:
sum = sum i
i = 1
print("1~100的累积和为:%d"%sum)
② 计算1~100之间偶数的累积和(包含1和100)
参考代码如下:
i = 1
sum = 0
while i<=100:
if i%2 == 0:
sum = sum i
i =1
print("1~100的累积和为:%d"%sum)
2.while嵌套
<1>while嵌套的格式
while 条件1:
条件1满足时,做的事情1
条件1满足时,做的事情2
条件1满足时,做的事情3
...(省略)...
while 条件2:
条件2满足时,做的事情1
条件2满足时,做的事情2
条件2满足时,做的事情3
...(省略)...
<2>while嵌套应用一
要求:打印如下图形:
*
* *
* * *
* * * *
* * * * *
参考代码:
i = 1
while i<=5:
j = 1
while j<=i:
print("*",end='') #让print默认不换行
j =1
print("n")
i =1
<3>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
3.复合赋值运算符
注:博客前面有详细表格
例:
j = j 1 <=> j = 1
c = c -a <=> c -= a
其他同理
特殊:
a = 4
a*=10-30 20 <=> a=a*(10-30 20)
而不是 a=a*10-30 20
所以如果使用复合赋值运算,右边是一个表达式,记住加一个小括号
4.for循环
像while循环一样,for可以完成循环的功能。
在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。
<1>for循环的格式
for 临时变量 in 列表或者字符串等:
循环满足条件时执行的代码
else:
循环不满足条件时执行的代码
demo1
name = 'dongGe'
for x in name:
print(x)
运行结果如下:
demo2
name = ' '
for x in name:
print(x)
else:
print("没有数据")
运行结果如下:
5.break和continue
demo
i = 1
num = 1
while i <= 100:
if i%2 == 0:
print(i)
num = 1
if num == 20:
break
i = 1
运行结果:
5.1 break
<1>for循环
普通的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
print(x)
运行结果:
带有break的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
break
print(x)
运行结果:
<2>while循环
普通的循环示例如下:
i = 0
while i<10:
i = i 1
print('----')
print(i)
运行结果:
带有break的循环示例如下:
i = 0
while i<10:
i = i 1
print('----')
if i==5:
break
print(i)
运行结果:
break的作用:用来结束整个循环
5.2 continue
<1> for循环
带有continue的循环示例如下:
name = 'dongGe'
for x in name:
print('----')
if x == 'g':
continue
print(x)
运行结果:
<2> while循环
带有continue的循环示例如下:
i = 0
while i<10:
i = i 1
print('----')
if i==5:
continue
print(i)
运行结果:
continue的作用:用来结束本次循环,紧接着执行下一次的循环
3. 注意点
break/continue只能用在循环中,除此以外不能单独使用 break/continue在嵌套循环中,只对最近的一层循环起作用
demo
i = 1
while i<=5:
j = 1
while j<=i:
print(" * ",end='')
j = 1
break #break在哪层的循环里,就结束哪层的循环,就近原则
#continue同理
print("") #换行
i = 1
运行结果:
三、作业
①必做题:
1. 使用if,编写程序,实现以下功能:
从键盘获取用户名、密码如果用户名和密码都正确(预先设定一个用户名和密码),那么就显示“欢迎进入xxx的世界”,否则提示密码或者用户名错误
2. 使用while,完成以下图形的输出
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
②选做题:
1. 根据以下信息提示,请帮小明计算,他每月乘坐地铁支出的总费用
提示信息:
北京公交地铁新票价确定
据北京市发改委网站消息称,北京市将从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元;编写程序,帮小明完成每月乘坐地铁需要的总费用
作业解答:
必做题1
代码:
work_user = "受害者"
work_passwd = "123456"
user = input("请输入用户名:")
passwd = input("请输入密码:")
if (user == work_user) and (passwd == work_passwd):
print("-"*10)
print("欢迎来到侏罗纪世界!")
print("-"*10)
else:
print("无法登录!")
运行结果:
必做题2
代码:
i = 1
while i<=5:
j = 1
while j<=i:
print('*',end='')
j =1
print("n")
i =1
while i>=1:
j = 1
while j<=i-1:
print('*',end='')
j =1
print("n")
i-=1
运行结果:
选做题
代码:
#小明每月月初第一次刷公交卡,扣款5元,说明从他家到他们公司坐电汽需要花费5元
#从电汽的价格表反推,可以得出 家--> 公司 的距离为50公里
#以上结论是在把距离当做位移的情况下成立(毕竟坐电汽和坐地铁的路线不一样,距离#肯定不一样)
#接下来编写一个坐地铁根据距离求费用的程序
#1. 获取用户输入的距离,单位为公里
import math
distance = float(input("请输入从你家到你们公司的距离(公里):"))
#2. 编写小明每月坐地铁的消费
if (distance > 0) and (distance <= 6):
month_money = (3*2)*20 #乘以2是因为来回两趟,再乘以20是每月坐20天
elif (distance > 6) and (distance <= 12):
month_money = (4*2)*20
elif (distance > 12) and (distance <= 22):
month_money = (5*2)*20
elif (distance > 22) and (distance <= 32):
month_money = (6*2)*20
elif distance > 32:
up_32 = math.ceil((distance - 32)/20)
#向上取整ceil(),向下取整floor(),四舍五入round()
#print(up_32)
month_money = ((6 up_32)*2)*20#3. 计算是否有折扣
if month_money >= 100:
month_money *= 0.8
print("您本月的地铁消费为:%d元" % month_money)
elif month_money >= 150:
month_money *= 0.5
print("您本月的地铁消费为:%d元" % month_money)
else:
print("您本月的地铁消费为:%d元" % month_money)
运行结果:
转载于:https://www.cnblogs.com/dawangk-3366/p/9216994.html