将字母更改为python中的数字(整数)

时间:2016-10-13 06:58:38

标签: python switch-statement

这可能是python 101,但我很难将字母转换为有效的整数。

把我想做的事情简单地放在

char>> []>> INT

我创建了一个case语句,根据某些字符给我一个数字,所以我尝试做的是

def char_to_int(sometext):
    return {
            'Z':1,
            'Y':17,
            'X':8,
            'w':4,
            }.get(sometext, '')

将字母转换为数字,但当我尝试将该数字用于任何带有整数的参数时,它都不起作用。

我已经尝试了

text_number = int(sometext)

但我收到消息TypeError:int()参数必须是字符串或数字,而不是'函数'

所以从那里我使用

返回了sometext的类型
print(type(sometext))

返回类型是一个函数。

所以我的问题是,是否有更好的方法将字母转换为数字,或者更好的方法来设置我的开关/ def语句

继承其调用的完整代码

如果有文字:        对于范围内的i(0,len(sometext)):             char_to_int(sometext [I])

我设法让它工作,最终我改变的是定义的默认值,我现在将定义设置为变量,而不是在另一个函数中调用它,并且我重新编写了我正在使用的部分它

最初我的定义看起来很喜欢这个

def char_to_int(sometext):
return {
        ...
        }.get(sometext, '')

但我将默认值更改为0,所以现在看起来像

def char_to_int(sometext):
return {
        ...
        }.get(sometext, 0)

调用定义的旧代码看起来

if sometext: 
          for i in range ( 0, len(sometext)): 
                    C_T_I = int(char_to_int(sometext[i]))

我改变了它。

if sometext: 
          for i in range ( 0, len(sometext)): 
                    C_T_I = char_to_int(sometext[i])
                    TEXTNUM = int(C_T_I)

希望这能澄清变化。感谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

在python控制台中:

>>> type({ 'Z':1, 'Y':17, 'X':8, 'w':4, }.get('X', '')) <class 'int'>

正如cdarke建议的那样,你应该看看你是如何调用这个函数的。