Добро пожаловать в Python и ТАК, ваша проблема уже объяснена в ответах выше, просто используйте if-elif-else
и дважды проверьте свой condition
Я предлагаю вам объединить 2 list
в dict
. Это сделает вас более ясным:
rps = {"rock": ['rock', 'r'],
"paper": ['paper', 'p'],
"scissor": ['scissor', 's']}
Что касается операторов if
, вам следует подумать о разделении condition
на некоторые под if-elif-else
операторы, это сделает ваш код более понятным:
Guess = str(input(f"Choose your weapon: {list(rps.keys())}? "))
Guess = Guess.lower()
computerGuess = random.choice(list(rps.keys()))
# Rock
if Guess in rps['rock']:
print(f"Computer: {computerGuess}")
if computerScore is 'rock':
print("It's a tie!")
elif computerGuess is 'paper':
print("You lose!")
computerScore += 1
else:
print("You win!")
Score += 1
print(f"{Score} / {computerScore}")
# Paper
elif Guess in rps['paper']:
print(f"Computer: {computerGuess}")
if computerScore is 'paper':
print("It's a tie!")
elif computerGuess is 'scissor':
print("You lose!")
computerScore += 1
else:
print("You win!")
Score += 1
print(f"{Score} / {computerScore}")
# Scissor
elif Guess in rps['scissor']:
print(f"Computer: {computerGuess}")
if computerScore is 'scissor':
print("It's a tie!")
elif computerGuess is 'rock':
print("You lose!")
computerScore += 1
else:
print("You win!")
Score += 1
print(f"{Score} / {computerScore}")
else:
print("Invalid response.")