运行Python程序时,弹出错误“外部函数返回”

时间:2019-03-19 09:52:08

标签: python arrays python-3.x list

运行Python程序时,会弹出错误“'return'outside function”。

我试图制作一个浮点数列表,并返回一个列表,其中每个元素都具有10%的折扣。

def discount_ten():
nondis=float[1.10,2.40,5.20,6.30,6.70]
for i in nondis:
  |return(nondis/10) #<- "|" is the red highlighting.#
print(nondis)

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

我认为您的函数没有正确缩进,请查看以下代码:

此功能可打印所需的输出:

def discount_ten():
   nondis=[1.10,2.40,5.20,6.30,6.70]
   for i in nondis:
     print(i/10)

此函数返回所需输出的列表:

def discount_ten():
    nondis=float[1.10,2.40,5.20,6.30,6.70]
    disc_ten=[]
    for i in nondis:
       disc.append(i/10)
    return disc
  

注意:代码块(函数的主体,循环等)以缩进开始,以第一条未缩进的行结束。缩进量取决于您,但是在整个块中缩进量必须一致。

-

答案 1 :(得分:1)

在Python中,缩进是代码的重要组成部分。每个块添加一个缩进级别。要定义一个函数,必须将函数的每一行缩进相同的数量。

def discount_ten():
    distcount_list = []
    nondis = [1.10,2.40,5.20,6.30,6.70]
    for i in nondis:
        distcount_list.append(round(i/10,2))
    return distcount_list
print(discount_ten())

答案 2 :(得分:1)

缩进错误,您需要正确缩进函数定义,即:

def discount_ten():
    nondis=float[1.10,2.40,5.20,6.30,6.70]
    for i in nondis:
      return(nondis/10) 
    print(nondis)
  

注意:Python遵循特定的缩进样式来定义   代码,,因为Python函数没有任何明确的开始或结束,例如   大括号指示该功能的开始和结束,它们   必须依靠这种缩进。

编辑(已固定为所需的输出):

使用列表存储结果,循环中不需要return,因为这将退出循环并在第一次迭代中仅打印0.11000000000000001。此外,使用round()舍入到最接近的所需小数位:

def discount_ten():
    nondis = [1.10,2.40,5.20,6.30,6.70]
    res = []                      # empty list to store the results
    for i in nondis:
      res.append(round(i/10, 2))  # appending each (rounded off to 2) result to the list
    return res                    # returning the list

print(discount_ten())

输出

[0.11, 0.24, 0.52, 0.63, 0.67]