Python 如何使用索引替换for循环中的字符串

Python 如何使用索引替换for循环中的字符串,python,Python,我这样做了,但是字符串在任何迭代中都不会被替换 示例输入为“23” 我尝试用每一个可能的数字替换数字,并查看是否有多少数字可以被3==0修改,替换操作没有就地执行(这意味着它返回已编辑的字符串,但不会更改原始字符串)。使用另一个变量。另外,返回到循环之外 def functionsdiv(S): count = 0 for i in range(len(S)): for k in range(9): S.replace(S[i], str(

我这样做了,但是字符串在任何迭代中都不会被替换

示例输入为
“23”


我尝试用每一个可能的数字替换数字,并查看是否有多少数字可以被3==0修改,替换操作没有就地执行(这意味着它返回已编辑的字符串,但不会更改原始字符串)。使用另一个变量。另外,返回到循环之外

def functionsdiv(S):
    count = 0
    for i in range(len(S)):
        for k in range(9):
            S.replace(S[i], str(k))
            print(S)
            numbers = int(S)
            if numbers %3 == 0:
                count+=1
        return count

输出:

def functionsdiv(S):
    count = 0
    for i in range(len(S)):
        for k in range(9):
            S_temp = S.replace(S[i], str(k))
            print(S_temp)
            numbers = int(S_temp)
            if (numbers %3) == 0:
                count+=1
    
    return count

您需要在对另一个变量执行replace之后存储字符串,因为字符串是不可变的,并且还需要在第二个for循环正确缩进之后执行return语句

def功能IV:
计数=0
对于范围内的i(len(S)):
对于范围(9)内的k:
温度=S.替换(S[i],str(k))
打印(临时)
数字=整数(温度)
如果数字%3==0:
计数+=1
返回计数
S=“23”
打印(功能IV)
输出

functionsdiv('23')
# 03
# 13
# 23
# 33
# 43
# 53
# 63
# 73
# 83
# 20
# 21
# 22
# 23
# 24
# 25
# 26
# 27
# 28
# 6

不确定我是否遵循了您试图执行的操作,但是replace方法不会更改字符串本身,因为字符串是不可变的。相反,它返回一个新字符串
S=S。replace(S[i],str(k))
将更新temp变量的第一个赋值(
temp=S
)不是必需的,我为您删除了它是的,这是真的。

03
13
23
33
43
53
63
73
83
20
21
22
23
24
25
26
27
28
6