可能我的编码不太好,有些行没有多大意义或没有必要,但是代码的目的很简单:
我想创建一个使用输入(字符串)的函数,并将其转换为整数,这将在数学问题中使用。
另外:我希望我的代码解释一个随机生成的数字,并将其打印为等效的字符串:
### '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'
非常感谢任何帮助。
最佳答案
第一个问题是您似乎正在使用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_number
始终为0。rand.randrange
与choice(range(start, stop, step))
相似,这意味着randrange(0,1)
始终返回0。如果要randrange(0,2)
或0
,则需要1
。或者,改用random.randint(0,1)
,它将包含端点0
和1
。另外,要处理文本数字到数字,您可能需要考虑由text2num编写的Greg Hewgill。
关于python - ValueError:int()以10为底的无效文字:str,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12994284/