def 函数!欧几里得算数问题
本帖最后由 Twilight6 于 2020-3-29 15:08 编辑>>>def gcd(x,y):
while True:
if (x % y == 0) or (z % k == 0):
return y
z = x % y
k = y % z
continue
>>>gcd(1997,615)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "<input>", line 3, in gcd
UnboundLocalError: local variable 'z' referenced before assignment
我一直不懂哪错了。。。 上面发的缩进什么的没对齐别介意拷贝时候毁掉了。。。 Twilight6 发表于 2020-3-20 20:17
上面发的缩进什么的没对齐别介意拷贝时候毁掉了。。。
你的z在if循环前面没有定义啊 Twilight6 发表于 2020-3-20 20:17
上面发的缩进什么的没对齐别介意拷贝时候毁掉了。。。
你的缩进毁了我怎么知道你的代码写的啥? qiuyouzhi 发表于 2020-3-20 20:20
你的z在if循环前面没有定义啊
>>>def gcd(x,y):
... z = x
... k = y
... while True:
... if (x % y == 0) or (z % k == 0):
... return y
... z = x % y
... k = y % z
... continue
...
>>>gcd (1997,615)
之后就没反应了。。。也没有>>>出来 Twilight6 发表于 2020-3-20 20:58
>>>def gcd(x,y):
... z = x
... k = y
没有print你想要啥反应? Twilight6 发表于 2020-3-20 20:58
>>>def gcd(x,y):
... z = x
... k = y
你这个z,x,k,y都没变,能有答案才怪 wp231957 发表于 2020-3-20 21:00
没有print你想要啥反应?
循环等return呀欧几里得算术法我记得这个是等于1 qiuyouzhi 发表于 2020-3-20 21:01
你这个z,x,k,y都没变,能有答案才怪
后面不是有 z = x%y 和 k=y%z吗不是会变吗 Twilight6 发表于 2020-3-20 21:12
后面不是有 z = x%y 和 k=y%z吗不是会变吗
是啊
变来变去就那几个
页:
[1]