首页 > 解决方案 > 解码 Traceback 消息

问题描述

作为 Hackerrank 的 Python 练习代码的一部分,我正在尝试下面引用该任务的Mutation问题。

读取给定字符串,更改给定索引处的字符,然后打印修改后的字符串。

这是我想出的代码:

string = 'audiophile'
character = 'u'
position = 5

def mutate_string(string, position, character):
    string = string[:int(position)] + {} + string[int(position)+1:].format(character)
    return string

mutate_string(string, position, character)

它提出了一个TypeError: must be str, not dict,这是整个Traceback信息:

Traceback (most recent call last):
  File "mutations.py", line 13, in <module>
    mutate_string(string, position, character)
  File "mutations.py", line 6, in mutate_string
    string = string[:int(position)] + {} + string[int(position)+1:].format(str(character))
TypeError: must be str, not dict

我正在尝试解码和理解Traceback消息,以便我可以继续使用代码。如果我能得到一些关于我编写代码的方法的建议,那就太好了。

标签: python

解决方案


你走在正确的轨道上,但你的sintax是错误的

这里应该是这样的:

string = 'audiophile'
character = 'u'
position = 5

def mutate_string(string, position, character):
    string = string[:int(position)] + '{}'.format(character) + string[int(position)+1:]
    return string

mutate_string(string, position, character)

format()是一个String()类函数,这就是你的代码不起作用的原因

我希望它有帮助


推荐阅读