首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何像在c++中一样,在python中接受整数流作为输入?

如何像在c++中一样,在python中接受整数流作为输入?
EN

Stack Overflow用户
提问于 2018-06-11 03:04:42
回答 2查看 1.4K关注 0票数 -1

c++代码

代码语言:javascript
复制
while( cin >> variable)
 {
   //your code
 }

我想把这段代码转换成python,输入是整数流,如下所示:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-11 03:35:32

要在python中实现相同的功能,您可以捕获一个EOFError,例如:

代码语言:javascript
复制
while True:
    try:
        variable = int(input())
    except EOFError:
        break
    # your code

您可以使用Ctrl-D手动终止输入列表,否则,如果您通过管道输入输入,例如cat nums | myscript.py,它将自动终止

在使用赋值表达式的Py3.8中,可以将其更改为

代码语言:javascript
复制
try:
    while variable := int(input()):
        <do-something-with-variable)
except EOFError:
    pass

或者使用上下文管理器抑制异常:

代码语言:javascript
复制
from contextlib import suppress

with suppress(EOFError):
    while variable := int(input()):
        <do-something-with-variable)
票数 2
EN

Stack Overflow用户

发布于 2018-06-11 03:06:56

使用

代码语言:javascript
复制
s=input("Enter: ")
s=[int(x) for x in s.split()]

input()将返回输入的字符串版本。split()应用于此字符串,并使用空格作为分隔符。

使用int()split()返回的列表中的每个元素转换为整数。

编辑:

要在EOF之前接受输入,您可以这样做

代码语言:javascript
复制
import sys
s=sys.stdin.read()
if(s[-1]=='\n'):
    s=s[:-1]
s=[int(x) for x in s.split()]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50787125

复制
相关文章

相似问题

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