首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >键入transfer int to str

键入transfer int to str
EN

Stack Overflow用户
提问于 2018-04-06 05:39:24
回答 2查看 61关注 0票数 1

问题:

代码语言:javascript
复制
Given a string containing uppercase alphabets and integer digits (from 0 to 9), write a function to return the alphabets in the order followed by the sum of digits.

我的代码:

代码语言:javascript
复制
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

错误:

代码语言:javascript
复制
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

我不明白其中的原因。

EN

回答 2

Stack Overflow用户

发布于 2018-04-06 05:42:23

str是Python语言中的保留字,您可以通过将rearrange()的第二个参数命名为str来覆盖它。更改rearrange()第二个参数的名称即可完成此操作。

票数 0
EN

Stack Overflow用户

发布于 2018-04-06 05:42:47

您已将变量命名为str -与用于转换为字符串的内置函数同名。你需要重命名它,试试这个:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49681941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档