如何使用sys.stdin.readline()?

时间:2019-08-08 10:10:06

标签: python module jupyter-notebook sys

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

  

错误消息:“ 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跟踪(最近一次通话最近)    在        1个来自sys import stdin        2 qu = []   ----> 3 for _ in range(int(stdin.readline())):        4 arr = stdin.readline()。split()       5,如果arr [0] =='push':

     

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

1 个答案:

答案 0 :(得分:0)

您正在读取一行并将其转换为int。如果输入的数字多于1个,则会因为未拆分而抛出异常。 for _ in range(int(stdin.readline().split()[0])):(如果您只想输入第一个数字)。