【问题标题】:How can I give many inputs in just one line in the console like in C++?如何像在 C++ 中一样在控制台的一行中提供许多输入?
【发布时间】:2019-07-25 18:45:54
【问题描述】:

在 C++ 代码中,我可以给 1 2 3 4 5 6 7 8 然后在控制台中按 Enter 以输出类似,

1 2
3 4
5 6
7 8

但是在 Python 代码中,当我尝试通过在控制台中输入(如 1 2 3 4 5 6 7 8)来生成相同的输出并输入时,它生成了一个错误...... 相反,我可以在 Python 中像这样在控制台中提供输入和输出:

1 2
1 2
3 4
3 4
5 6
5 6
7 8
7 8

我可以看到我的代码在 Python 中不够用...

我尝试将input().split() 放入一个循环中。

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

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

【问题讨论】:

  • 不要尝试像 C++ 那样使用 python。它们是不同的语言,并且有不同的方式来做同样的事情。我建议给自己买一本好的 Python 书,然后从那里开始学习。
  • 你能推荐一本书吗@NathanOliver?我会读的。
  • @MohammedDilshad 请参阅免费 Python 编程书籍部分 here
  • 你能推荐一个书名吗? @NathanOliver
  • @MohammedDilshad 对不起,我不是 python 编码器,所以我不能提出任何建议。也许其他看到这个的人会。

标签: python


【解决方案1】:

在使用此代码之前先看看 zipping 和迭代器:

iterator = iter(input().split())
for x,y in zip(iterator,iterator):
    print(x,y)

输入:

1 2 3 4 5 6 7 8

输出:

1 2
3 4
5 6
7 8

【讨论】:

【解决方案2】:

这是因为与c++相反,在Python中每次调用input都会等待用户的新输入。因此,如果您希望输入 8 个数字并成对打印,您应该在循环前使用一次 input。像这样:

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 的输入上给出:

1 2
3 4
5 6
7 8

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 1970-01-01
    • 2022-08-12
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    相关资源
    最近更新 更多