是否有更清洁,更有条理的" pythonic"关于城市的这些印刷陈述的方式?

时间:2018-03-01 20:51:27

标签: python

这里我有一个字典词典,我省略了它们,但是我试图让每个城市在用户在控制台中键入正确的名称时打印出正确的对齐方式。到目前为止,我一直在使用很多\t,这很好,但看起来相当混乱,也许有更好的方法来使用\t' s或其他东西。这是我的代码:

mydict = { 'Shenzhen' : {
    'Population': 14383936,
    'Category': 'want to visit',
    'Interesting Fact': 'was one of the fastest-growing cities in the world during the 1990s and the 2000s',
    'Geographic Coordinates': (22.542883, 114.062996)
            } }


if userInput == 'Shenzhen':
    print( '{0}:\t\t\t\t\t{1}'.format("City Name","Shenzhen") )
    print( "{0}:\t\t\t\t\t{1}".format( mydict['Shenzhen'].keys()[0], mydict['Shenzhen'].values()[0] ) )
    print( "{0}:\t\t\t{1}".format( mydict['Shenzhen'].keys()[1], mydict['Shenzhen'].values()[1] ) )
    print("{0}:\t\t\t\t\t{1}".format("Longitude", mydict['Shenzhen']['Geographic Coordinates'][0]))
    print("{0}:\t\t\t\t\t{1}".format("Latitude", mydict['Shenzhen']['Geographic Coordinates'][1]))
    print( "{0}:\t\t\t\t\t{1}".format( mydict['Shenzhen'].keys()[3], mydict['Shenzhen'].values()[3] ) )

我希望它能够像以下一样打印出来:

City Name:     Shenzhen
Longitude:     2138530259
Latitude:      2302968049
Category:      Want to visit

等等。

1 个答案:

答案 0 :(得分:4)

如果您不喜欢代码中重复\t,可以使用以下事实:

>>> '\t' * 4 == '\t\t\t\t'
True

要使整数或浮点数保持一致,可以使用以下语法:

>>> print('{:5d}'.format(100))
  100

在此处指示要插入字符串的整数/浮点数的字符数。由于100只有3个字符,因此它将显示2个前导空格。

您可以阅读有关格式化打印语句here的更多信息。