可能我的编码不太好,有些行没有多大意义或没有必要,但是代码的目的很简单:

我想创建一个使用输入(字符串)的函数,并将其转换为整数,这将在数学问题中使用。
另外:我希望我的代码解释一个随机生成的数字,并将其打印为等效的字符串:

### '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.randrangechoice(range(start, stop, step))相似,这意味着randrange(0,1)始终返回0。如果要randrange(0,2)0,则需要1。或者,改用random.randint(0,1),它将包含端点01

另外,要处理文本数字到数字,您可能需要考虑由text2num编写的Greg Hewgill

关于python - ValueError:int()以10为底的无效文字:str,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12994284/

10-12 14:58