为什么错了
def gcd(x,y):
while y:
t=x%y
y=x
t=y
x=int(input('hdjd'))
y=int(input('dhjd'))
print(gcd(x,y))
输入x,y的值后为什么没有打印结果?还有不设置中间变量t,直接写x%y=y会报错呢?can’t assign to function call 因为你没有设置返回值 , 加上:
return
输入你想返回的东西 能有结果就奇怪了,改成def gcd(x,y):
while y:
t=x%y
y=x
x=t
return x
x=int(input('hdjd'))
y=int(input('dhjd'))
print(gcd(x,y)) 永恒的蓝色梦想 发表于 2020-5-13 10:02
能有结果就奇怪了,改成
e,少打了函数返回结果,还有第二个问题呢 tiger吴 发表于 2020-5-13 10:06
e,少打了函数返回结果,还有第二个问题呢
x%y=y
必然会报错
给变量赋值变量要在前面 tiger吴 发表于 2020-5-13 10:06
e,少打了函数返回结果,还有第二个问题呢
1.不光是没打返回结果,你的逻辑都是错的
2.我都想不明白 x%y=y 是什么意思 第一个问题已经有人说了 少了一句return x
x%y=y 你是想说 把x%y的结果赋值给y吧 那应该是 y = x%y吧
看的出来 基础内容还没有完全理解{:10_247:}
我看了一下
t=x%y
y=x
t=y
你这三句我感觉有点奇怪,可以用你的话说明一下吗? 永恒的蓝色梦想 发表于 2020-5-13 10:07
1.不光是没打返回结果,你的逻辑都是错的
2.我都想不明白 x%y=y 是什么意思
把x%y当变量,然后再代入定义的函数里面,实现递归啊 沐羽尘 发表于 2020-5-13 10:29
我看了一下
t=x%y
y=x
后面两个写反了 沐羽尘 发表于 2020-5-13 10:23
第一个问题已经有人说了 少了一句return x
x%y=y 你是想说 把x%y的结果赋值给y吧 那应该是 吧
看的出来 ...
额,刚学一周 tiger吴 发表于 2020-5-13 10:50
把x%y当变量,然后再代入定义的函数里面,实现递归啊
递归不是这个意思啦 递归是在函数里面调用函数本身 也就是你定义一个a()函数 ,然后在函数里面调用a(),这才叫递归,你这个应该叫赋值 tiger吴 发表于 2020-5-13 11:12
后面两个写反了
这个 可以理解 先搞清楚那个 赋值号 “ = ”是什么吧 :
就是比如 y = x
是把后面x的值赋值给y ,用数学来说就是x = y的意思
建议踏踏实实的理解了再做下面的题,那个递归可能新手不太容易理解,可以多打一下代码,运行多了,可能就会了
页:
[1]