想看看我是不是走对方向了。我必须将字符串中除最后四个字符以外的所有字符都改为#。到目前为止,我有两个想法。
第一个:
def maskify(cc):
cc = raw_input("Enter passcode: ")
n = len(cc)
cc.replace(cc[0:n-4], #) # this one gives me the unexpected EOF while parsing error第二个(我认为这个比较接近,因为它应该需要一个算法):
def maskify(cc):
cc = raw_input("Enter passcode: ")
n = len(cc)
for i in range (0, n-4): # i think a for loop would be good but i don't know how i'm going to use it yet
cc.replace( #not entirely sure what to put here
pass 发布于 2015-07-17 17:40:02
cc = raw_input("Enter passcode: ")
cc = ''.join(('#' * (len(cc) - 4), cc[-4:]))发布于 2015-07-17 17:37:10
第一个示例中的问题是#未加引号。您需要将其更改为'#',否则它将被解析为注释的开头,而括号是该注释的一部分。尽管如此,这只能修复解析错误。
字符串的问题是不能更改其中的字符(它们是immutable)。解决此问题的一种常见方法是创建一个字符串数组,更改要更改的字符,然后将数组转换回字符串(通常使用''.join(character_array))。试试看!
发布于 2015-07-17 17:42:14
下面的内容如何?
def maskify() :
cc = input("Enter passcode: ")
mask = '#'*(len(cc)-4)
return mask + cc[-4:]我不确定程序的其余部分是如何工作的,但我怀疑您是否应该在此函数中提示输入raw_input。你可以根据你的需要来决定。另一种方法如下所示:
def maskify(cc) :
return '#'*(len(cc)-4) + cc[-4:]
myInput = input("Enter passcode: ")
maskedInput = maskify( myInput )input而使用raw_input
https://stackoverflow.com/questions/31472664
复制相似问题