- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个关于键盘多行输入的问题。看来我的程序没有吸收换行符。结果是,在处理完输入后,程序似乎认为等待中的回车符的数量等于输入中换行符的数量。
我查看了 sys 模块 (sys.stdin.flush())、msvsrc 模块(msvcrt.kbhit() 和 msvcrt.getch())、raw_input,并尝试了我在搜索中能想到的一切,但是我要干了。也许 strip() 会起作用,但我似乎无法弄清楚一般情况。
我得到的输出是这样的:
Enter a string: def countLetters():
s = input("Enter a string: ")
d = histogram(s.upper())
printSortedDict(d, True)
('T', 3)
('E', 3)
('F', 1)
('D', 1)
(' ', 1)
(':', 1)
('R', 1)
('(', 1)
('N', 1)
(')', 1)
('L', 1)
('U', 1)
('C', 1)
('O', 1)
('S', 1)
Continue (yes/no):
Continue (yes/no):
Continue (yes/no):
Continue (yes/no):
我希望输出只显示一个“继续(是/否):”。看起来 input() 例程正在吃掉最后一个换行符(如预期的那样),但没有吃掉任何中间换行符。这些换行符似乎被解释为“继续(是/否):”语句的输入。
我正在使用 Python 3.4.1。我正在 Win8 上开发,但希望该解决方案至少也能在 Linux 上运行(如果该解决方案是特定于平台的)。这是程序。查看问题的最简单方法就是复制源代码并将其作为程序的输入。
#
# letterCountDict - count letters of input. uses a dict()
#
"""letterCountDict - enter a string and the count of each character is returned """
# stolen from p. 122 of "Python for Software Design" by Allen B. Downey
def histogram(s):
"""builds a histogram from the characters of string s"""
d = dict()
for c in s:
if c in d:
d[c] += 1
else:
d[c] = 1
return d
def printSortedDict(d, r=False):
"""sort and print a doctionary. r == True indicates reserve sort."""
sl = sorted(d.items(), key=lambda x: x[1], reverse=r)
for i in range(len(sl)):
print(sl[i])
def countLetters():
s = input("Enter a string: ")
d = histogram(s.upper())
printSortedDict(d, True)
answerList = ["yes", "no"]
done = False
while not done:
countLetters()
ans = ""
while ans not in answerList:
ans = input("\nContinue (yes/no): ").replace(" ", "").lower()
if ans == "no":
done = True
最佳答案
input()
不接受多行。每次调用 input()
都只检索一行。
所以,你有第一个输入调用:
s = input("Enter a string: ")
收到这一行:
def countLetters():
果然,您可以看到它有三个 T、三个 E 等等。
下一次调用 input()
是这样的:
ans = input("\nContinue (yes/no): ").replace(" ", "").lower()
您输入的内容:
s = input("Enter a string: ")
由于您的回答既不是'yes'
也不是'no'
,因此您的循环会再次询问。这次你输入:
d = histogram(s.upper())
这既不是'yes'
也不是'no'
。
这种模式一直持续到您厌倦了对问题输入废话为止。最后,您输入“否”,游戏结束。
如果您想一次读取多行,请尝试 sys.stdin.read()
或者 sys.stdin.readlines()
。例如:
import sys
def countLetters():
print("Enter several lines, followed by the EOF signal (^D or ^Z)")
s = sys.stdin.read()
d = histogram(s.upper())
printSortedDict(d, True)
关于Python:吸收键盘输入的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830900/
我正在思考如何使用 html 元素来做到这一点。 颜色没有什么特别的,所以我不需要把它们做成图像。请注意,文本是右对齐的。此外,颜色条从左侧上升到文本。 所以这可以通过让文本 float 在右侧,背景
我是一名优秀的程序员,十分优秀!