gpt4 book ai didi

python - 函数中列表的总和

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:30 24 4
gpt4 key购买 nike

我有一个关于 python“函数”编程的问题。

这是我的脚本:

def print_seat(seat):
for item in seat:
print "${}".format(item)
print "-"*15
total = get_seat_total(seat)
print "Total: ${}".format(total)

def get_seat_total(seat):
total = 0
for dish in seat:
total += dish
return total

def main():
seats = [[19.95], [20.45 + 3.10], [7.00/2, 2.10, 21.45], [7.00/2, 2.10, 14.99]]

grand_total = 0

for seat in seats:
print_seat(seat)

grand_total += get_seat_total(seat)
print "\n"
print "="*15
print "Grand total: ${}".format(grand_total)

if __name__ == "__main__":
main()

这是我的脚本结果:

$19.95
-----------
Total: $19.95

$23.55
-----------
Total: $23.55

$3.5
$2.1
$21.45
------------
Total: $3.5

$3.5
$2.1
$14.99
------------
Total: $3.5

============
Grand total: $50.5

但是脚本的结果应该是这样的:

$19.95
-----------
Total: $19.95

$23.55
-----------
Total: $23.55

$3.5
$2.1
$21.45
------------
Total: $27.05

$3.5
$2.1
$14.99
------------
Total: $20.59

============
Grand total: $91.14

从上面可以看出,列表中的总数是不同的。我想我写的所有内容都是正确的,包括列表的总和(如果我没记错的话)。有人可以指出我的脚本结构有什么问题吗?还是我脚本写错了?

最佳答案

问题在于,在您的 get_seat_total() 函数中,您是从循环内部返回的,因此它会在仅添加第一项后返回总数。你应该只在循环完成后返回,示例 -

def get_seat_total(seat):
total = 0
for dish in seat:
total += dish
return total

关于python - 函数中列表的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31984527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com