2016-03-08 126 views
2

我能够找出问题!谢谢大家的意见和建议和教练:)。字符串切片,搜索字符

这是我最后的结果和它的作品只是罚款:(“!?大家好,欢迎什么是第一个和最后一个名字”)

打印

名称=输入() 打印(“有是”,LEN(名称), “你的名字的字母。”)

打印( “你想什么信您的姓名搜索?”)

信=输入()

打印( “你想什么信您的姓名搜索?”)

信=输入()

如果letter.lower:

find_letter = name.find(字母)

print(find_letter+1) 

如果letter.upper:

find_letter = name.find(letter) 

print(find_letter+1) 

希望这会出现在整洁我的提交,还没有想出如何让它看起来像代码,当我提交它呢...我认为它会自动纠正它,如果它识别代码

+0

你要查找的字母或所有出现的第一次出现? – timgeb

+0

这是找到所有的事件,但得到了很大的帮助:) – Wbsauls255

+0

好吧,如果你想找到所有的事件,'str.find'不是一个好方法。它只会找到第一个出现,并且通过连续切片来查找所有出现的事件会变得很难看。 – timgeb

回答

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) 
+0

解释哈哈是令人困惑的,但我会尝试一下! – Wbsauls255

+0

完美!这就是我正在尝试去...我忘记了如果声明...分配部分如下:首先,要求用户输入他们的名字,首先和最后。然后要求用户输入一个他们希望以他们的名字找到的信。计算该名称出现在其名称中的次数,并打印出计数。 (请务必统计字母的小写和大写实例) – Wbsauls255

+0

问题,现在为什么只是“if letter:”?不应该有更多的加入像< >或=? – Wbsauls255

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] 

结果列表告诉你的性格'o'可以在索引1名6中找到。如果你想要一个偏移量(例如,从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