Python小记4
接https://www.cnblogs.com/airlinp/p/12509533.html
7.3 if嵌套小练习 — 石头剪刀布游戏(模拟电脑版)
# 用户出石头(1),剪刀(2),布(3)
player = int(input("请输入你要出的石头(1),剪刀(2),布(3):"))
# 模拟电脑
computer = int(input("模拟电脑出的石头(1),剪刀(2),布(3):"))
# 输出出手情况
print("用户出的是 %d — 电脑出的是 %d。" % (player, computer))
# 判断用户胜利情况
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("电脑胜。")
由上面代码可知:
- 定义1代表石头,2代表剪刀,3代表布;
- 电脑固定出1石头;
- 判断用户胜利、平局、电脑胜3中情况;
用户胜:
由上图可知:用户输入3布,电脑输入1石头,所以用户胜利;
平局:
由上图可知:用户出1石头,电脑出1石头,则平局;
电脑胜:
由上图可知:用户出1石头,电脑出3布,电脑胜;
总结:
- 由于目前阶段,所学有限,暂时只能使用最基础和原始的办法完成练习;
- 在这个小游戏练习中,使用到了input输入、int数据转换、if嵌套;
- 在处理逻辑中,先应该理清游戏的机制,用户胜的需要满足的条件,平局需要满足的条件,电脑胜需要满足的条件;
- 当处理完用户胜的情况后,在剩下的平局、电脑胜中进行选择,哪一个情况的代码更容易编写或实现,经过思考,平局的情况所需要的代码最少,并且判断条件也很简单,所以先处理平局的情况,当用户胜、平局都处理完成后,剩下的肯定只有电脑胜,直接使用else,无需再编写复杂的条件逻辑,完成最后的判断;
- 在实际应用中,不仅仅是需要将事件本身思考完整、明确,还需要思考解决方法的优劣性,逐步提高代码编写的水平,事件处理的水平;
7.4 if嵌套小练习 — 石头剪刀布游戏(电脑随机数版)
# 将random随机数模块导入内存 import random # 用户出石头(1),剪刀(2),布(3) player = int(input("请输入你要出的石头(1),剪刀(2),布(3):")) # 电脑随机数 computer = random.randint(1,3) # 输出出手情况 print("用户出的是 %d — 电脑出的是 %d。" % (player, computer)) # 判断用户胜利情况 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("电脑胜。")
由上面的代码和执行截图可知:
- 当前小游戏中,使用随机数模块为random;
- random里包含了多种类型随机数,本次练习中使用randint整数型随机数;
- randint()小括号内,用于规定随机数范围,并包含起始数字在内,例如代码中的randint(1,3)代表随机数n的范围是1≤n≤3,即1、2、3三种情况;