安12 发表于 2018-7-12 21:58:02

Python 水仙花

def shui(x,y,z):
    chars=
   
    for x in chars:
         for y in chars:
            for z in chars:
                  if x*100+y*10+z==x**3+y**3+z**3:
                        a=x*100+y*10+z
                        print(a,end='')
   

shui(x,y,z)

错误类型:
Traceback (most recent call last):
File "C:/Users/lenovo/AppData/Local/Programs/Python/Python36-32/水仙花.py", line 12, in <module>
    shui(x,y,z)
NameError: name 'x' is not defined

BngThea 发表于 2018-7-12 22:25:44

你的函数定义中不需要xyz三个形参

xizhouqu 发表于 2018-7-13 00:18:54

不用那么复杂嘛。。用x +=1循环,一个个数验证就行了。。。

自信的感觉 发表于 2018-7-13 01:47:08

用无参函数就行了,循环中的变量名和形参重复了。

cable 发表于 2018-7-13 09:24:31

这个想法挺不错的呢,def shui(): 就行了

cable 发表于 2018-7-13 09:25:06

还有,别连着打,可以空一格

安12 发表于 2018-7-13 13:13:25

自信的感觉 发表于 2018-7-13 01:47
用无参函数就行了,循环中的变量名和形参重复了。

是不能重复吗? 那什么时候定义函数有形参呢?

安12 发表于 2018-7-13 13:14:36

BngThea 发表于 2018-7-12 22:25
你的函数定义中不需要xyz三个形参

可以顺便告诉我什么时候是需要有形参的吗?

BngThea 发表于 2018-7-13 13:46:11

安12 发表于 2018-7-13 13:14
可以顺便告诉我什么时候是需要有形参的吗?

需要的时候就用,这里并无必要

指头比思想慢 发表于 2018-7-16 16:54:37

因为你在定义函数def shui(x,y,z):的时候规定了要传入参数(x,y,z),所以你在调用函数shui()的时候需要传入三个参数如:shui(1,2,3)。但是根据你的思路,你在定义函数的时候应该不要传入参数直接这样写def shui():就好了。

兔子撞树 发表于 2018-7-16 17:15:44

这一函数定以后需传递x,y,z三个参数进去,而你后面实际应用中没有传递x,y,z进去。所以报错。
页: [1]
查看完整版本: Python 水仙花