Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 巨蟒中的石头、布和剪刀_Python - Fatal编程技术网

Python 巨蟒中的石头、布和剪刀

Python 巨蟒中的石头、布和剪刀,python,Python,我是python新手,现在请不要判断代码的质量 所以,我正在制作一个程序,让你们用代码玩石头、布和剪刀。这是我的代码: import random name = str(input("Enter your name:\n")) choices = ["rock", "papers", "scissors"] print(f"Hi {name}, choose between rock, papers

我是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
我不想要最后一行,上面写着计算机选择:摇滚。请有人建议我该怎么做

提前感谢只需使用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

    [...]
只需使用“继续”强制用户输入有效选项:

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")

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!")

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

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!")

下面是一个可能的实现:

随机输入 name=输入您的姓名: 选择=[石头、剪刀、布] printfHi{name},在石头、布和剪刀之间选择 尽管如此: 用户选择=无 当用户选择不在选项中时: 用户选择=严格输入'>' 用户选择 计算机选择=随机选择 printfComputer选择:{computer_choice} 如果用户选择==计算机选择: 普林蒂! elif选项[choices.indexuser\u choice+1%lenchoices]==计算机选项: printf{name}获胜! 其他: printfComputer赢了! 一些见解:

您可以使用一个四舍五入的列表来完成比较机制,而不是显式比较。 对用户输入执行while循环,直到正确为止。
下面是一个可能的实现:

随机输入 name=输入您的姓名: 选择=[石头、剪刀、布] printfHi{name},在石头、布和剪刀之间选择 尽管如此: 用户选择=无 当用户选择不在选项中时: 用户选择=严格输入'>' 用户选择 计算机选择=随机选择 printfComputer选择:{computer_choice} 如果用户选择==计算机选择: 普林蒂! elif选项[choices.indexuser\u choice+1%lenchoices]==计算机选项: printf{name}获胜! 其他: printfComputer赢了! 一些见解:

您可以使用一个四舍五入的列表来完成比较机制,而不是显式比较。 对用户输入执行while循环,直到正确为止。
看起来您的错误问题已经解决: 但是对于平局和记分计数器,我准备了以下代码-

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")
看这里的屏幕截图,它工作正常-
看来您的错误问题已经解决了: 但是对于平局和记分计数器,我准备了以下代码-

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")
看这里的屏幕截图,它工作正常-

请您也为积分系统推荐一些代码。这是一个完全独立的问题。好的,我会在另一个问题中问这个问题,请在那边推荐您的代码。请。请你也建议一些积分系统的代码。这是一个完全独立的问题。好的,我会在另一个问题中问这个问题,请在那边建议你的代码。请。如果它对你有帮助,你可以接受答案并向上投票,但是,我同意@chepner,这是一个不同的问题。如果它对你有帮助,你可以接受答案并向上投票,但是,我同意@chepner,这是一个不同的问题。嘿@Hydraulic,很抱歉,这个代码不起作用。请与我联系,即使我做了一些必要的更改。你做了哪些更改?我如何发送截图??XD@coding123你可以看看上面编辑的答案:是的,明白了!!非常感谢。嘿@Hydraulic,很抱歉这个代码不起作用。请与我联系,即使我做了一些必要的更改。你做了哪些更改?我如何发送截图??XD@coding123你可以看看上面编辑的答案:是的,明白了!!非常感谢。