开发者学堂课程【Python 入门 2020年版:猜拳游戏】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10264
猜拳游戏
猜拳游戏
#= 等号在计算机编程里,赋值运算符,作用是将等号右边的值赋值给等号的左边
#如果想要判断两个变量是否相等,不能使用 赋值运算符,而要使用 == 比较运算符
情况一:用户玩
player = input(‘请输入 (0)剪刀 (1)石头 (2)布:’)
#用户需输入的内容
print(‘用户输入的是’,player)
运行结果:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
请输入 (0)剪刀 (1)石头 (2)布:3
用户输入的是 3
Process finished with exit code 0
情况二:跟电脑玩,电脑需出一个数
#input 是用来接收用户输入的数据
#电脑应该随机的出一个数字 [0,2](数学区间 0~2)
#需要使用到随机数模块 random(若要使用一个模块需导进( import random))
#random.randint(a,b) ==>
能够生成 [a,b] 的随机整数(注意 ab 是闭区间,代表能取到开始,能取到结束)
import random
player = input(‘请输入 (0)剪刀 (1)石头 (2)布:’)
#用户需输入的内容
print(‘用户输入的是’,player)
computer = random.randint(0,2)
print(‘电脑出的是’,computer)
运行结果:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
请输入 (0)剪刀 (1)石头 (2)布:1
用户输入的是1
电脑出的是2
Process finished with exit code 0
若要判断输赢,把赢的情况写出,如下:
player = input(‘请输入 (0)剪刀 (1)石头 (2)布:’)
#用户需输入的内容
print(‘用户输入的是’,player)
computer = random.randint(0,2)
print(‘电脑出的是’,computer)
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(‘你个垃圾,输了吧!’)
#情况三
运行结果:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
请输入 (0)剪刀 (1)石头 (2)布:0
用户输入的是 0
电脑出的是 2
你个垃圾,输了吧!
Process finished with exit code 0
情况二编程是有一定问题的,不能判断。随便输入,比如hello,都会运行如下结果:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
请输入 ( 0 )剪刀 ( 1 )石头 ( 2 )布:hello
用户输入的是hello
电脑出的是 1
你个垃圾,输了吧!
Process finished with exit code 0
若想赢过电脑,让电脑先出:
#需要使用到随机数模块random
# random. randint(a,b) ==>
能够生成 [a,b] 的随机整数
imput random
computer = random. randint(0, 2)
#注意没有 imput,randint 下面就会有横线
print(‘电脑出的是’,computer)
# = 等号在计算机编程里,赋值运算符,作用是将等号右边的值赋值给等号的左边
#如果想要判断两个变量是否相等,不能使用赋值运算符,而要使用==比较运算符
player = input(‘请输入 (0)剪刀 (1)石头 (2) 布: ’))
# 1 ==1 结果是Falseprint(‘用户输入的是’,player)
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(‘你个垃圾,输了吧!’)
运行结果C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
电脑出的是2(电脑一明牌)
请输入 (0)剪刀 (1)石头 (2)布;0
用户输入的是0
你个垃圾,输了吧!
Process finished with exit code 0
用户输的原因是:
play == 0 条件都不满足,接收到用户的输入是字符串,如果电脑出的是 0,那用户就要出 1。但 1 是字符串的 1,字符串的 1 和数字的 1 作比较的结果永远是 False,所以要将用户输入转成 int 类型。
运行结果1:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
电脑出的是 2
请输入 (0)剪刀 (1)石头 (2)布:0
用户输入的是 0
恭喜你,你赢了!!!
Process finished with exit code 0
运行结果2:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
电脑出的是 2
请输入 (0)剪刀 (1)石头 (2)布:0
用户输入的是0
恭喜你,你赢了!!!
Process finished with exit code 0
运行结果3:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
电脑出的是 1
请输入 (0)剪刀 (1)石头 (2)布:0
用户输入的是0
你个垃圾,输了吧!
Process finished with exit code 0
random 下面有红色波浪线的原因:因为没有导入模块 import random。
运行结果4:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
电脑出的是 1
请输入 (0) 剪刀 (1)石头 (2)布:1
用户输入的是1
平局
Process finished with exit code 0
运行结果 5:C:\Users\chris\AppData\Local\Programs\Python\Python37\python.exe C:/Users/chris/Desktop/Python i/Day04-流程
电脑出的是 1
请输入 (0)剪刀 (1)石头 (2)布:0
用户输入的是0
你个垃圾,输了吧!
Process finished with exit code 0