Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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编程。我目前正在尝试建立一个石头,布,剪刀游戏。要求用户选择代表三个选项之一的数字。而pc机选择的是一个随机数。但是,我得到了一个输入行的值错误。同一行代码在不同的上下文中运行良好(无while循环),但我看不出我做错了什么。任何帮助都将不胜感激 我尝试将字符串转换为浮点,然后再转换为整数。那是行不通的。此外,我还将播放器输入数字y替换为随机数,以测试代码的其余部分。这很管用 这是我收到的错误消息: answerplayer = int (input('What is y

我刚刚开始用Python编程。我目前正在尝试建立一个石头,布,剪刀游戏。要求用户选择代表三个选项之一的数字。而pc机选择的是一个随机数。但是,我得到了一个输入行的值错误。同一行代码在不同的上下文中运行良好(无while循环),但我看不出我做错了什么。任何帮助都将不胜感激

我尝试将字符串转换为浮点,然后再转换为整数。那是行不通的。此外,我还将播放器输入数字y替换为随机数,以测试代码的其余部分。这很管用

这是我收到的错误消息:

answerplayer = int (input('What is your choice? ')) #Error
ValueError: invalid literal for int() with base 10: "runfile
守则:

import random
win = False

while win == False:
    print ('Rock, Paper, Scissors. 0: Rock; 1: Scissors; 2: Paper')
    print ('Make your choice')
    answerplayer = int (input('What is your choice? ')) #Error
    answer = random.randrange (3)
    print (answerplayer)
    print (answer)
    if answer == 0 and answerplayer == 0 :
        print ('TIE')
    elif answer == 0 and answerplayer == 1 :
        print ('PC Win')
        win = True
    elif answer == 0 and answerplayer == 2 :
        print ('Player Win')
        win = True
    elif answer == 1 and answerplayer == 0 :
        print ('Player Win')
        win = True
    elif answer == 1 and answerplayer == 1 :
        print ('TIE')
    elif answer == 1 and answerplayer == 2 :
        print ('PC Win')
        win = True
    elif answer == 2 and answerplayer == 0 :
        print ('Player Win')
        win = True
    elif answer == 2 and answerplayer == 1 :
        print ('PC Win')
        win = True
    elif answer == 2 and answerplayer == 2 :
        print ('TIE')
    else:
        print ('Player Win')
        win = True

print ('done')

代码很好。但是,用户输入必须是
int()
可以转换为整数的内容

通过:
1
2
3.444

失败:
sqfe
zero

您可以通过以下方法解决:

while win == False:
    print ('Rock, Paper, Scissors. 0: Rock; 1: Scissors; 2: Paper')
    print ('Make your choice')
    answerplayer = input('What is your choice? ')
    if not answerplayer.isnumeric() :
        print ('No number')
        break
    answerplayer = int(answerplayer)
    answer = random.randrange (3)
    print (answerplayer)
    print (answer)

这个错误意味着当程序请求输入时,你没有给出一个有效的整数。谢谢大家,它已经被修复了。