我正在从edX.org那里拿MIT 6.00.1x而我遇到了问题集1的问题2.我在从这个变量中获取bob时遇到了麻烦
<TextView
android:text="Suggest improvements or changes, or report bugs."
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="0dp"
android:id="@+id/textView5"
android:textColor="@color/Black"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" />
我有这段代码
s = 'azcbobobegghakl'
该代码适用于此变量,但是当您添加另一个b和o时,如下所示:
s = 'azcbobobegghakl'
bobTimes = 0
for bobWord in s:
if 'b' and 'o' and 'b' in bobWord:
bobTimes += 1
print(bobTimes)
它为s = 'azcbobobegghaklbobddbtto'
变量添加了一个。我不知道如何从这个变量中提取“bob”这个词。
答案 0 :(得分:0)
使用python的列表切片获取字符串的后3个字符。
s = 'azcbobobegghakl' #prints 2
s = 'azcbobobegghaklbobddbtto' #prints 3
bobTimes = 0
for i in range(len(s)):
if s[i:i+3] == 'bob':
bobTimes += 1
print(bobTimes)
答案 1 :(得分:0)
您能否澄清提取要求?具体做法是:
是bobob
两个bobs,还是只有一个?是bobobob
三个?或者它们都必须分开,即bobasdfbobwwwwbob
s.count("bob")
将计算出非重叠字母出现的“bob”实例数。即bob
为1,bobbob
为2,bobob
只有一个,因为中间b仅计入第一个,仅留下ob
,但bobobob
最好阅读bob o bob
你可以一次迭代一个角色,并检查那个角色和下一个3是否等于“bob”
for k,v in enumerate(s):
if s[k:k+3]=="bob": bobcount+=1
此方法将bobob
计为2,将bobobob
计为3。
或者你可以使用正则表达式,但这不是我的强项,我会留给其他人稍后解释/更新一些信息。