英文:
Printing corresponding CSV values using FOR loop
问题
这是我的第一篇帖子,在这里我有点迷茫,因为我对循环不太熟悉。我被要求编写一个程序,接受一个整数输入,并使用该输入打印出CSV/Excel列表上的相应值。我已经做到了在输入的基础上打印出名称和值,但格式不是我需要的方式,而且我的脚本有点笨重。
具体来说,我必须打印出各州和人口。如果我输入5,它将从0到5打印出名称和人口。
我不能使用Pandas,因为我还是个初学者,而且这是为了一个课程。
这是我的代码:
print('给我一个介于0和50之间的数字:')
user_num = int(input())
for name in state_names:
if name == state_names[user_num]:
names = state_names[0:user_num]
for pop in state_populations:
if pop == state_populations[user_num]:
pops = state_populations[0:user_num]
print(f'{names}, {pops}')
如果输入是3,输出如下:
['Michigan', 'Georgia', 'Ohio'], [9986857, 10617423, 11689100]
而不是我需要的:
Michigan 9986857
Georgia 10617423
Ohio 11689100
我应该如何缩短代码并使其产生所需的输出?
英文:
This is my first post here, and I'm a bit lost on this scenario since I'm new to loops. I'm being asked to write a program that takes an integer input, and uses that input to print out the corresponding values on a CSV/Excel list. I was able to get to a point where it printed both the names and values based on the input, but the formatting is not the right way I need it to be, and my script is a bit clunky.
Specifically, I have to print states and populations. If I put in 5, it will print out both the names and populations from 0 to 5.
I can't use Pandas, as I'm still a beginner, and this is for a course.
This is where I am.
print('Give me a number thats 0 - 50:')
user_num = int(input())
for name in state_names:
if name == state_names[user_num]:
names = state_names[0:user_num]
for pop in state_populations:
if pop == state_populations[user_num]:
pops = state_populations[0:user_num]
print(f'{names}, {pops}')
If the input was 3, the output comes out to:
['Michigan', 'Georgia', 'Ohio'], [9986857, 10617423, 11689100]
instead of
Michigan 9986857
Georgia 10617423
Ohio 11689100
which is the output I need.
What can I do to shorten it and make it produce that output?
答案1
得分: 2
如果我理解正确,您可以使用 zip()
函数:
state_names = ['Michigan', 'Georgia', 'Ohio', 'New York']
state_populations = [9986857, 10617423, 11689100, 99999]
print('Give me a number:')
user_num = int(input())
for n, p in zip(state_names[:user_num], state_populations[:user_num]):
print(f'{n:<10} {p:>10}')
打印输出:
Give me a number:
3
Michigan 9986857
Georgia 10617423
Ohio 11689100
英文:
If I understand you correctly you can use zip()
function:
state_names = ['Michigan', 'Georgia', 'Ohio', 'New York']
state_populations = [9986857, 10617423, 11689100, 99999]
print('Give me a number:')
user_num = int(input())
for n, p in zip(state_names[:user_num], state_populations[:user_num]):
print(f'{n:<10} {p:>10}')
Prints:
Give me a number:
3
Michigan 9986857
Georgia 10617423
Ohio 11689100
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论