gpt4 book ai didi

python - 基本整数到字符串映射函数中的 "Function object is unsubscriptable"

转载 作者:行者123 更新时间:2023-11-30 23:58:30 24 4
gpt4 key购买 nike

我正在尝试编写一个函数来返回任何小于 1000 的数字的字符串。

每次我在交互式提示符下运行代码时,它似乎都可以正常工作,但是当我尝试导入 wordify 并使用高于 20 的测试编号运行它时,它会失败,因为“TypeError: 'function' object is unsubscriptable”。

根据错误消息,问题似乎出在它尝试索引 numString 时(例如尝试从 n = 24 的测试用例中提取数字 4)并且编译器认为 numString 是一个函数而不是一个字符串。因为函数的第一行是我将 numString 定义为变量 n 的字符串,所以我不太确定为什么会这样。

任何解决此错误的帮助,甚至只是帮助解释我为什么会看到它,都会很棒。

def wordify(n):
# Convert n to a string to parse out ones, tens and hundreds later.
numString = str(n)

# N less than 20 is hard-coded.
if n < 21:
return numToWordMap(n)
# N between 21 and 99 parses ones and tens then concatenates.
elif n < 100:
onesNum = numString[-1]
ones = numToWordMap(int(onesNum))
tensNum = numString[-2]
tens = numToWordMap(int(tensNum)*10)
return tens+ones
else:
# TODO
pass

def numToWordMap(num):
mapping = {
0:"",
1:"one",
2:"two",
3:"three",
4:"four",
5:"five",
6:"six",
7:"seven",
8:"eight",
9:"nine",
10:"ten",
11:"eleven",
12:"twelve",
13:"thirteen",
14:"fourteen",
15:"fifteen",
16:"sixteen",
17:"seventeen",
18:"eighteen",
19:"nineteen",
20:"twenty",
30:"thirty",
40:"fourty",
50:"fifty",
60:"sixty",
70:"seventy",
80:"eighty",
90:"ninety",
100:"onehundred",
200:"twohundred",
300:"threehundred",
400:"fourhundred",
500:"fivehundred",
600:"sixhundred",
700:"sevenhundred",
800:"eighthundred",
900:"ninehundred",
}

return mapping[num]


if __name__ == '__main__':
pass

最佳答案

该错误意味着在应该有列表的地方使用了函数,如下所示:

def foo(): pass
foo[3]

您一定更改了一些代码。

顺便说一下,wordify(40) 返回了“fourty”。我拼写它“四十”并且您没有零的条目

关于python - 基本整数到字符串映射函数中的 "Function object is unsubscriptable",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3033563/

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