Python 制作石头、布、剪刀游戏时的值错误
我刚刚开始用Python编程。我目前正在尝试建立一个石头,布,剪刀游戏。要求用户选择代表三个选项之一的数字。而pc机选择的是一个随机数。但是,我得到了一个输入行的值错误。同一行代码在不同的上下文中运行良好(无while循环),但我看不出我做错了什么。任何帮助都将不胜感激 我尝试将字符串转换为浮点,然后再转换为整数。那是行不通的。此外,我还将播放器输入数字y替换为随机数,以测试代码的其余部分。这很管用 这是我收到的错误消息:Python 制作石头、布、剪刀游戏时的值错误,python,Python,我刚刚开始用Python编程。我目前正在尝试建立一个石头,布,剪刀游戏。要求用户选择代表三个选项之一的数字。而pc机选择的是一个随机数。但是,我得到了一个输入行的值错误。同一行代码在不同的上下文中运行良好(无while循环),但我看不出我做错了什么。任何帮助都将不胜感激 我尝试将字符串转换为浮点,然后再转换为整数。那是行不通的。此外,我还将播放器输入数字y替换为随机数,以测试代码的其余部分。这很管用 这是我收到的错误消息: answerplayer = int (input('What is 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)
这个错误意味着当程序请求输入时,你没有给出一个有效的整数。谢谢大家,它已经被修复了。