首页 > 解决方案 > 试图将 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)
}

标签: pythonc

解决方案


我在这里看到三个问题:

  1. 在 C 代码中,accvs是一个数字数组。在 Python 代码中,const_aacvs是一个字符串数组——变量名(错误)拼写不一致。

  2. C 代码依赖于char作为数字类型的标识。Python 代码期望ch是一个字符串,但在使用它索引到const_aacvs. 用于ord()执行此转换。

  3. Python中没有?:运算符。用作三元组,但请a if c else b注意操作数的顺序不同。


推荐阅读