如果我想要一个让用户输入数字(例如1、13、4354)的程序,我该如何打印它(一个,十三,四个,三,五,四)呢?如果是两位数,则将其打印为好像已连接(三十一),但是如果它是2位以上,则分别打印,同一行与一个空格连接,我尝试使用字典来完成此操作,并且我认为这是可能的,但我不知道该怎么做?
l = input('Enter the number: ')
if len(l) > 2:
nums = {'1':'one',
'2':'two',
'3':'three',
'4':'four',
'5':'five',
'6':'six',
'7':'seven',
'8':'eight',
'9':'nine'}
elif len(l) == 2:
tens = {'10'}
for k, v in nums.items():
print(k, v)
这显然是错误的代码,但是我希望最终结果看起来像这样吗?提前致谢!
要访问词典中的项目,您可以执行dictionary[key]
。将value
返回。
假设我的输入是"8"
。
然后,您可以做print nums[l]
(在您的条件语句中),这将返回"eight"
。
同样,最好在条件结构之外创建字典以防止出现这种情况NameErrors
,这样您就可以在任何地方访问这两个字典。
如果您有input "324"
,那么可以结合使用str.join()
和列表理解:
l = "324"
nums = {'1':'one',
'2':'two',
'3':'three',
'4':'four',
'5':'five',
'6':'six',
'7':'seven',
'8':'eight',
'9':'nine'}
print ' '.join(nums[i] for i in l)
解释:
[nums[i] for i in l]
是相同的:
returned_list = []
for number in l:
returned_list.append(d[number])
str.join()
将列表中的每个项目连接在一起,并以空格分隔。如此' '.join(['one', 'two', 'three'])
回报'one two three'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句