字符串切片,搜索字符

时间:2016-03-08 16:25:57

标签: python python-3.x

我能够找出问题所在!谢谢大家的意见和建议以及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)

希望这在我的提交中看起来很整洁,当我提交它时,我们还没弄明白如何让它看起来像代码...我认为如果它识别代码它会自动纠正它

2 个答案:

答案 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)