if 的嵌套 演练 —— 火车站安检
需求
- 定义布尔型变量
has_ticket
表示是否有车票 - 定义整型变量
knife_length
表示刀的长度,单位:厘米 - 首先检查是否有车票,如果有,才允许进行 安检
- 安检时,需要检查刀的长度,判断是否超过 20 厘米
- 如果超过 20 厘米,提示刀的长度,不允许上车
- 如果不超过 20 厘米,安检通过
- 如果没有车票,不允许进门
# 定义布尔型变量 has_ticket 表示是否有车票 has_ticket = True # 定义整数型变量 knife_length 表示刀的长度,单位:厘米 knife_length = 20 # 首先检查是否有车票,如果有,才允许进行 安检 if has_ticket: print("有车票,可以开始安检...") # 安检时,需要检查刀的长度,判断是否超过 20 厘米 # 如果超过 20 厘米,提示刀的长度,不允许上车 if knife_length >= 20: print("不允许携带 %d 厘米长的刀上车" % knife_length) # 如果不超过 20 厘米,安检通过 else: print("安检通过,祝您旅途愉快……") # 如果没有车票,不允许进门 else: print("大哥,您要先买票啊")
综合应用 —— 石头剪刀布
目标
- 强化 多个条件 的 逻辑运算
- 体会
import
导入模块(“工具包”)的使用
需求
- 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3)
- 电脑 随机 出拳 —— 先假定电脑只会出石头,完成整体代码功能
- 比较胜负
序号 | 规则 |
1 | 石头 胜 剪刀 |
2 | 剪刀 胜 布 |
3 | 布 胜 石头 |
基础代码实现
- 先 假定电脑就只会出石头,完成整体代码功能
# 从控制台输入要出的拳 —— 石头(1)/剪刀(2)/布(3) player = int(input("请出拳 石头(1)/剪刀(2)/布(3):")) # 电脑 随机 出拳 - 假定电脑永远出石头 computer = 1 # 比较胜负 # 如果条件判断的内容太长,可以在最外侧的条件增加一对大括号 # 再在每一个条件之间,使用回车,PyCharm 可以自动增加 8 个空格 if ((player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1)): print("噢耶!!!电脑弱爆了!!!") elif player == computer: print("心有灵犀,再来一盘!") else: print("不行,我要和你决战到天亮!")
随机数的处理
- 在
Python
中,要使用随机数,首先需要导入 随机数 的 模块 —— “工具包”
import random
- 导入模块后,可以直接在 模块名称 后面敲一个
.
然后按Tab
键,会提示该模块中包含的所有函数 random.randint(a, b)
,返回[a, b]
之间的整数,包含a
和b
- 例如:
random.randint(12, 20) # 生成的随机数n: 12 <= n <= 20 random.randint(20, 20) # 结果永远是 20 random.randint(20, 10) # 该语句是错误的,下限必须小于上限