#usr/bin/python 3.6.1
import sys
def fix_start(s):
a = s[0]
i=1
for i in s:
if a in s :
print("found")
s=s.replace(a,'*')
else: print (" not found")
return (s)
def main():
c = fix_start(sys.argv[1])
print (c)
if __name__=='__main__':
main()
输出:
C:\Users\pavithra.sridhar\Downloads\google-python-exercises\basic>python FixString.py babble
found
not found
not found
not found
not found
not found
*a**le
对于命令行参数'babble',
期望的输出
Ba**le
将第二个匹配项中的其余匹配项替换为*。
有没有人能解释一下为什么打印了这么多次“找不到”的逻辑。
但是期望的输出是:'Ba**le‘作为输入Babble
发布于 2018-08-06 13:23:05
在python中,字符串是可迭代的。因此,您的行for i in s
将运行n次,字符串中的每个字母运行一次,并输出"not found“。循环第一次运行时,它用*
替换了a
。因此,对于所有后续运行,它将显示"not found“。
如果我理解你想要做什么,它应该是这样的
first_letter = s[0]
rest_string = s[1:].replace(first_letter, '*')
new_string = first_letter + rest_string
https://stackoverflow.com/questions/51700876
复制相似问题