2016-10-29 96 views
2

我正在练习循环。我一直试图弄清楚如何让每个字符打印4次,并放在其他地方,例如:aaaaccccddddcccc。现在,返回的资源只显示了最后一个打印4次的字符(cccc)。我试过嵌套for循环,但那也不适合我。我如何连结退货? (或有另一种方式)Python循环练习

def quad_char(letter): 
    res = '' 
    for i in letter: 
    res = i * 4 
    return res 

print(quad_char('acdc')) 

回答

4

你几乎在那里! :-)

在每个循环中,您要重新分配给res,而不是追加到它(你在每个迭代上覆盖res,基本上)。

尝试:

def quad_char(letter): 
    res = '' 
    for i in letter: 
    res = res + (i * 4) 
    return res 

print(quad_char('acdc')) 

这可以缩短为:

def quad_char(letter): 
    res = '' 
    for i in letter: 
    res += i * 4 
    return res 

print(quad_char('acdc')) 

更多关于字符串连接here

同样值得研究各种连接字符串的方式的性能here

+0

感谢@Bobby的额外链接提供不同连接字符串方式之间的性能比较**:+ 1:** – BorrajaX

+0

真棒,谢谢ys – Elohi

0

变化res = i * 4res += i * 4

0

也可以这样做:

def quad_char(letter): 
    for i in letter: 
     print ("".join(i*4), end="") 
0

忘记了明确for回路,并使用了一个列表理解加入

def quad_char(letters): 
    return ''.join(l*4 for l in letters) 
+0

这看起来很有趣,但它不适合我。说:“信件是不明确的” – Elohi

+0

你的代码说'信'我说'字母'(我认为它不太混乱!)。如果粘贴了函数体而不更改其中一个变量名称,则会出现该问题。解决方案是确保您始终使用相同的名称。 – tdelaney