Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(初学者)为什么我的代码跳过了一些函数?(Python 3)_Python_Python 3.x_Sys - Fatal编程技术网

(初学者)为什么我的代码跳过了一些函数?(Python 3)

(初学者)为什么我的代码跳过了一些函数?(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

我试着写代码,接收两个文本,然后我写代码,在文本中找到常用词。这将被放入一个新的列表中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代替输入,因为我想输入一个长文本,一篇文章。