这可能是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)
希望这能澄清变化。感谢大家的帮助。
答案 0 :(得分:0)
在python控制台中:
>>> type({ 'Z':1, 'Y':17, 'X':8, 'w':4, }.get('X', ''))
<class 'int'>
正如cdarke建议的那样,你应该看看你是如何调用这个函数的。