Python 为什么不';这些变量是否正确输出其值?

Python 为什么不';这些变量是否正确输出其值?,python,python-3.x,Python,Python 3.x,我目前正在使用Python 3.5,我的字典中的变量有问题。我有数字1-29作为键,字母作为它们的对,出于某种原因,没有一个两位数的数字注册为一个数字。例如,11表示1和1(F和F),而不是11(I),或者13表示1,3表示3(F和TH),而不是13(EO)。有没有办法解决这个问题,这样我就可以得到两位数的数值 我的代码在这里: Dict = {'1':'F ', '2':'U ', '3':'TH ', '4':'O ', '5':'R ', '6':'CoK ', '7':'G ', '8'

我目前正在使用Python 3.5,我的字典中的变量有问题。我有数字1-29作为键,字母作为它们的对,出于某种原因,没有一个两位数的数字注册为一个数字。例如,11表示1和1(F和F),而不是11(I),或者13表示1,3表示3(F和TH),而不是13(EO)。有没有办法解决这个问题,这样我就可以得到两位数的数值

我的代码在这里:

Dict = {'1':'F ', '2':'U ', '3':'TH ', '4':'O ', '5':'R ', '6':'CoK ', '7':'G ', '8':'W ', '9':'H ',
        '10':'N ', '11':'I ', '12':'J ', '13':'EO ', '14':'P ', '15':'X ', '16':'SoZ ', '17':'T ',
        '18':'B ', '19':'E ', '20':'M ', '21':'L ', '22':'NGING ',
        '23':'OE ' , '24':'D ', '25':'A ', '26':'AE ', '27':'Y ', '28':'IAoIO ', '29':'EA '}

textIn = ' '

#I'm also not sure why this doesn't work to quit out
while textIn != 'Q':
    textIn = input('Type in a sentence ("Q" to quit)\n>')
    textOut = ''
    for i in textIn:
        if i in Dict:
            textOut += Dict[i]
        else:
            print("Not here")
    print(textOut)

您的
for i in textIn:
将循环输入中的各个字符。因此,如果您编写
11
,它实际上将是一个字符串
'11'
,而
对于'11'
中的i将分别检查
'1'

>>> text = input()
13
>>> text
'13'  # See, it's a string with the single-quote marks around it!
>>> for i in text:
...     print(i)
...
1
3
>>> # As you see, it printed them separately.
对于循环,您根本不需要
,只需使用:

if textIn in Dict:
    textOut += Dict[textIn]
因为您的dict具有键
'11'
,而您的
文本输入
等于
'11'

代码中还有一个主要问题;
textOut
变量在每个循环中都会被覆盖,因此您会丢失所做的一切。您想在
循环之外创建它,而
循环:

textOut = '' 
while textIn != 'Q':
    textIn = input('Type in a sentence ("Q" to quit)\n>')
    if textIn in Dict:
        textOut += Dict[textIn]
    else:
        print("Not here")

print(textOut)

for
循环输入字符串中的每个字符。无法检测您的意思是“11”,而不是“1”和“1”。你可能想改变你的“字母表”。你在整个字符串中迭代单个字符。你能给出一个你期望用户输入的形式的例子吗?这个问题怎么不清楚或者太广泛了?他在他的密码上面非常清楚和深入地解释了这一点:我把数字1-29作为键,字母作为它们的对,出于某种原因,没有一个两位数的数字注册为一个数字<代码>“例如,11将显示为1和1(F和F),而不是11(I),或者13将显示为1,3(F和TH)而不是13(EO)。是否有办法解决此问题,以便我可以获得两位数的值?”
我希望输入字典1、2、3等中的任何数字,然后在其后获得相应的一个或多个字母。谢谢,这比我所做的更有意义。虽然我还有一个问题。那么代码应该是这样的吗?textIn=''textOut=''而textIn!='问:textIn=input('键入一个句子(“Q”退出)\n>')如果textIn in Dict:textOut+=Dict[textIn]else:print(“Not here”)print(textOut)我问这个问题是因为给我的输入值不起作用。你说它不起作用是什么意思@我的代码对我来说似乎很好。