python - 字符串切片,搜索一个字符

标签 python python-3.x

我能够找出问题所在!谢谢大家的意见和建议以及指导:)。

这是我的最终结果,效果很好:

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/

相关文章:

python - 如何根据 Django 中更改字段的用户自动更新字段?

python - 从列表创建数据框 - TypeError : object of type 'int' has no len()

python-3.x - OpenCV图像形状元组解压缩

python-3.x - 当使用 scipy.optimize 和 "SLSQP"方法时,最终结果保持初始值

python - 将 dict 项映射到 pandas 系列时忽略大小写

python-3.x - 如何正确关闭正在流式传输网络摄像头镜头的套接字?

python - pandas value_counts 包含 groupby 之前的所有值

python - 将 Pandas 数据框重组为 basemap 的网格

python - 为 API 访问生成签名 (Oauth 1.0)

python-3.x - 如何在 python3 中找到 string.atol 的兼容替代品