首页 > 解决方案 > 如何使用 vsc 在 python 的同一行中接受多个整数?

问题描述

我运行了一个代码(在 vsc 中),其目的是找到大数的最后一位。我只提供相关的代码片段。

  a,b=map(int,input().split())  
  aa=list(map(int,str(a)))  
  bb=list(map(int,str(b)))  

这会在 vsc 终端中生成以下错误:

Shaons-Air:VSC shaon$ python -u "/Users/shaon/Desktop/VSC/last.py"  
    4 3  
    Traceback (most recent call last):  
      File "/Users/shaon/Desktop/VSC/last.py", line 17, in <module>  
        a,b=map(int,input().split())  
      File "<string>", line 1  
        4 3   
    SyntaxError: unexpected EOF while parsing

标签: pythonvisual-studio-codepython-3.7

解决方案


从您写的内容来看,我怀疑Python 的input()函数引发了一个EOFError,并且我怀疑它与运行 Python 的 VSC-u选项有关,该选项告诉 Python 不要缓冲来自标准输入的数据。(顺便说一句,在错误发生之前知道你在 Python 提示符中输入了什么会很有帮助。)

无论如何,如果我在你的位置,接下来我要问的两个问题是:

首先,当您绕过 VSC 并在 Windowscmd提示符下直接从 Python 运行 Python 脚本时会发生什么?这也给你一个nexpected EOF吗?

cd Users\shaon\Desktop\VSC
python -V                   rem Check the version number while we're here.
python -u last.py

python当您在没有该-u选项的情况下运行时,它有什么不同(如果有的话) ?

其次,当你用一个简单的回显循环替换你的代码并从 VSC运行它时会发生什么?这就是我所说的“简单回声循环”:

while True:
    msg = input() # Type your numbers here, or ctrl-c to exit the loop.
    print(msg)

如果我的怀疑是正确的,你会发现当你直接从 Python 运行你的代码时它可以工作,当你使用该选项运行它时会失败 (带有 EOFError) ,并且当你从 VSC 运行 echo 循环时你得到一个 EOFError . 在这种情况下,您可能会尝试说服 VSC 在没有选项的情况下以某种方式运行 Python。但是让我们看看会发生什么。 -u-u


推荐阅读