Python 如何阻止代码输出负数?

Python 如何阻止代码输出负数?,python,Python,我试图创建一个python中最后一个人的游戏,但是当你输入一个数字时,它会输出正确答案的否定版本?另外,当我输入除1、2或3以外的任何内容时,我会得到错误:ValueError:无法将字符串转换为float:'(数字以外的任何内容)' 感谢您的帮助。谢谢 import random num = random.randrange(20, 30) print ("The number is " + str(num) + ", take either one, tw

我试图创建一个python中最后一个人的游戏,但是当你输入一个数字时,它会输出正确答案的否定版本?另外,当我输入除1、2或3以外的任何内容时,我会得到错误:ValueError:无法将字符串转换为float:'(数字以外的任何内容)'

感谢您的帮助。谢谢

import random

num = random.randrange(20, 30)  
print ("The number is " + str(num) + ", take either one, two or three away from it!")
take = float(input("input either 1, 2 or 3: "))
newnum = take - num
if take == 1:
    print(newnum)
elif take == 2:
    print(newnum)
elif take == 3:
    print(newnum)
else:
    print("please enter either 1, 2 or 3!")

您可以使用while循环来确保用户只输入1、2或3

import random

num = random.randrange(20, 30)  
print ("The number is " + str(num) + ", take either one, two or three away from it!")
take = None
while take not in {1,2,3}: #{} faster than ()
    take = int(input("input either 1, 2 or 3: "))
    print("please enter either 1, 2 or 3!")
print(num-take)


正如上面的代码所示,您需要使用
num take
,而不是反之亦然。

范围
20的任何数字。。30
将大于
1
2
3
。你是说
num-take
?我太蠢了!第一部分我的缺点是,有人修复了值错误位吗?第二个问题(输入验证)>
1谢谢你,这一点从来都不新鲜。