Python 忽略包含多个元素的输入,然后终止。(按enter键之前)

Python 忽略包含多个元素的输入,然后终止。(按enter键之前),python,input,io,Python,Input,Io,在我的脚本中,如果输入长度为>1。它输出NO,然后终止 这就是我试过的 import re N = input("Enter your integer N: ") if len(N) > 1: print('no') quit() 请注意,在输入之前未遇到if语句,这不允许我在按enter键之前立即终止。一旦我给出了多个元素,我想立即终止脚本 输出 Enter your integer N: 10 no Enter your integer

在我的脚本中,如果输入长度>1。它输出NO,然后终止

这就是我试过的

import re
N = input("Enter your integer N: ")
if len(N) > 1:
    print('no')
    quit()
请注意,在输入之前未遇到if语句,这不允许我在按enter键之前立即终止。一旦我给出了多个元素,我想立即终止脚本

输出

Enter your integer N: 10
no
    Enter your integer N: 1
    no
尝试输入10后的预期结果。(请参见我的脚本旨在忽略多个元素)

输出

Enter your integer N: 10
no
    Enter your integer N: 1
    no
有了这个限制,空间复杂度将真正达到O(1)

问题: python中是否有一些函数会像我所希望的那样限制输入?

这应该给您一个Θ(2)空间:


不,没有。但是,有一些特定于操作系统的读取单个字符的方法,如Windows的
msvcrt.getch()
,这将为您提供一种限制它的方法。@martineau这太可惜了。没有O(1)空间,O(1)算法不可能是真正的O(1)。尤其是用户输入,因为输入不是固定的。(在我的情况下,计算机需要超过O(1)个时间来将输入存储为内存)一般来说,在处理用户输入时,人们并不关心计算的复杂性,所以你的评论(对我来说)没有任何意义。@martineau我道歉,我想说的是,存储100万位比存储1位需要更多的时间。这是否回答了你的问题?