胖胖的小阿涵 发表于 2020-12-11 14:12:00

这是我编一个水仙花的函数,想问一下错在哪里了

>>> def m(*param):
        a=b=c=0
        for each in param:
                a=each//100
                b=each%100//10
                c=each%100%10
                if each==a**3+b**3+c**3:

                        print('因此'+each+'是一个水仙花数')

>>> m(153)
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
    m(153)
File "<pyshell#26>", line 9, in m
    print('因此'+each+'是一个水仙花数')
TypeError: can only concatenate str (not "int") to str

昨非 发表于 2020-12-11 14:17:10

each变成str(each)

胖胖的小阿涵 发表于 2020-12-11 14:19:58

昨非 发表于 2020-12-11 14:17
each变成str(each)

为什么啊

昨非 发表于 2020-12-11 14:21:21

胖胖的小阿涵 发表于 2020-12-11 14:19
为什么啊

因为+表示字符串的拼接,只有字符串和字符串之间才能拼接

昨非 发表于 2020-12-11 14:23:41

不然的话只能写成
print("因此",each,"是一个水仙花数")

胖胖的小阿涵 发表于 2020-12-11 14:26:26

昨非 发表于 2020-12-11 14:23
不然的话只能写成
print("因此",each,"是一个水仙花数")

谢谢大哥回答了我这么多问题{:5_109:}

昨非 发表于 2020-12-11 14:28:35

胖胖的小阿涵 发表于 2020-12-11 14:26
谢谢大哥回答了我这么多问题

小问题哈{:10_256:}

jiangxl 发表于 2020-12-11 18:46:29

主要问题出现在字符串拼接 这要用+
页: [1]
查看完整版本: 这是我编一个水仙花的函数,想问一下错在哪里了