How to do a backspace in python
我想知道在使用for循环时如何打印单行字符串。如果你知道其他的方法,我会感谢你的帮助。谢谢您。另外,尝试编辑我的代码!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | times = int(input("Enter a number:")) print(times) a = 0 for i in range(times+1): print("*"*i) a += i print("Total stars:") print(a) print("Equation:") for e in range(1,times+1): print(e) if e != times: print("+") else: pass |
出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Enter a number: 5 * ** *** **** ***** Equation: 1 + 2 + 3 + 4 + 5 |
如何使方程只在一条直线上,如下所示:
1 | 1+2+3+4+5 |
我不认为你能在打印后用"退格"键。至少从终端上删除是不容易的。但您可以在打印字符串之前构建它:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | times = int(input("Enter a number:")) print(times) a = 0 for i in range(times+1): print("*"*i) a += i print("Total stars:") print(a) print("Equation:") equation_string ="" for e in range(1,times+1): equation_string += str(e) if e != times: equation_string +="+" else: pass print(equation_string) |
基本上,所发生的是将临时方程存储在
1 2 3 4 5 | 1 1+ 1+2 1+2+ ... |
然后,在完成构建后打印
1 2 3 4 5 6 7 8 9 10 11 12 | Enter a number: 5 5 * ** *** **** ***** Total stars: 15 Equation: 1+2+3+4+5 |
如果有任何不清楚的地方,请随时发表评论。
评论时间太长,所以我会在这里发表。如果您有一个想要格式化和打印的序列,那么python的格式化选项可以很好地使用。考虑以下内容…
1 2 3 4 5 | >>> num = 5 # number of numbers to generate >>> n = num-1 # one less used in generating format string >>> times = [i for i in range(1,num+1)] # generate your numbers >>> ("{}+"*n +"{}=").format(*times) # format your outputs '1+2+3+4+5=' |
因此,尽管这并不能回答您的问题,但是您可以看到,列表理解可以发挥作用来生成值列表,然后可以在格式生成中使用。格式字符串也可以用L.C.生成,但是当您想要合并字符串元素(如上面的示例中所示的+和=)时,它会变得相当混乱。
请尝试以下操作,而不是使用原始for循环来打印每个数字:
1 2 | output = '+'.join([str(i) for i in range(1, times + 1)]) print(output) |
说明:
可选地:
如果您希望对原始代码进行简单修改,只需使用关键字paramater
1 | print(e, end='') |
(请注意,我的回答是隐含的问题,而不是"如何做退格"问题)