【问题标题】:How do I disable the enter key triggering an input in Python 3?如何禁用在 Python 3 中触发输入的回车键?
【发布时间】:2020-11-27 16:08:27
【问题描述】:

所以我正在尝试制作一个简单的字数统计程序,并且我希望它能够将输入键作为它正在阅读的文章的一部分而不会被触发。 (如果有人不明白,如果我复制粘贴一个包含回车字符的段落,python 将简单地停止在回车字符处接收字符串,因为它认为用户按下回车,并且输入不完整) .我认为我不能很好地解释这一点,因此请尝试将其复制粘贴到代码中:

第 1 行:My name is Jack.
第2行:Jack is my name.

它只接受第一行。 这个问题有解决方法吗?还是我应该采取完全不同的方法?

代码:

#Count words in an essay

import time

SA = input('Copy paste essay: \n')

word_list = SA.split(' ')
print (str(len(word_list)) + ' is the number of words in your essay')

【问题讨论】:

  • @Codeman 我不太明白为什么会这样;它在我的电脑上运行良好。
  • @DionSaputra 谢谢你的出现,我想我也会尝试这些答案。但是,有没有办法计算换行符并在循环中运行输入,直到所有换行符都运行完?谢谢
  • 喜欢SA.count('\n')?
  • @AnnZen 如果您粘贴的段落中有多个换行符,它会在第一个换行符处停止吗?

标签: python python-3.x input line-breaks


【解决方案1】:

在 python 3.x 中,您可以使用sys.stdin.read() 读取控制台上的多行输入。

>>> import sys
>>> text = sys.stdin.read()
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
^Z
>>> print(text)
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
>>>

要退出输入模式,你必须使用Ctrl+Z,它在上面的shell sn-p中显示为^Z

【讨论】:

  • 在您包含的字符串(文本)中,回车键是否算作'\n'字符?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 2013-07-08
相关资源
最近更新 更多