我能够找出问题所在!谢谢大家的意见和建议以及COACHING :)。
这是我的最终结果,它运作得很好:
打印("您好,欢迎!名字是什么?")
name = input() 打印("有#34;,len(姓名),"你姓名中的字母。")
打印("您想用自己的名字搜索什么字母?")
letter = input()
打印("您想用自己的名字搜索什么字母?")
letter = input()
如果letter.lower:
find_letter = name.find(letter)
print(find_letter+1)
如果是letter.upper:
find_letter = name.find(letter)
print(find_letter+1)
希望这在我的提交中看起来很整洁,当我提交它时,我们还没弄明白如何让它看起来像代码...我认为如果它识别代码它会自动纠正它
答案 0 :(得分: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'
。如果您想要一个偏移量(例如,开始将索引计数为1而不是零),请将其指定为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
答案 1 :(得分:0)
我不确定你的意思,但是这个怎么样?
print("Hello, and welcome! What is first and last name?")
name = input()
print("There are", len(name), "letters in your name.")
print("What letter would you like to search for in your name?")
letter = input()
if letter:
find_letter = name.find(letter)
print(find_letter+1)