首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对于python中的循环索引字符串和搜索字符串,谁能解释一下输出

对于python中的循环索引字符串和搜索字符串,谁能解释一下输出
EN

Stack Overflow用户
提问于 2018-08-06 13:08:36
回答 1查看 89关注 0票数 0
代码语言:javascript
复制
#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()

输出:

代码语言:javascript
复制
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',

期望的输出

代码语言:javascript
复制
Ba**le

将第二个匹配项中的其余匹配项替换为*。

有没有人能解释一下为什么打印了这么多次“找不到”的逻辑。

但是期望的输出是:'Ba**le‘作为输入Babble

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-06 13:23:05

在python中,字符串是可迭代的。因此,您的行for i in s将运行n次,字符串中的每个字母运行一次,并输出"not found“。循环第一次运行时,它用*替换了a。因此,对于所有后续运行,它将显示"not found“。

如果我理解你想要做什么,它应该是这样的

代码语言:javascript
复制
first_letter = s[0]
rest_string = s[1:].replace(first_letter, '*')
new_string = first_letter + rest_string
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51700876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档