(初学者)为什么我的代码跳过了一些函数?(Python 3)
我试着写代码,接收两个文本,然后我写代码,在文本中找到常用词。这将被放入一个新的列表中sys.stdin.read()被用来代替(初学者)为什么我的代码跳过了一些函数?(Python 3),python,python-3.x,sys,Python,Python 3.x,Sys,我试着写代码,接收两个文本,然后我写代码,在文本中找到常用词。这将被放入一个新的列表中sys.stdin.read()被用来代替input(),因为我需要处理一段很长的文本 下面是我到目前为止写的。当我运行代码时,它似乎挂起了,因为它只要求输入text1,从未达到text2输入请求 发生了什么事?我如何修复 尺寸文本1=约500.000字符 import sys text1 = sys.stdin.read() print(text1) text2 = sys.stdin.read
input()
,因为我需要处理一段很长的文本
下面是我到目前为止写的。当我运行代码时,它似乎挂起了,因为它只要求输入text1,从未达到text2输入请求
发生了什么事?我如何修复
尺寸文本1=约500.000字符
import sys
text1 = sys.stdin.read()
print(text1)
text2 = sys.stdin.read()
print(text2)
# ... snippet ... compare code here ...
尺寸文本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: ")
虽然下面的代码中有两种不同类型的输入(),但我不知道您的代码中到底出了什么问题。在text-1中,您可以添加无限量的文本,按enter键,然后键入“EOF!”,然后按enter键转到文本2的输入。在text-2中,您可以将input()绑定到字符数(可能是ASCII或UTF-8类型;目前接受所有写入的类型)。当收到500.000个字符时,text-2已完成,您可以转到比较步骤,您现在可能已经编写了该步骤。如果这也会带来问题,请为此发布新问题 print语句用于显示每个文本的输入减去“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()
不起作用的原因是由于不同的目的,因此该方法中没有写入功能。它是单向通信,而不是双向的。对于记录,这正确地要求我输入两个字符串。是否按ENTER键?:-)sys.stdin.read()有一点不同的用途。检查文档。您需要指定要读取多少字符才能用于您的案例。例如,sys.stdin.read(4)
将读取输入的前4个字符。总的来说,最好对您的案例使用input()
。此外,请检查sys.stdin.read()
读取您键入的所有内容。它无法判断第一个文本是否结束,第二个文本是否开始。嗯,直到和EOFhi man才读取,我使用sys.stdin.read代替输入,因为我想输入一个长文本,一篇文章。