输入transfer int to s

2024-09-23 22:26:05 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:
给定一个包含大写字母和整数(从0到9)的字符串,编写一个函数,按字母和数字之和的顺序返回字母。你知道吗

我的代码:

import re

class Solution:
    def rearrange(self, str):
        # Write your code here
        if str == "":
            return str
        sum = 0
        letter = []
        for i in range(len(str)):
            if re.search("([A-Z])", str[i]):
                letter.append(str[i])
            else:
                sum += int(str[i])
        letsort = sorted(letter)
        letstr = "".join(letsort)
        result = letstr + str(sum)
        return result

错误:

Traceback (most recent call last):
  File "/code/Main.py", line 20, in
    ans = solution.rearrange(str)
  File "/code/Solution.py", line 20, in rearrange
    result = letstr + str(sum)
  TypeError: 'str' object is not callable

我不明白原因。你知道吗


Tags: inrereturnif字母coderesultfile
2条回答

str是Python中的一个保留字,您也可以通过命名rearrange()第二个参数str来重写它。更改rearrange()第二个参数的名称就可以了。你知道吗

您已将变量命名为str—与用于转换为字符串的内置函数同名。您需要重命名它,请尝试以下操作:

import re
class Solution:
    def rearrange(self, str_in):
        # Write your code here
        if str_in == "":
            return str_in
        sum = 0  
        letter = []
        for i in range(len(str_in)):    
            if re.search("([A-Z])", str_in[i]):
                letter.append(str_in[i])
            else:
                sum += int(str_in[i])
        letsort = sorted(letter)
        letstr = "".join(letsort)
        result = letstr + str(sum)
        return result

相关问题 更多 >