【发布时间】:2020-07-15 01:46:01
【问题描述】:
大家!我对 Python 很陌生,我正在尝试学习一些基本知识。我在通过针对初学者的在线课程时遇到了一项任务。任务是创建一个程序,它将读取一些字母的字符串,例如,'aaabbbccc',并输出'a3b3c3'(另一个例子:它可能是'abccaab',那么程序应该输出'a1b1c2a2b1')。我以为我找到了一种使用 while 循环来处理它的方法,但是最后,当我在 if else 中添加 elif 构造时,它不起作用:当我输入我的字符串并按 enter 时,它只是传递到下一个行,似乎程序还没有开始。对于如何修复它或任何有助于解决任务的替代想法的任何评论或建议,我将非常感谢。
n = input()
i = 0
j = i + 1
s = 1
m = ''
while j < len(n):
if j == len(n) - 1:
s += 1
m += n[j] + str(s)
elif n[i] != n[j]:
m += n[i] + str(s)
i += 1
j += 1
s = 1
else:
i += 1
j += 1
s += 1
print(m)
【问题讨论】:
-
如果
if j == len(n) - 1j 没有任何反应;你得到一个永无止境的循环。在m += n[j] + str(s)之后添加print(j)以亲自查看。
标签: python python-3.x string if-statement while-loop