鱼C论坛

 找回密码
 立即注册
查看: 3077|回复: 5

模拟内建函数pow(),写power(x, y)计算并返回x的y次幂,不解,请各位鱼油赐教

[复制链接]
发表于 2014-6-19 00:02:45 | 显示全部楼层 |阅读模式
10鱼币
def power(x, y):
  if (y != 0):
      x *= x
      y -= 1
  else:
      return x

print(power(3,4))
请问为什么这样写,运行不了??怎么改?

以下是鱼哥的答案,不解如下#
def power(x, y):
    result = 1

    for i in range(y):    #这个i貌似没参与以下运算,它是干什么用嘀??
        result *= x
    return result

print(power(2,3))

最佳答案

查看完整内容

你的函数只有一条if判断语句,没有循环,程序运行之后只执行一次。你的if判断也有问题,当y!=0,if成立之后没有返回值,python默认给返回一个None,当y==0时却返回一个x。 for..in是一个循环语句,i是其中的循环变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-19 00:02:46 | 显示全部楼层
你的函数只有一条if判断语句,没有循环,程序运行之后只执行一次。你的if判断也有问题,当y!=0,if成立之后没有返回值,python默认给返回一个None,当y==0时却返回一个x。

for..in是一个循环语句,i是其中的循环变量

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-19 18:40:33 | 显示全部楼层
:lol:不加i那个变量 你for循环不起来啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-6-20 00:27:24 | 显示全部楼层
  1. def power(x, y):
  2.     result = 1

  3.     for i in range(y):    #比如说power(2,3)
  4.         result *= x        # i起到决定乘的次数的功能
  5.     return result         #range(3)得到0,1,2 一共有3个i所以乘3次哦!

  6. print(power(2,3))
复制代码
{:7_174:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-4-10 03:08:11 | 显示全部楼层
def power(x,y):
    i = x
    while y > 1:
        x *= i
        y -= 1
    else:
        return x

替你改了一下。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-8-2 09:47:44 | 显示全部楼层
早啊,偶又回来了
感谢鱼神们帮助,获益非浅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-18 12:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表