马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数,我写的代码,若第五行用return,则返回值有(),用print,则返回值会多一个NONE,求解这是为什么,以及请指出我这个代码的问题:def findstr(x,y):
y = input('请输入目标字符串:')
x = input('请输入子字符串(两个字符):')
n = y.count(x)
return('子字符串在目标字符串中共出现',n,'次')
print(findstr('lo','i love you'))
小甲鱼给出的参考答案没有用count,请问是为什么,是否有什么好处?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)
一个大问题里的三个小问题,请大神尽量都指点下哈……之前帮忙解答其他问题的热心大神都是一人回答一个小问题,到选最佳答案的时候我就很纠结,为什么只能设一个最佳答案qaq……
我觉得你是还没理解 return 的含义。return 是一条 语句,不用加括号,用于返回指定的值(在函数中)而且不会打印那个值。
而 print() 只是单纯地打印一个值,并不会起到返回值的作用。
如果你把 return 改成 print,则会直接打印字符串。由于你并没有返回任何值,所以会隐式地返回 None 。这时你 print() 出来的就是返回的 None 值。
如果在函数中一定要用 print() ,那把这句话:
print(findstr('lo','i love you'))
改成这样就行了(去掉 print):
findstr('lo','i love you')
|