gpt4 book ai didi

python - 为什么我在我的硬币找零程序(Python 3)中得到 "AttributeError: ' int' object has no attribute 'append' ) ?

转载 作者:行者123 更新时间:2023-11-30 22:11:18 25 4
gpt4 key购买 nike

我正在学习离散数学类(class),需要我为其编写一些简短的代码。这是我要解决的问题:

开发一个Python方法change(amount),对于24到1000范围内的任何整数amount,返回一个仅由数字5和7组成的列表,使得它们的总和等于amount。例如,change(28) 可能返回 [7, 7, 7, 7],而change(49) 可能返回 [7, 7, 7, 7, 7, 7, 7] 或 [5, 5, 5, 5] , 5, 5, 5, 7, 7] 或 [7, 5, 5, 5, 5, 5, 5, 5, 7]。

(要解决此测验,请在您的计算机上实现方法更改(金额),在多个输入上进行测试,然后将您的代码粘贴到下面的字段中并按提交测验按钮。)

这是我编写的代码:

def change(amount):
if amount < 24:
return 0
assert(amount >= 24)
if amount == 24:
return [5, 5, 7, 7]
if amount == 25:
return [5, 5, 5, 5, 5]
if amount == 26:
return [5, 7, 7, 7]
if amount > 1000:
return 0

coins = change(amount - 5)
coins.append(5)
return coins

当我在代码可视化程序 ( http://www.pythontutor.com/visualize.html#mode=edit ) 上测试我的代码时,它似乎工作正常,但是当我输入它作为测验的答案时,我收到错误:

RuntimeErrorElement(RuntimeError,第 16 行错误: 硬币.append(5)AttributeError:“int”对象没有属性“append”)

我不确定发生了什么事。请注意,该类(class)是在线类(class),我正在将代码输入在线平台,因此我确信算法正在检查某些内容,但我不确定是什么。

最佳答案

确保所有返回值的类型相同。您需要使用数组,但当返回零时您使用的是整数。已修复:

def change(amount):
if amount < 24:
return [0]
assert(amount >= 24)
if amount == 24:
return [5, 5, 7, 7]
if amount == 25:
return [5, 5, 5, 5, 5]
if amount == 26:
return [5, 7, 7, 7]
if amount > 1000:
return [0]

coins = change(amount - 5)
coins.append(5)
return coins

关于python - 为什么我在我的硬币找零程序(Python 3)中得到 "AttributeError: ' int' object has no attribute 'append' ) ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51460879/

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