tiger吴 发表于 2020-5-13 09:58:56

为什么错了


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

Twilight6 发表于 2020-5-13 10:01:57

因为你没有设置返回值 , 加上:
return
输入你想返回的东西

永恒的蓝色梦想 发表于 2020-5-13 10:02:32

能有结果就奇怪了,改成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))

tiger吴 发表于 2020-5-13 10:06:08

永恒的蓝色梦想 发表于 2020-5-13 10:02
能有结果就奇怪了,改成

e,少打了函数返回结果,还有第二个问题呢

liuzhengyuan 发表于 2020-5-13 10:07:20

tiger吴 发表于 2020-5-13 10:06
e,少打了函数返回结果,还有第二个问题呢

x%y=y
必然会报错
给变量赋值变量要在前面

永恒的蓝色梦想 发表于 2020-5-13 10:07:46

tiger吴 发表于 2020-5-13 10:06
e,少打了函数返回结果,还有第二个问题呢

1.不光是没打返回结果,你的逻辑都是错的

2.我都想不明白 x%y=y 是什么意思

沐羽尘 发表于 2020-5-13 10:23:46

第一个问题已经有人说了 少了一句return x
x%y=y 你是想说 把x%y的结果赋值给y吧 那应该是 y = x%y吧
看的出来 基础内容还没有完全理解{:10_247:}

沐羽尘 发表于 2020-5-13 10:29:20

我看了一下
t=x%y
y=x
t=y
你这三句我感觉有点奇怪,可以用你的话说明一下吗?

tiger吴 发表于 2020-5-13 10:50:19

永恒的蓝色梦想 发表于 2020-5-13 10:07
1.不光是没打返回结果,你的逻辑都是错的

2.我都想不明白 x%y=y 是什么意思

把x%y当变量,然后再代入定义的函数里面,实现递归啊

tiger吴 发表于 2020-5-13 11:12:43

沐羽尘 发表于 2020-5-13 10:29
我看了一下
t=x%y
y=x


后面两个写反了

tiger吴 发表于 2020-5-13 11:14:19

沐羽尘 发表于 2020-5-13 10:23
第一个问题已经有人说了 少了一句return x
x%y=y 你是想说 把x%y的结果赋值给y吧 那应该是 吧
看的出来 ...

额,刚学一周

沐羽尘 发表于 2020-5-13 13:02:48

tiger吴 发表于 2020-5-13 10:50
把x%y当变量,然后再代入定义的函数里面,实现递归啊

递归不是这个意思啦 递归是在函数里面调用函数本身 也就是你定义一个a()函数 ,然后在函数里面调用a(),这才叫递归,你这个应该叫赋值

沐羽尘 发表于 2020-5-13 13:08:17

tiger吴 发表于 2020-5-13 11:12
后面两个写反了

这个 可以理解 先搞清楚那个 赋值号 “ = ”是什么吧 :
就是比如 y = x
是把后面x的值赋值给y ,用数学来说就是x = y的意思
建议踏踏实实的理解了再做下面的题,那个递归可能新手不太容易理解,可以多打一下代码,运行多了,可能就会了
页: [1]
查看完整版本: 为什么错了