python - 试图将 C 代码更改或解释为 python
问题描述
所以我试图将C代码更改为python。我不知道该怎么做。基本思想是我正在尝试将 AA 字母转换为数字 cod(0-21)
这就是我试图做的
def annum(ch):
const_aacvs = ['999','0','3','4','3','6','13','7','8','9','21','11','10','12','2','21','14','5','1','15','16','21','19','17','21','18','6']
return(ch.isalpha() ? aacvs[ch & 30] : 20)
它显示无效的语法。我知道这必须是一个简单的问题。
这是来自 C 的原始代码
int annum(int ch){
const static int accvs[] = {999, 0, 3, 4, 3, 6, 13, 7, 8, 9, 21, 11, 10, 12, 2, 21, 14, 5, 1, 15, 16, 21, 19, 17, 21, 18, 6};
return(isalpha(ch) ? accvs[ch & 30] : 20)
}
解决方案
我在这里看到三个问题:
在 C 代码中,
accvs
是一个数字数组。在 Python 代码中,const_aacvs
是一个字符串数组——变量名(错误)拼写不一致。C 代码依赖于
char
作为数字类型的标识。Python 代码期望ch
是一个字符串,但在使用它索引到const_aacvs
. 用于ord()
执行此转换。Python中没有
?:
运算符。用作三元组,但请a if c else b
注意操作数的顺序不同。
推荐阅读
- javascript - 如何将函数连接到 windows.onclick?
- shell - tux 有没有办法让状态栏在所有附加的客户端中显示不同的内容?
- ios - 当以编程方式设置为根视图控制器时,Storyboard 的视图控制器未显示
- excel - 一旦数组中的所有项目都相同就发送电子邮件
- express - 如何修复'SyntaxError: Unexpected token # in JSON at position 0' - POST null body
- scala - 在不同列的火花中读取 csv 文件
- python - 变量取负值,但限制为非负
- arrays - vue js 在数组中找到一个对象,然后将其传播到一个具有额外属性的新数组中
- javascript - 如何将“0:2017-12-31T19:00:00.000Z 1:2018-01-09T19:00:00.000Z”转换为数组?
- javascript - Object.values 是否按照对象中定义的顺序返回“值”