C++太极门小弟子 发表于 2021-8-31 19:54:29

关于input()输入'\n'的问题

def getNum():
    nums=[]
    numStr=input()
    while numStr!='\n':
      nums.append(eval(numStr))
      numStr=input()
    return nums
当我单独键入回车时,报错:
发生异常: SyntaxError
unexpected EOF while parsing (<string>, line 0)
File "D:\Microsoft VS Code\project\.vscode\基本统计值.py", line 5, in getNum
    nums.append(eval(numStr))
File "D:\Microsoft VS Code\project\.vscode\基本统计值.py", line 8, in <module>
    numls=getNum()
而当循环判断条件改为:
while numStr!='':
程序正常进行。请问为什么input()不能输入'\n'

南归 发表于 2021-8-31 20:13:20

#因为input接收的回车不是换行符,通过以下代码可以验证
def getNum():
    numStr = input()
    if numStr == "":
      print("输入的为空字符串")
    if numStr == "\n":
      print("输入的为换行符")
    if numStr == "\\n":
      print(r"输入的为\n")


getNum()

kogawananari 发表于 2021-8-31 20:29:14

你当input是getchar呢

C++太极门小弟子 发表于 2021-8-31 20:29:47

南归 发表于 2021-8-31 20:13


明白了{:10_297:}

C++太极门小弟子 发表于 2021-8-31 20:33:24

kogawananari 发表于 2021-8-31 20:29
你当input是getchar呢

{:10_266:}刚学python,C的习惯带过来了
页: [1]
查看完整版本: 关于input()输入'\n'的问题