|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最后一题如下:
2. 编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为“You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串为“im”,函数执行后打印“子字母串在目标字符串中共出现 3 次”。
以下为给出的标准答案:
def findStr(desStr, subStr):
count = 0
length = len(desStr)
if subStr not in desStr:
print('在目标字符串中未找到字符串!')
else:
for each1 in range(length-1):
if desStr[each1] == subStr[0]:
if desStr[each1+1] == subStr[1]:
count += 1
print('子字符串在目标字符串中共出现 %d 次' % count)
desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
请求大神讲解一下本题的程序是怎样一个运行顺序,里面的程序看懂了,但是运行顺序不太理解,比如为什么要把input 放在最后,print放在之前,为什么在最后又要加上一次findstr(desstr,substr),请鱼友帮小白的我解答一下,谢谢啦!
这是我模仿答案设计的一个代码,想通过字符串是否相同来进行判定,但是具体操作感觉有困难,每次都显示是“共出现0次”,请鱼友帮忙看看程序问题在哪里,有没有可能改对,非常感谢!
def times(a,b):
if b not in a:
print('在目标字符串中未找到字符串')
else:
a = list(a)
b = list(b)
c = a.count(b)
print('子字符串在目标字符串中共出现',c ,'次')
a = input('请输入目标字符串:')
b = input('请输入子字符串(两个字符):')
times(a,b)
- def findStr(desStr, subStr): #开始定义了一个函数findStr,接受两个参数,目标字符串和子字符串
- count = 0
- length = len(desStr)
- if subStr not in desStr:
- print('在目标字符串中未找到字符串!')
- else:
- for each1 in range(length-1):
- if desStr[each1] == subStr[0]:
- if desStr[each1+1] == subStr[1]:
- count += 1
-
- print('子字符串在目标字符串中共出现 %d 次' % count) #函数的最后一句
- desStr = input('请输入目标字符串:') #程序真正的第一行
- subStr = input('请输入子字符串(两个字符):')
- findStr(desStr, subStr)
复制代码
你的程序把list那两行去掉就可以了,list是转成列表,每个字母都是一个独立的列表元素,没法用count来计数。
|
|