有关优化此脚本的任何想法?(蟒蛇)

a51*_*ts4 2 python unicode

我正在编写一个小脚本来帮助我学习日语假名(平假名/片假名).总共有100多个(+ || - ).

基本上,它所做的只是采用英文版本并将其转换为角色.

即.a ='?' 十进制是12354

到目前为止我所拥有的是:

hiraDict = { "a" : 12354, "i" : 12356 ...}

if __name__ == "__main__":
    if hiraDict.has_key(sys.argv[1]):
      print(unichr(hiraDict[sys.argv[1]]))
Run Code Online (Sandbox Code Playgroud)

有100多个字符,这可行吗?还是有更好的方法来解决这个问题?

Wil*_*rdy 5

无需检查是否存在,只需获取它并在不需要异常时提供默认参数:

# -*- coding: utf-8 -*-
import sys
hiraDict = {'a': '?', 'i': '?', }
print(hiraDict.get(sys.argv[1], None))
Run Code Online (Sandbox Code Playgroud)

...和python 2.x:

# -*- coding: utf-8 -*-
import sys
hiraDict = {'a': u'?', 'i': u'?', }
print hiraDict.get(sys.argv[1], None)
Run Code Online (Sandbox Code Playgroud)

[编辑]我刚刚注意到你想为许多角色做这件事.以下内容将允许您打印出一系列以参数形式给出的字符(python 3+):

# -*- coding: utf-8 -*-
import sys
hiraDict = {ord('a'): '?', ord('i'): '?' }
text = " ".join(sys.argv[1:])
print(text.translate(hiraDict))
Run Code Online (Sandbox Code Playgroud)