Python练习:石头剪刀布
Python练习:石头剪刀布
题目
我们来玩吧!你必须返回获胜的玩家!如果平局则返回 Draw!
。
示例(输入 1,输入 2 --> 输出):
"scissors 剪刀", "paper 布" --> "Player 1 won!"
"scissors 剪刀", "rock 石头" --> "Player 2 won!"
"paper 布", "paper 布" --> "Draw!"
代码
def rps(p1, p2):
if p1 == p2:
return "Draw!"
elif p1 == "rock":
if p2 == "scissors":
return "Player 1 won!"
else:
return "Player 2 won!"
elif p1 == "scissors":
if p2 == "paper":
return "Player 1 won!"
else:
return "Player 2 won!"
else:
if p2 == "rock":
return "Player 1 won!"
else:
return "Player 2 won!"
# 使用字典来存储石头剪刀布游戏的胜负规则。字典的键是玩家的选择,值是可以击败该选择的选择。
def rps(p1, p2):
beats = {'rock': 'scissors', 'scissors': 'paper', 'paper': 'rock'}
if beats[p1] == p2:
return "Player 1 won!"
if beats[p2] == p1:
return "Player 2 won!"
return "Draw!"
知识点:
字典:在Python中,字典是一种可变容器模型,可以存储任意类型对象。字典的每个键值对都用冒号 ":" 分割,每个对之间用逗号 "," 分割,整个字典包括在花括号 "{}" 中。在这个函数中,
beats
是一个字典,它映射了每个选项("rock"、"scissors" 和 "paper")到它可以击败的选项。索引:在Python中,你可以使用方括号 "[]" 来访问字典中的元素。在这个函数中,使用
beats[p1]
和beats[p2]
来获取p1
和p2
可以击败的选项。
测试
import codewars_test as test
from solution import rps
@test.describe("rock paper scissors")
def basic_tests():
@test.it("Player 1 wins")
def player_1():
test.assert_equals(rps('rock', 'scissors'), "Player 1 won!")
@test.it("Player 1 wins")
def player_1():
test.assert_equals(rps('scissors', 'rock'), "Player 2 won!")
@test.it("Draw")
def draw():
test.assert_equals(rps('rock', 'rock'), 'Draw!')
License:
CC BY 4.0