# -*- coding: utf-8 -*-
# @Time : 2019/11/5 10:15
# @Author : John
# @Email : 2398344557@qq.com
# @File : 条件判断语句.py
# @Software: PyCharm
Python中:
- 任何非0和非空None的值都为True
- 反之0或None则为False
- if语句的基本形式
# if 判断条件:
# 执行语句
# else:
# 执行语句
result = 59
if result >= 60:
print('及格')
else:
print('不及格')
—— 不及格
# ----------------------------------------
# *** 拓展***
# 创建if语句快捷方式:条件后.if,然后按tab键
# result >= 60.if <== tab键
# ----------------------------------------
# *** 拓展***
# 这样写也成立:
if 1:
print('if执行了')
if True:
print('if也执行了')
if '1':
print('if执行了')
if [0]:
print('if执行了')
if {0}:
print('if执行了')
if {'0': 0}:
print('if执行了')
if (0,):
print('if执行了')
...
—— if执行了
# 结论:if条件为真时,就会执行执行语句
# ----------------------------------------
# *** 拓展***
# 三目运算符
#格式:print('' if 条件 else '')
print('及格' if result >=60 else '不及格')
—— 不及格
- if 语句多个判断的形式
score = int(input('请输入你的成绩:'))
if score > 90:
print('你的成绩为优秀')
elif score >80:
print('你的成绩为良好')
elif score > 60:
print('你的成绩为及格')
elif score < 60:
print('你的成绩为不及格')
—— 请输入你的成绩:91
你的成绩为优秀
请输入你的成绩:79
你的成绩为及格
- if语句多个条件同时判断的形式
# 很多编程语言使用switch去判断多个条件
# Python中并没有提供sswitch语句,而是使用elif来代替
# or(或),表示两个条件有一个成立了时,判断条件成立(一真必真)
# and(与),表示只有当两个条件同时成立时,判断条件成立(一假必假)
# 格式:
# if 情况1:
# 事情1
# elif 情况2:
# 事情2
# ...
# else:
# 以上都不满足时执行的事情
score = int(input('请输入你的成绩:'))
if score >= 90 and score <= 100:
print('你的成绩为优秀')
elif score >= 75 and score < 90:
print('你的成绩为良好')
elif score >= 60 and score < 75:
print('你的成绩为及格')
elif score < 60:
print('你的成绩为不及格')
else:
print('请输入数字!100及以内')
—— 请输入你的成绩:100
你的成绩为优秀
请输入你的成绩:80
你的成绩为良好
请输入你的成绩:70
你的成绩为及格
请输入你的成绩:59
你的成绩为不及格
# 结论:1. elif必须与if一起使用
# 2. else可以选择性使用,是以上情况(条件)都不满足时使用
# ***拓展***
# ----------------
# 当if有多个条件时可以使用括号来区分判断的先后循序,括号中的判断优先执行(括号提高优先级),此外,and和or 的优先级低于>(大于),<(小于)等判断符号,即大于和小于在没有括号的 情况会比“与”、“或”要优先判断
java = 86
python = 68
if (80 <= java < 90) or (80 <= python < 90):
print('good')
—— good
- if的嵌套
# if 条件1:
# 满足条件1时执行的事情
# if 条件2:
# 满足条件1执行的事情
# 说明:
# 外层的if判断,也可以是if else
# 内层的if判断,也可以是if else
【课堂练习】我想买车,买什么车决定于我在银行有多少存款
# 要求:
# 如果我的存款超过500万,我就买路虎
# 否则,如果我的存款超过100万,我就买宝马
# 否则, 如果我的存款超过50万,我就买迈腾
# 否则, 如果我的存款超过10万,我就买福特
# 否则, 如果我的存款10万以下 ,我买比亚迪
money = int(input('我在银行有多少存款(万)?'))
if money > 500:
print('我的存款超过了500万,买路虎!')
elif money > 100 and money <= 500:
print('我的存款超过了100万,买宝马!')
elif money > 10 and money <= 100:
print('我的存款超过了10万,买福特')
elif money > 0 and money <= 10:
print('我的存款10万以下 ,买比亚迪')
—— 我在银行有多少存款(万)?501
我的存款超过了500万,买路虎!
【课堂练习】输入小明的考试成绩,显示所获奖励
# 要求:
# 成绩==100分,爸爸给他买辆车
# 成绩>=90分,妈妈给他买MP4
# 90分>成绩>=60分,妈妈给他买本参考书
# 成绩<60分,什么都不买
grade = int(input('小明的考试成绩为:'))
if grade == 100:
print('爸爸给他买辆车')
elif grade >= 90 and grade < 100:
print('妈妈给他买MP4')
elif grade >= 60 and grade <90:
print('妈妈给他买本参考书')
elif grade >= 0 and grade < 60:
print('买买买,吔屎啦你')
—— 小明的考试成绩为:59
买买买,吔屎啦你
【练习】不知为啥要带小刀去见梁非凡???细思极恐..
chePiao = 1
# chePiao = 0
knife_length = 9
if chePiao == 1: # 1代表有车票,0代表没车票
print('有车票了,可以上火车')
if knife_length < 10:
print('通过安检')
print('终于可以见到梁非凡了,嘻嘻嘻~~~')
else:
print('没通过安检')
print('oh my god,刀子超过规定长度,等待警察处理')
else:
print('没车票,不可以上火车')
print('呜呜呜,只能下一次再见面了,一票难求吖!')
—— 有车票了,可以上火车
通过安检
终于可以见到梁非凡了,嘻嘻嘻~~~
(其他情况略)
【练习】请输入飞船系统启动的语音命令(雷神3中)
voice = input('Welcome. Voice activation required:')
if voice == 'Banner':
print('Welcome, strongest Avenger.')
elif voice == 'Point Break':
print('Welcome, Point Break.')
else:
print('Access denied')
—— Welcome. Voice activation required:Thor
Access denied
Welcome. Voice activation required:Thor, son of Odin.
Access denied
Welcome. Voice activation required:God of Thunder
Access denied
Welcome. Voice activation required:Strongest Avenger
Access denied
Welcome. Voice activation required:Point Break
Welcome, Point Break.
Welcome. Voice activation required:Banner
Welcome, strongest Avenger.
Voice activation required.png
【练习】人机猜拳游戏(详细趣味版)
# 要求:
# 键盘输入,剪刀(0),石头(1),布(2)
# 电脑随机生成一个数,范围为[0, 2]
# 判断玩家和电脑猜拳输赢的情况,并且给予显示
from random import randint
operation = 'yes'
while operation == 'yes':
my_finger = input('听说挺厉害的,我要跟你单挑猜拳,请输入你的出拳(0为剪刀,1为石头,布为2):')
if my_finger in ['0', '1', '2']:
my_finger = int(my_finger)
computer_finger = randint(0, 2)
print('********数据正在处理中********')
my_finger_ChineseDisplay = ''
computer_finger_ChineseDisplay = ''
if my_finger == 0:
my_finger_ChineseDisplay = '剪刀'
elif my_finger == 1:
my_finger_ChineseDisplay = '石头'
elif my_finger == 2:
my_finger_ChineseDisplay = '布'
if computer_finger == 0:
computer_finger_ChineseDisplay = '剪刀'
elif computer_finger == 1:
computer_finger_ChineseDisplay = '石头'
elif computer_finger == 2:
computer_finger_ChineseDisplay = '布'
print('你的出拳为{}-{}'.format(my_finger, my_finger_ChineseDisplay))
print('我的出拳为{}-{}'.format(computer_finger, computer_finger_ChineseDisplay))
if my_finger == computer_finger:
print('平局!小伙子,看来你挺厉害的!')
print('可我不服,再来!')
operation = 'yes'
print('--------------------------------------')
elif my_finger > computer_finger:
if (my_finger - computer_finger) == 1:
print('呵呵,你竟然赢了!')
print('给我等着,我一定会回来的!')
operation = 'no'
break
else:
print('哦豁,你输了!老弟,你是怎么回事?')
print('要不再来一局?')
operation = 'yes'
print('--------------------------------------')
elif my_finger < computer_finger:
if (computer_finger - my_finger) == 1:
print('哦豁,你输了!老弟,你是怎么回事?')
print('要不再来一局?')
operation = 'yes'
print('--------------------------------------')
else:
print('呵呵,你竟然赢了!')
print('给我等着,我一定会回来的!')
operation = 'no'
break
else:
print('请输入0或1或2!')
详细趣味版猜拳效果如下:
【练习】人机猜拳游戏(简短版)
from random import randint
while True:
player = input('剪刀[0],石头[1],布[2]:')
computer = randint(0, 2)
if (player == 0 and computer == 2)or(player == 1 and computer == 0)or(player == 2 and computer == 1):
print('这是高手,你赢了。')
break
elif player == computer:
print('哈哈,平局呃,要不再来一局?')
else:
print('你输了,不要走,洗洗手,决战到天亮。')
简短版猜拳效果如下:
剪刀[0],石头[1],布[2]:0
哈哈,平局呃,要不再来一局?
剪刀[0],石头[1],布[2]:0
哈哈,平局呃,要不再来一局?
剪刀[0],石头[1],布[2]:0
你输了,不要走,洗洗手,决战到天亮。
剪刀[0],石头[1],布[2]:0
这是高手,你赢了。