[英]Looping through a list in Python
尝试遍历数字列表,以便 output 在单独的行上读取结果。
给出的说明: - 将数字 1-9 存储在列表中。 - 遍历列表。 - 在循环内使用 if-elif-else 链来打印每个数字的适当结尾。 output 应显示为“1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th”,每个结果单独一行。 大多数序数都以“th”结尾,除了 1st、2nd、3rd。
我的问题:我对单个循环代码有疑问。
写这个的正确方法是什么?
numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
for numbers in numbers:
if '1' in numbers:
print(" + number +" "st.")
elif '2' in numbers:
print(" + number + " "nd.")
elif '3' in numbers:
print(" + number + " "rd.")
else:
print(" + number +" "th.")
当你说:
if '1' in numbers:
您正在检查该项目是否在列表中,这对于每次迭代都是正确的,因此每次迭代都将打印'1st'.
您需要做的是检查单个值,该值已指定为数字,但每次迭代都应更改为数字
for number in numbers:
if number == '1': print('{}st.'.format(number))
希望有道理!
另外我只是注意到, print(" + number +" "st.")
我假设您正在尝试在此处连接字符串。 我建议使用格式,如上所示。 但是,要连接此语句,您需要说出print(number + "st.")
你近了 在for循环中,您希望枚举数与要枚举的列表不同。 然后,该枚举器包含您要比较的对象,因此在打印中,您不需要在number
前后加上引号
numbers = ['1', '2', '3', '4', '5', '6', '7', '8', '9']
for number in numbers:
if '1' in number:
print( number +"st.")
elif '2' in number:
print(number + "nd.")
elif '3' in number:
print( number + "rd.")
else:
print(number +"th.")
要回答您的最后一个问题,没有正确的方法。 不同的人有不同的方法,具体取决于个人喜好和语言知识水平。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for number in numbers:
if number == 1:
print(str(number) + "st.")
elif number == 2:
print(str(number)+ "nd.")
elif number == 3:
print(str(number)+ "rd.")
else:
print(str(number)+ "th.")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.