我已经在python 2中编写了一个简单的脚本来训练我对平假名字母的了解。请参阅下面的代码:Python 3中的Unicode字符与Python 2
import random
ROMAJI = ['A','I','U','E','O','KA','KI','KU','KE','KO','SA','SHI','SU','SE','SO','TA','CHI','TSU','TE','TO','NA','NI','NU','NE','NO']
romaji_letter = random.choice(ROMAJI)
romaji_index = ROMAJI.index(romaji_letter)
A = u'\u3042'
I = u'\u3044'
U = u'\u3046'
E = u'\u3048'
O = u'\u304A'
KA = u'\u304B'
KI = u'\u304D'
KU = u'\u304F'
KE = u'\u3051'
KO = u'\u3053'
SA = u'\u3055'
SHI = u'\u3057'
SU = u'\u3059'
SE = u'\u305B'
SO = u'\u305D'
TA = u'\u305F'
CHI = u'\u3061'
TSU = u'\u3064'
TE = u'\u3066'
TO = u'\u3068'
NA = u'\u306A'
NI = u'\u306B'
NU = u'\u306C'
NE = u'\u306D'
NO = u'\u306E'
HIRAGANA = [A,I,U,E,O,KA,KI,KU,KE,KO,SA,SHI,SU,SE,SO,TA,CHI,TSU,TE,TO,NA,NI,NU,NE,NO]
print("\nWhich Hiragana character is the Romaji letter " + romaji_letter + " ?\n")
for letter in HIRAGANA:
print(letter.encode("UTF-8")+" "+str(HIRAGANA.index(letter))+"\n")
print("Choose the corresponding number and press [ENTER] : ")
userInput = raw_input()
try:
letter_index = int(userInput)
print("You have chosen letter "+HIRAGANA[letter_index].encode("UTF-8"))
if (letter_index == romaji_index):
print("The answer is correct!")
else:
print("The answer is incorrect!")
except:
print("Enter only the number of the corresponding letters!")
当我在python 2中执行它,它确实工作没有问题。但是,当我尝试使用python 3时,出现以下错误:
"Can't concat bytes to str"
有人可以通过解释为什么会发生这种情况吗?
哦,如果不知道这非常重要,但我使用Windows 7上的Fedora和Python 3蟒蛇2(与Visual Studio 2012一起使用Python的工具)
使用字典。 – 2015-03-19 10:56:58