入门为什么我的代码跳过了某些功能? Python 3

问题描述

我正在尝试编写接收两个文本的代码,此后,我正在编写在文本中查找常见单词的代码。这被放入新列表中。使用 sys.stdin.read()代替input(),因为我需要处理一长段文本。

下面是我到目前为止写的内容。当我运行代码时,它似乎挂起了,因为它只要求输入text1,而从未到达文本2的输入请求。

怎么回事,我该如何解决

大小文字1 =大约500.000个字符。

大小文字2 =大约500.000个字符。

import sys

text1 = sys.stdin.read()
print(text1)
    
 text2 = sys.stdin.read()
 print(text2)

# ... snippet ... compare code here ...

解决方法

我认为这会起作用

text1 = input("Input some text: ")
text2 = input("Input some text: ")

我真的不知道你到底怎么了

,

在下面的代码中,您有两种不同类型的input()。在text-1处,您可以添加无限量的文本,按Enter,然后键入“ EOF!”。然后按Enter进入文本2的输入。在text-2处,input()已绑定到字符数(可能是ASCII或UTF-8类型;现在接受所写的所有类型)时500.000个字符收到text-2完成后,您可以转到您现在可能已经编写的比较步骤。如果这样也有问题,请为此发布新的问题。

此处有打印语句,用于向您显示每个文本输入减去“ EOF!”的值。文字1的标记。可以是任何类型的标记,但“结束文件”似乎现在对于解释停止标记是显而易见的。

import sys

text1 = ''
text2 = ""
nr_lines = 2

while True:
    text1 += input()+'\n'
#    print(text1[-5:-1])
    if text1[-5:-1] == 'EOF!':
        break

print(f'\nlen: {len(text1)},text1 {text1}\n\n'[:-7])

while True:
    text2 = input()
    if len(text2) >= 500000:
        break

print(f'\nlen: {len(text2)},text2 {text2}\n\n')

sys.stdin.read()不起作用的原因是由于用途不同,因此缺少写入该方法的功能。它是单向通信,而不是双向通信。