def double_char(str):
result = ''
for char in str:
result += char + char
return result
这是函数,当我调用它时,请说:
double_char(dog)
它返回:'ddoogg'
但是在第4行,它说结果=结果+ char + char不会产生''dogdog?我真的很困惑,我想我只是不理解for循环的基础
答案 0 :(得分:2)
您正在循环遍历字符串中的每个字符。想象一下它只是:
for char in str:
print char
你去',' o',' g'导致"狗"。现在做两次同样的事情:
for char in str:
print char
print char
你要去'' d',' o',' o' ...导致" ddoogg"。你正在做同样的事情,但构建字符串,然后打印它。
答案 1 :(得分:1)
你可以像这样改变你的方法来获得你想要的东西。
%IF &variable=&target %THEN %let target_met=1;
def double_char(str):
result = str + str
return result
遍历str中的每个字符。第一次是for char in str:
,第二次是'd'
,第三次是'o'
。每个都加倍并添加到结果中。换句话说,第一个值不只是'g'
整体。
'dog'
然后在每次迭代后看起来像这样
result
答案 2 :(得分:0)
在python中,当你在像string这样的元素上运行循环时,
你实际上迭代它的角色
这就是为什么在你的例子中你得到每个角色两次
对于' dogdog'使用:result = 2*'dog'
答案 3 :(得分:0)
让我们尝试运行该功能:
def double_char(string):
result = ''
for char in string:
result += char + char
return result
print(double_char('dog'))
它返回:
ddoogg
所以,这个函数正在做的是定义一个emptry字符串(result
)。许多程序都这样做,它们有一个临时的空字符串。然后该字符串被循环(for char in string:
)生成的新信息填满。此循环遍历字符串中的每个字符,因此d
,o
和g
。然而,有一个扭曲。此代码为字符串内的每个字符添加两个相同的字符,因此,它在第一次迭代时变为result += 'd' + 'd'
。然后result += 'o' + 'o'
。 +=
操作符只是将两个字符串压缩在一起,如第一次迭代中的dd
和第二次迭代中的oo
。从那里,我们得到ddoo
。它一直持续到字符串结束。最后,我们使用return
语句发送我们创建的新临时字符串result
。
答案 4 :(得分:0)
正如您所提到的,您传递字符串'dog',暗示str:='dog'
初始化,
result=''
这会将结果初始化为空字符串一次。
for char in str:
此循环将遍历每个字符。
result += char + char
当你遍历循环时。 char将在每次迭代时分别代表'd','o','g'。
iteration 1:
result=''
char + char := 'd'+'d'
退出迭代:result ='dd'
iteration 2:
result='dd'
char + char := 'o'+'o'
退出迭代:result ='dd'
iteration 3:
result='ddoo'
char + char := 'g'+'g'
退出迭代:result ='ddoogg'
循环完成
如果你想返回'dogdog'
简单地做:
def double_char(str):
return str+str