我正在学习Python,在我的家庭作业中,我编写了一个简单的脚本,从用户那里得到一个字符串,比如aaaabbcccdde,并将其转换为a4b4c3d2e1。 现在我决定让事情变得更有趣,并修改代码,以便实时连续输入和输出。所以我需要一个可能性,输入符号,并得到一个简单的算法编码输出
我遇到的唯一问题是需要不带'\n'的输出,因此所有编码符号都被打印在一个字符串中,例如:a4b4c3d2e1
但在这种情况下,输出符号与我的输入混合,最终脚本冻结。显然,我需要在一个字符串上输入符号,然后在另一个没有换行符的字符串上输出
那么,你能告诉我,对于新手来说,有没有可能不费吹灰之力就编出这样的代码:
这里是shell中的字符串,我总是在其中添加符号
a4b4c3d2e1a4b4c3d2e1a4b4c3d2e1-#在下一个字符串上,脚本连续输出编码结果而不中断行
import getch
cnt = 1
print('Enter any string:')
user1 = getch.getch()
while True:
buf = getch.getch()
if buf == user1:
cnt += 1
user1 = buf
else:
print(user1, cnt, sep='')
user1 = buf
cnt = 1
所以这个片段给我的输出是这样的:
a4级
s4级
d4级
f4层
等等
在任何情况下,当我试图将end=''添加到output print()时,程序都会卡住
有什么办法可以解决这个问题? 谢谢
我真的不知道细节,但我可以说:当您添加
end=''
时,程序不会冻结,但输出(stdout
)不会刷新(可能是由于某些优化?我真的不知道)因此,您要做的是在打印后立即刷新输出
(它实际上是How to flush output of print function?的副本)
相关问题 更多 >
编程相关推荐