判断语句
生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样?……
考试成绩对人生的影响,不同的考试成绩对应着的结果,也就是不用的分支
判断的定义
- 如果 条件满足,才能做某件事情,
- 如果 条件不满足,就做另外一件事情,或者什么也不做
正是因为有了判断,才使得程序世界丰富多彩,充满变化!
判断语句 又被称为 “分支语句”,正是因为有了判断,才让程序有了很多的分支
if 语句语法结构
- 标准if条件语句的语法 缩进:python代码的层级关系,一般加4个空格
-
如果表达式的值 非0 或者为布尔值 True,则代码组 if_suite 被执行;否则就去执行 else_suite
-
代码组是一个 python术语,它由一条或多条语句组成,表示一个子代码块
图例
只要表达式数字为 非零值 即为 True
空字符串、空列表的值均为 False
[root@localhost day01]# vim demo01_if.py # demo01_if.py是文件名,可以修改
# 代码1:
if 3 > 0:
print('yes')
print('ok')
# 代码2:为0的数字都为False,True才执行;
if -0.0:
print('为0的数字都为False')
else:
print('值为0')
# 代码3:空格是空字符串,为True,会打印;
if ' ':
print('空格也是一个字符,为True')
# 代码4:[False]为列表,列表中元素是False,因为列表存在,为真会打印;
if [False]:
print('非空列表,为真True')
# 代码5:None为假,取反为真;
if not None:
print('None为假,取反为真')
练习 :判断合法用户
需求
- 提示用户输入用户名和密码
- 获得到相关信息后,将其保存在变量中
- 如果用户输的用户名为 bob,密码为 123456,则输出 Login successful,否则输出 Login incorrect
[root@localhost day02]# vim login2.py # login2.py是文件名,可以修改
# 定义两个变量 username 和 password,分别从键盘获取用户名和密码
username = input('请输入用户名:')
password = input('请输入密码:')
# 在python中等于号用 == 表示;input()函数获取的值都是字符类型,密码要用引号引起来
if username == 'bob' and password == '123456':
print('Login successful')
else:
print('Login inorrect')
print(" Login end ")
if 扩展语句
语法结构:
练习 :编写判断成绩的程序
需求
-
如果成绩大于60分,输出“及格”
-
如果成绩大于70分,输出“良”
-
如果成绩大于80分,输出“好”
-
如果成绩大于90分,输出“优秀”
-
否则输出“你要努力了”
编写判断成绩的程序
[root@localhost day02]# vim demo02_if.py # demo02_if.py是文件名,可以修改
score = int(input('分数:'))
#程序的执行,是从上往下执行的;
#先判断大的数值,不满足再继续往下判断,可以简化程序代码
if score >= 90:
print('优秀')
elif score >= 80:
print('好')
elif score >= 70:
print('良')
elif score >= 60:
print('及格')
else:
print('你要努力了!!!')
练习 :编写石头剪刀布小游戏
需求:
- 计算机随机出拳
- 玩家自己决定如何出拳
- 代码尽量简化
方法一:编写剪刀石头布小游戏
[root@localhost day02]# vim test01_if.py # test01_if.py是文件名,可以修改
# 导入随机数的模块 random
import random
# 定义列表all_choices,存储出拳的每个选择
all_choices = ['石头','剪刀','布']
# random模块的choice方法,可以从变量中随机选出一个元素,随机出来的元素为电脑的出拳
computer = random.choice(all_choices)
# 使用input()函数,获取用户的出拳选择
player = input('请出拳(石头/剪刀/布):')
# 使用函数print()打印出电脑和玩家的出拳选择
print("Your choice:" + player + ", Computer's choice: " + computer)
# 当玩家出拳为【石头】时,电脑的每一种出拳选择都要和【石头】进行比较,打印结果
if player == '石头':
if computer == '石头':
print('平局')
elif computer == '剪刀':
print('You WIN!!!')
else:
print('You LOSE!!!')
# 当玩家出拳为【剪刀】时,电脑的每一种出拳选择都要和【剪刀】进行比较,打印结果
elif player == '剪刀':
if computer == '石头':
print('You LOSE!!!')
elif computer == '剪刀':
print('平局')
else:
print('You WIN!!!')
# 当玩家出拳为【布】时,电脑的每一种出拳选择都要和【布】进行比较,打印结果
else:
if computer == '石头':
print('You WIN!!!')
elif computer == '剪刀':
print('You LOSE!!!')
else:
print('平局')
方法二:
[root@localhost day02]# vim test02_if.py # test02_if.py是文件名,可以修改
# 导入随机数的模块 random
import random
# 定义列表all_choices,存储出拳的每个选择
all_choices = ['石头','剪刀','布']
# 定义列表win_list, 将玩家赢电脑的选择,提前保存起来
# 每个子列表中,玩家为第一个元素,电脑为第二个元素
win_list = [ ['石头','剪刀'], ['剪刀','布'], ['布','石头'] ]
# random模块的choice方法,可以从变量中随机选出一个元素
# 随机出来的元素为电脑的出拳
computer = random.choice(all_choices)
# 使用input()函数,获取用户的出拳选择
player = input('请出拳(石头/剪刀/布):')
# 使用函数print()打印出电脑和玩家的出拳选择
print("Your choice:" + player + ", Computer's choice: " + computer)
# 如果玩家和电脑的出拳相同,则平局
if player == computer:
print('平局')
# 如果[玩家,电脑]的列表,在win_list中,则可判断玩家赢,因为在win_list中定义了玩家赢得各种可能性
elif [player,computer] in win_list:
print('You WIN!!!')
# 玩家不是赢,那么就是输了,玩家所有赢得可能性已经在win_list定义了
else:
print('You LOSE!!!')