在python中如何从打印列表中删除最后一个字符

2024-09-27 00:20:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个简单的程序,找到一个数的最小乘法器(不确定这是否是正确的术语)。但是,我找不到从列出的结果中删除最后一个“*”的方法。我做错什么了?请帮忙。在

num = int(input("write number: "))
print(num, end = "=")
div = 2
while num > 1:
    if num % div == 0:
        num = num / div
        print(div, end = "*")
    else:
        div += 1

结果我得到了:

^{pr2}$

我想要的结果是:

24=2*2*2*3

我尝试使用sep=“”而不是end=“”,尝试了\b,[:-1],但这不起作用,或者我只是做错了。 谢谢您。在


Tags: 方法程序divnumberinputifelsenum
3条回答

一种方法是在打印“*”之前检查num是否为1

num = num / div
if num == 1 :
    print(div)
else :
    print(div, end = "*")

因为你只想打印一个*如果有更多的乘数来,并且总是有另一个乘数如果div大于1。在

您可以创建除数列表,然后打印连接的列表。在

num = int(input("write number: "))
print(num, end = "=")
div = 2
out = []
while num > 1:
    if num % div == 0:
        num = num / div
        out.append(div)
    else:
        div += 1
print('*'.join(map(str,out)))

测试:

^{pr2}$

您可以将结果串联起来:

s += div + "*"

在不打印最后一个符号之后:

^{pr2}$

但在我看来,这是一个错误的决定,因为在python中,string是不可变的类型-->;并且因为它,每次创建“s+=div+”*“新变量”s。在

相关问题 更多 >

    热门问题