首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在控制台的一行中提供多个输入,就像在C++中一样?

如何在控制台的一行中提供多个输入,就像在C++中一样?
EN

Stack Overflow用户
提问于 2019-07-26 02:45:54
回答 2查看 87关注 0票数 0

在C++代码中,我可以输入1 2 3 4 5 6 7 8,然后在控制台中按enter键,输出如下所示:

代码语言:javascript
复制
1 2
3 4
5 6
7 8

但是在Python代码中,当我试图通过在控制台中输入1 2 3 4 5 6 7 8和enter来生成相同的输出时,但它生成了一个错误...相反,我可以在控制台中给出输入和输出,如下所示的Python:

代码语言:javascript
复制
1 2
1 2
3 4
3 4
5 6
5 6
7 8
7 8

我可以看到我的代码在Python中是不够的…

我试着把input().split()放在一个循环中。

代码语言:javascript
复制
/* C++ */
int x,y;
for (int i=0; i<4; i++){
    cin>>x>>y;
    cout<<x<<y<<endl;
}
代码语言:javascript
复制
# Python
for i in range(4):
    x, y = input().split()
    print(x, y)

我希望Python可以只在一行中接受这些输入,并像C++一样在控制台中生成输出。

EN

回答 2

Stack Overflow用户

发布于 2019-07-26 03:02:11

在使用以下代码之前,请先看一下压缩和迭代器:

代码语言:javascript
复制
iterator = iter(input().split())
for x,y in zip(iterator,iterator):
    print(x,y)

输入:

1 2 3 4 5 6 7 8

输出:

代码语言:javascript
复制
1 2
3 4
5 6
7 8
票数 2
EN

Stack Overflow用户

发布于 2019-07-26 02:56:38

这是因为与c++相反,在Python语言中,每次调用input时,它都会等待用户的新输入。因此,如果您希望输入8个数字并将其成对打印,则应该在循环之前执行一次input。如下所示:

代码语言:javascript
复制
nums = input().split()
for i in range(0, len(nums), 2):
    print(nums[i], nums[i+1])

这是在1 2 3 4 5 6 7 8的输入上给出的结果:

代码语言:javascript
复制
1 2
3 4
5 6
7 8
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57208415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档