Python ValueError:基为10:str的int()的文本无效
可能我的编码不太好,有些行没有多大意义,或者没有必要,但代码的用途非常简单: 我想创建一个使用输入(字符串)的函数,并将其转换为整数,这将用于数学问题。 另外:我希望我的代码解释一个随机生成的数字,并将其打印为等效的字符串:Python ValueError:基为10:str的int()的文本无效,python,string,integer,Python,String,Integer,可能我的编码不太好,有些行没有多大意义,或者没有必要,但代码的用途非常简单: 我想创建一个使用输入(字符串)的函数,并将其转换为整数,这将用于数学问题。 另外:我希望我的代码解释一个随机生成的数字,并将其打印为等效的字符串: ### 'one' --> 1 ### 'zero' --> 0 import random ##'one' == 1 ##'zero' == 0 def name_to_number(name): if name == 'one':
### 'one' --> 1
### 'zero' --> 0
import random
##'one' == 1
##'zero' == 0
def name_to_number(name):
if name == 'one':
return 1
def number_to_name(comp_number):
if comp_number == 1:
return 'one'
def lit_for_num(name):
'''(str) -> str'''
comp_number = random.randrange(0,1)
equation = (abs(comp_number - int(name)))
if equation == 0:
print('Hallo!')
return 'Computer draws' + comp_number
else:
return 'Computer draws 0'
非常感谢您的帮助。下面的代码对我来说很好。我所要做的就是将
返回“计算机绘图”+comp\u编号与返回“计算机绘图”+str(comp\u编号)
以及随机.randrange(0,1)
更改为随机.randrange(0,2)
第一个问题是,您似乎正在使用one
作为输入,因此
int('one')
将给出该错误
第二,在:
comp_number = random.randrange(0,1)
...
if equation == 0:
print('Hallo!')
return 'Computer draws' + comp_number
else:
return 'Computer draws 0'
将始终调用else
子句,因为comp\u number
始终为0
类似于选择(范围(开始、停止、步骤))
,这意味着随机范围(0,1)
将始终返回0。如果您想要0
或1
,则需要randrange(0,2)
。或者改为使用,它将包括端点0
和1
作为附加值,将文本号处理为数字,您可能需要考虑编写。
<代码>名称<代码>未定义在LITYFURNYNUM 中,但您使用它在代码> int(name)< /代码>中。你的意思是int(猜测)
吗?是的,你是对的。。。我刚修好it@GaryJ.EspitiaS. 在我看来,如果您的输入是one
,您似乎想调用name\u to\u number(name)
,而不是int(name)
。您看到错误的原因是因为您的输入是one
,因此int('one')
将给您该错误。我明白了,这实际上修复了它。。。但现在我有了疑问。。。似乎它总是抛出else
条件...@GaryJ.EspitiaS。我在下面的答案中发布了解释。感谢您的回复,我觉得不知道此类函数的详细信息有点傻。@GaryJ.EspitiaS。不客气!当我还在学习的时候,它肯定也咬了我——我就是这样知道的:)
comp_number = random.randrange(0,1)
...
if equation == 0:
print('Hallo!')
return 'Computer draws' + comp_number
else:
return 'Computer draws 0'