大家好,我还有另一个CSC110问题。我只是在尝试学习做事的最佳方法。我敢肯定这会很容易。
基本上,我需要在标准输出中输出一些国家的名称,如下所示:
Afghanistan Albania Armenia
Bangladesh Benin Bhutan
Bolivia Burkina Faso Burundi
Cabo Verde Cambodia Cameroon
Central African Republic Chad Comoros
Congo Cote D'Ivoire D.P.R. Of Korea
D.R. Of The Congo Djibouti Egypt
El Salvador Eritrea Ethiopia
Gambia Georgia Ghana
Guatemala Guinea Guinea-Bissau
Guyana Haiti Honduras
India Indonesia Kenya
Kiribati Kosovo Kyrgyzstan
Lao People'S Dr Lesotho Liberia
Madagascar Malawi Mali
Marshall Islands Mauritania Micronesia (Fs Of)
Mongolia Morocco Mozambique
Myanmar Nepal Nicaragua
Niger Nigeria Pakistan
Papua New Guinea Paraguay Philippines
Republic Of Moldova Rwanda Samoa
Sao Tome And Principe Senegal Sierra Leone
Solomon Islands Somalia South Sudan
Sri Lanka State Of Palestine Sudan
Swaziland Syrian Arab Republic Tajikistan
Togo U.R. Of Tanzania: Mainland Uganda
Ukraine Uzbekistan Vanuatu
Viet Nam Yemen Zambia
Zanzibar Zimbabwe
我编写了一个执行此功能的函数,称为表(国家/地区)。虽然我所写的作品似乎并不是最有效的方法。虽然我不必使用format()函数进行赋值,但这是我最满意的。如果有更好的方法,请随时向我展示另一种方法,但是请记住,这是我的第一门编程语言/课程。
这是我编写的代码:
def table(countries):
counter = 0 #Four counting when I've printed 3 columns
for outer in range(len(countries)):
print(format(countries[outer], '30'), end ='')
counter +=1
if counter == 3:
counter = 0
print() #Starts a new column
提前谢谢!
答案 0 :(得分:2)
您可以尝试列表理解:
countries = ['aaa','bbb','ccc','dd','eeeee','fff','ggggggg']
print('\n'.join([" ".join([country.ljust(30) for country in countries[i:i+3]]) for i in range(0,len(countries),3)]))
这将导致:
aaa bbb ccc
dd eeeee fff
ggggggg
首先,我们将国家/地区分为三个国家-for i in range(0,len(countries),3)
然后,我们将该子列表中的每个国家/地区设置为固定长度的字符串,并用空格填充直到长度为30-[country.ljust(30) for country in countries[i:i+3]]
之后,我们将每个子列表合并为一个字符串-" ".join(...)
最后,我们将该子列表的每个字符串连接到一个带有行尾符号-'\n'.join(...)
值得一提的是,每个字符串的末尾都有尾随空格-如果不需要,可以调用rstrip()摆脱它们。
答案 1 :(得分:2)
您可以修改并且不需要其他变量。
def table(countries):
for outer in range(len(countries)):
if outer%3 == 0:
print() #Starts a new column
print(format(countries[outer], '30'), end ='')