我能够找出问题所在!谢谢大家的意见和建议以及指导:)。
这是我的最终结果,效果很好:
print("您好,欢迎光临!名字和姓氏是什么?")
名称=输入() print("There are", len(name), "你名字中的字母。")
print("您想在您的名字中搜索哪个字母?")
字母=输入()
print("您想在您的名字中搜索哪个字母?")
字母=输入()
如果 letter.lower:
find_letter = name.find(字母)
print(find_letter+1)
如果 letter.upper:
find_letter = name.find(letter)
print(find_letter+1)
希望这在我的提交中看起来很整洁,还没有想出如何在我提交时让它看起来像代码......我认为如果它识别代码它会自动更正它
最佳答案
str.find
只会给你第一次出现的字符的索引,例如:
>>> s = 'hello'
>>> s.find('l')
2
为了找到所有的出现,最好枚举字符串并记住与搜索字符匹配的字符的索引。
演示:
>>> name = input('input a name: ')
input a name: John Doe
>>> find_me = input('input character to search for: ')
input character to search for: o
>>> [index for index, char in enumerate(name) if char == find_me]
[1, 6]
结果列表告诉您可以在名称的索引 1 和 6 处找到字符 'o'
。如果您想要一个偏移量(例如,从一开始计算索引,而不是零),请将其指定为 enumerate
的第二个参数:
>>> [index for index, char in enumerate(name, 1) if char == find_me]
[2, 7]
结果列表告诉您可以在名称的第二个和第七个字符处找到字母 'o'
(如果您从 1 开始计数)。
编辑:
根据评论中的讨论,我感觉您可能只想数一个字母。
只需使用字符串的 count
方法即可:
>>> name = input('input a name: ')
input a name: John Doe Schmo
>>> find_me = input('input character to search for: ')
input character to search for: o
>>> name.count(find_me)
3
关于python - 字符串切片,搜索一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35872657/