Python中的石头、布和剪刀

2024-05-31 23:43:23 发布

您现在位置:Python中文网/ 问答频道 /正文

(我是python新手,现在请不要判断代码的质量。)

所以,我正在制作一个程序,让你们用代码玩石头、布和剪刀。这是我的代码:

import random

name = str(input("Enter your name:\n"))

choices = ["rock", "papers", "scissors"]

print(f"Hi {name}, choose between rock, papers and scissors")

while True:
    user_choice = str(input('> '))
    user_choice.lower()

    if user_choice not in choices:
        print("ERROR")

    computer_choice = random.choice(choices)
    print(f"Computer chooses: {computer_choice}")

    if user_choice == "rock":
        if computer_choice == "papers":
            print("Computer wins!")
        elif computer_choice == "scissors":
            print(f"{name} wins!")

    if user_choice == "papers":
        if computer_choice == "scissors":
            print("Computer wins!")
        if computer_choice == "rock":
            print(f"{name} wins!")

    if user_choice == "scissors":
        if computer_choice == "rock":
            print("Computer wins!")
        elif computer_choice == "papers":
            print(f"{name} wins!")

    if user_choice == computer_choice:
        print("Tie!")

但是,就像我运行代码时一样,它运行得非常好。然而,问题是如果用户没有输入正确的拼写,输出看起来真的很混乱。像这样:

Enter your name:
_____
Hi _____, choose between rock, papers and scissors
> asdf
ERROR
Computer chooses: rock

我不想要最后一行,上面写着“电脑选择:摇滚”。请有人建议我该怎么做

提前谢谢🙏

(编辑:另外,如果你能建议我如何在这篇文章中加入一个积分系统,它可以计算出电脑赢了多少次,用户赢了多少次,以及比赛平局了多少次,那么我将非常感谢你的努力。)


Tags: 代码nameifrandomcomputerchoicesprintscissors
3条回答

只需使用continue强制用户输入有效选项:

while True:
    user_choice = str(input('> '))
    user_choice = user_choice.lower()

    if user_choice not in choices:
        print(f"You chose {user_choice}, please choose rock, paper, or scissors")
        continue

    [...]

看起来您的错误问题已经解决:) 但对于平局和记分柜台,我准备了以下代码-

import random

name = str(input("Enter your name:\n"))

choices = ["rock", "papers", "scissors"]

print(f"Hi {name}, choose between rock, papers and scissors")

Cwin = 0

Userwin = 0

Tie = 0

while True:
    user_choice = str(input('> '))
    user_choice.lower()

    if user_choice not in choices:
        print("ERROR")

    computer_choice = random.choice(choices)
    print(f"Computer chooses: {computer_choice}")

    if user_choice == "rock":
        if computer_choice == "papers":
            print("Computer wins!")
            Cwin = Cwin + 1
            print(int(Cwin) , "Computer victories so far")
        elif computer_choice == "scissors":
            print(f"{name} wins!")
            Userwin = Userwin + 1
            print(int(Userwin) , "User victories so far")

    if user_choice == "papers":
        if computer_choice == "scissors":
            print("Computer wins!")
            Cwin = Cwin + 1
            print(int(Cwin) , "Computer victories so far")
        elif computer_choice == "rock":
            print(f"{name} wins!")
            Userwin = Userwin + 1
            print(int(Userwin) , "User victories so far")

    if user_choice == "scissors":
        if computer_choice == "rock":
            print("Computer wins!")
            Cwin = Cwin + 1
            print(int(Cwin) , "Computer victories so far")
        elif computer_choice == "papers":
            print(f"{name} wins!")
            Userwin = Userwin + 1
            print(int(Userwin) , "User victories so far")

    if user_choice == computer_choice:
        print("Tie!")
        Tie = Tie + 1
        print(int(Tie) , "Ties so far")

看这里的屏幕截图,它工作正常- enter image description here

只需添加计算机,然后在其他文件中选择:

import random

name = str(input("Enter your name:\n"))

choices = ["rock", "papers", "scissors"]

print(f"Hi {name}, choose between rock, papers and scissors")

while True:
    user_choice = str(input('> '))
    user_choice.lower()

    if user_choice not in choices:
        print("ERROR")
    else:
        computer_choice = random.choice(choices)
        print(f"Computer chooses: {computer_choice}")

    if user_choice == "rock":
        if computer_choice == "papers":
            print("Computer wins!")
        elif computer_choice == "scissors":
            print(f"{name} wins!")

    if user_choice == "papers":
        if computer_choice == "scissors":
            print("Computer wins!")
        if computer_choice == "rock":
            print(f"{name} wins!")

    if user_choice == "scissors":
        if computer_choice == "rock":
            print("Computer wins!")
        elif computer_choice == "papers":
            print(f"{name} wins!")

    if user_choice == computer_choice:
        print("Tie!")

相关问题 更多 >