【问题标题】:how to use sys.stdin.readline()?如何使用 sys.stdin.readline()?
【发布时间】:2019-08-08 10:10:06
【问题描述】:

我现在正在使用 jupyter notebook。 当我尝试运行下面的代码时,它从第三行开始不起作用。

错误消息:“int() 的无效文字,基数为 10:''。

我在第三行找不到任何问题。 我想使用 sys 模块而不是 input() 来减少运行时间。

from sys import stdin
qu=[]
for _ in range(int(stdin.readline())):
    arr = stdin.readline().split()
    if arr[0] == 'push':
        qu.append(arr[1])
    elif arr[0] == 'pop':
        if qu: print(qu.pop(0))
        else: print(-1)
    elif arr[0] == 'size':
        print(len(qu))
    elif arr[0] == 'empty':
        print(1-int(bool(qu)))
    elif arr[0] == 'front':
        if qu: print(qu[0])
        else: print(-1)
    elif arr[0] == 'back':
        if qu: print(qu[-1])
        else: print(-1)
    else:
        pass

ValueError Traceback(最近一次调用最后一次) 在 1 从系统导入标准输入 2曲=[] ----> 3 for _ in range(int(stdin.readline())): 4 arr = stdin.readline().split() 5 如果 arr[0] == 'push':

ValueError: int() 以 10 为底的无效文字:''

【问题讨论】:

  • 您正在读取一行并将其转换为 int。如果输入超过 1 个数字,则会抛出异常,因为您没有拆分它。

标签: python module jupyter-notebook sys


【解决方案1】:

您正在读取一行并将其转换为 int。如果输入超过 1 个数字,则会抛出异常,因为您没有拆分它。使用 for _ in range(int(stdin.readline().split()[0])): 如果您只想要第一个号码。

【讨论】:

  • 感谢您的评论,但它也不起作用。问题是我发布的代码在其他编程网站上运行良好。只是不在我的身上。
猜你喜欢
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 2016-08-16
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 2019-12-23
相关资源
最近更新 更多