用python写水仙花数,四个数用end',`输出,该怎么在保留其他逗号的情况下,去掉最后一个逗号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python写水仙花数,四个数用end',`输出,该怎么在保留其他逗号的情况下,去掉最后一个逗号相关的知识,希望对你有一定的参考价值。

你好,这个问题属于print中的参数问题。其实,你说的这个问题可以用print中的sep参数解决。

end也属于print中的一个参数,它表示的意思是:当print把要打印的内容全部打印出来之后,最后用end中的内容来结尾。

比如说print("a","b",end=",")

这段程序最后返回的结果就是:ab,

所以,想要去掉最后面的",",只需要不输入end参数即可,它会默认为换行符,或者是给end参数赋个空值,两种方法都行。分别举个例子吧:

①print("a","b")

结果:ab

②print("a","b",end="")

在end的引号里什么都不要填

结果:ab

这样就可以得到你想要的结果了

到这里有人就会说了,既然这两种返回的结果都一样,那肯定是选短的呀

其实这两种方法还是有一定的差别的,只是在刚才的情况中没有体现出来而已。

接下来再举例子,这次打印两次:

print("a","b")

print("c","d")

结果:

ab

cd

发现了什么,发现打印了两行。其实如果不输入end参数,它会默认其参数值为一个换行符,第一次print完之后,在结尾会再打印一个换行符,起到的作用也就是在下一次打印的时候从下一行开始打印

print("a","b",end="")

print("c","d",end="")

结果:

abcd

没错,当把end的值换作空的,它就可以不再默认是换行符,而是你定义的空值,所以在第一次print之后,它不会在结尾打印任何的东西,下一次打印也会是从上一次打印的后面直接开始打印

好了,说完end参数,再提一下sep参数,也不用文字说明了,我举两个例子,应该看一下就明白有什么作用了

print("a","b",sep=",")

结果:a,b

(注意哦,这里的a和b之间是有逗号的,之前用end的时候都是没有的,因为end作用在结尾的位置,而sep作用在字符串和字符串之间)

print("Python","厉害","真厉害",sep="!")

结果:Python!厉害!真厉害

什么作用,应该很显然了吧

希望我的解答对你有所帮助!祝你生活愉快!

参考技术A

那得看你怎么写的代码了。已经print出去了,是没法去掉了,想法子第四个不是end=','就是了。比如:

#水仙花数
flt = lambda x:x==int(x/100)**3  + int(x%100/10)**3 + (x%10)**3
print(','.join(str(_) for _ in filter(flt ,range(100,1000))))

python学习——练习题(13)

"""
题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",
因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
"""


def answer1():
    """
    正常for循环比较
    :return:
    """
    print("输出一", end=":")
    for i in range(100, 1000):
        a = i // 100
        b = i % 100 // 10
        c = i % 10
        if i == a ** 3 + b ** 3 + c ** 3:
            print(i, end=",")


answer1()


def answer2():
    """
    逆向思维,有三个一位数组合成一个三位数
    :return:
    """
    print("\n输出二", end=":")
    for i in range(1, 10):
        for j in range(0, 10):
            for k in range(0, 10):
                if i ** 3 + j ** 3 + k ** 3 == i * 100 + j * 10 + k:
                    print(i * 100 + j * 10 + k, end=",")


answer2()


def answer3():
    """
    通过类型转换来获取三位数的各位数值
    :return:
    """
    print("\n输出三", end=":")
    for i in range(100, 1000):
        s = str(i)
        if pow(int(s[0]), 3) + pow(int(s[1]), 3) + pow(int(s[2]), 3) == i:
            print(i, end=",")


answer3()


def answer4():
    """
    领用divmod函数来计算
    :return:
    """
    print("\n输出四", end=":")
    for i in range(100, 1000):
        m = i
        sumNum = 0
        while m > 0:
            m, n = divmod(m, 10)
            sumNum += n ** 3
        if sumNum == i:
            print(i, end=",")


answer4()


def answer5():
    """
    利用列表for if 用法来实现
    :return:
    """
    print("\n输出五", end=":")
    L = [i for i in range(100, 1000) if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i]
    print(L)


answer5()

  

以上是关于用python写水仙花数,四个数用end',`输出,该怎么在保留其他逗号的情况下,去掉最后一个逗号的主要内容,如果未能解决你的问题,请参考以下文章

用Python编写水仙花数

求水仙花数

求水仙花数

怎样用一行python打印列表所有元素

Python三个例子教你写代码

用Python写一个 输入10个数,从大到小排序,并输出前五个数据的和 输入 9 8 7 6 5 4 3 2 1 输出35?