运行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)
有人可以帮忙吗?
答案 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]