【问题标题】:Why my squared numbers won't get printed?为什么我的平方数不会被打印出来?
【发布时间】:2014-08-22 20:11:21
【问题描述】:
def square(x):
    x = 2**x

    x = 2.0
    while x < 100.0:
    print x, '\t', square(x)
    x = square(x)

我尝试打印。但它不会打印。我真正想要的是 2 的平方。但它不会打印?我做错了什么?

【问题讨论】:

  • x = 2.0 只会在每次运行函数时将 x 重置回 2.0。所以你做x = 2^x 并丢弃那个值。
  • 你有无限递归——你在square(x)的定义中调用square(x)
  • 你让它无限递归只是返回值
  • 请记住,Python 非常关心缩进。所有以x = 2.0 开头的语句都是函数定义的一部分,因为它们是缩进的。
  • 你能先修正你的缩进吗? x = 2.0while ... 实际上没有缩进吗?

标签: python function exponent


【解决方案1】:

你甚至可以让它看起来像

while i<100.0:
   print x**2,"\t"
   i+=1#If you increment i by one

你犯的错误是没有返回值 添加语句return sqvalue,其中 sqvalue 是您作为输入提供的值的平方。

def square(int x):
   sqvalue=x**2
   return sqvalue

或者写成单行函数

def square(int x):
   return x**2

我建议你可以看看 lambda(anonymous functions) 来完成这些简单的任务。

【讨论】:

    【解决方案2】:

    你应该返回一个值。

    def square(x):
        y = 2**x
        return y
    

    并增加 x 值。

    while x < 100.0:
         print x, '\t', square(x)
         x += increment_value
    

    我认为square(x) = x^2 not 2^x

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-08
      • 2013-04-19
      相关资源
      最近更新 更多