狗宁 发表于 2020-6-15 10:29:30

022讲一个小问题

源代码如下,是要求用递归的方法实现pow函数
def power(x, y):
    if y:
      return x * power(x, y-1)y:
    else:
      return 1
   
print(power(2, 3))
问一下大牛们,这个
if y:
      return x * power(x, y-1)y:
是什么意思哇

狗宁 发表于 2020-6-15 10:32:05

if y:
是y>x 的意思吗

Twilight6 发表于 2020-6-15 10:33:33

本帖最后由 Twilight6 于 2020-6-15 10:34 编辑




你要知道 只要 0 、空字符串、空列表、空字典等 都可以看作布尔类型的值为 False

只要是 非0 ,非空字符串、列表、字典 等 都可以看作布尔类型的值为 True

所以 if y 不是 y>x 的意思 是看 y 的取值来决定是 True 还是 False

对于这题只要 y 不等于 0,这 if 条件始终成立执行 if 代码块下面的 代码

heidern0612 发表于 2020-6-15 10:35:57

狗宁 发表于 2020-6-15 10:32
if y:
是y>x 的意思吗

if y等于 if y不等于0.

狗宁 发表于 2020-6-15 10:37:59

Twilight6 发表于 2020-6-15 10:33
所以 if y 不是 y>x 的意思 是看 y 的取值来决定是 True 还是 False

对于这题只要 y 不等于 0 ...

是不是这个意思:只要y不是0。都执行return x * power(x, y-1)这句。当y=0的时候就执行else

狗宁 发表于 2020-6-15 10:40:22

heidern0612 发表于 2020-6-15 10:35
if y等于 if y不等于0.

懂了懂了,谢谢

Twilight6 发表于 2020-6-15 10:41:34

狗宁 发表于 2020-6-15 10:37
是不是这个意思:只要y不是0。都执行return x * power(x, y-1)这句。当y=0的时候就执行else

是的~

SAURY 发表于 2020-6-15 10:52:10

if y:
      return x * power(x, y-1)y:
这里你也写错了吧,retrun有:符号吗?
power()y这个y也有问题吧,格式错了,而且加上y你的power函数也错了
页: [1]
查看完整版本: 022讲一个小问题