鉴于此代码:
def double_char(str):
result = ""
for i in range(len(str)):
result += str[i] + str[i]
return result
Run Code Online (Sandbox Code Playgroud)
是result = ""字符串的初始化?如果是这样,有必要在第一时间做吗?
当你这样做
result += ...
Run Code Online (Sandbox Code Playgroud)
它基本上意味着
result = result + ...
Run Code Online (Sandbox Code Playgroud)
此时Python不会知道该值result.所以,它会抛出这个错误
UnboundLocalError: local variable 'result' referenced before assignment
Run Code Online (Sandbox Code Playgroud)
无论如何,初始化变量总是更好.
建议
不要str用作变量名,它隐藏了内置str函数.
您要做的事情可以在一行中完成,就像这样
return "".join(i*2 for i in input_string)
Run Code Online (Sandbox Code Playgroud)def double_char(input_string):
return "".join(i*2 for i in input_string)
print double_char("thefourtheye") # tthheeffoouurrtthheeyyee
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |