018函数灵活即强大 小白提问时间
最后一题如下:2. 编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为“You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串为“im”,函数执行后打印“子字母串在目标字符串中共出现 3 次”。
https://xxx.ilovefishc.com/forum/201401/07/1732468j798h2zzxjeo9z8.png
以下为给出的标准答案:
def findStr(desStr, subStr):
count = 0
length = len(desStr)
if subStr not in desStr:
print('在目标字符串中未找到字符串!')
else:
for each1 in range(length-1):
if desStr == subStr:
if desStr == subStr:
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 == subStr:
if desStr == subStr:
count += 1
print('子字符串在目标字符串中共出现 %d 次' % count)#函数的最后一句
desStr = input('请输入目标字符串:') #程序真正的第一行
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
你的程序把list那两行去掉就可以了,list是转成列表,每个字母都是一个独立的列表元素,没法用count来计数。 多谢兄弟!兄弟纽币!
页:
[1]