我想把所有的字符都改成符號 "#",除了最后的4個。 我得到的錯誤是:
代碼 uj5u.com熱心網友回復: 我不知道你為什么要把它復雜化。正如@blorgon已經指出的,你可以在一行中直接回傳。進一步簡化,你甚至不需要將字串轉換成一個串列。只需直接將字串作為引數傳遞。
如果這不是你要實作的目標,那么你的問題就不清楚了。
uj5u.com熱心網友回復: 你正在經歷一條復雜的路線。下面是另一種方法: 輸出: uj5u.com熱心網友回復: 如果你想采用迭代方法,你可以大幅簡化代碼: 如果你想采用迭代方法,你可以大幅簡化代碼。
標籤:> Traceback (most recent call last):
檔案 "test.py", 行 16, in.
> <模塊>
> r = maskify(cc) File "/workspace/default/solution.py", line 19, in maskify
> n[i] = c[i] IndexError: string index out of range
c = "3656013700"
cc = list(c)
a = (len(cc)-1) - 4
b = []
def maskify(cc)。
n = list(len(cc) * "#"/span>)
while len(cc) <= 4:
return str(cc)
break (cc)
else:
for i in range(len(cc)) 。
if i <= a:
n[i] = n[i]
else:
n[i] = c[i]
b = "".join([str(i) fori in n] )
return b
maskify(cc)
c = "3656013700"
def maskify(c)。
return (len(c) - 4) * "#"/span> c[-4:]
print(maskify(c))
c = "3656013700"
def maskify(cc)。
return cc.replace(cc[:-4], '#'*(len(cc)-4)
print (maskify(c))
######3700。
def maskify(c)。
# check if lenght of string is 4 or less.
if len(c) <= 4:
return c
else:
# string into a list.
cc = list(c)
# 遍歷串列--最后的4個專案for i in range(len(c)-4):
cc[i] = "#"
return ""/span>.join(cc)
s = "3656013700"/span>
s = maskify(s)
print(s)
