鱼C论坛

 找回密码
 立即注册
查看: 410|回复: 7

第18课,动动手最后一题

[复制链接]
最佳答案
0 
发表于 2018-2-13 19:13:12 | 显示全部楼层 |阅读模式

马上注册加入鱼C,享用更多服务吧^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
def findstr(desstr,keystr):
    desstr="im"
    for  keystr in desstr:
        return desstr.count(keystr)
desstr=input("目标字符串为:")

keystr=input("关键字符为:")

print(findstr(desstr,keystr))

这么写没报错,但是运行结果错误,哪位大神帮忙看看


最佳答案
190 
发表于 2018-2-13 19:28:53 | 显示全部楼层
你输入的测试代码是什么?
为什么你接受一个全局变量 desstr,又在内部函数创建了一个局部变量 desstr?
最佳答案
12 
发表于 2018-2-13 20:10:28 From FishC Mobile | 显示全部楼层
局部变量覆盖了全局变量吧desstr
最佳答案
0 
 楼主| 发表于 2018-2-13 20:31:00 | 显示全部楼层
大头目 发表于 2018-2-13 20:10
局部变量覆盖了全局变量吧desstr

把全局变量改成a和b还是不行,结果总是1
最佳答案
0 
 楼主| 发表于 2018-2-13 20:42:38 | 显示全部楼层
大头目 发表于 2018-2-13 20:10
局部变量覆盖了全局变量吧desstr

把全局变量改成a和b还是返回1
最佳答案
190 
发表于 2018-2-13 20:44:28 | 显示全部楼层
修改全局变量是没用的,你函数内部的循环使用的一直是局部变量。
而且如果你是想获得关键字符在目标字符串里的个数的话。函数根本不是这么写,应该这样写。
  1. def findstr(desstr,keystr):
  2.     count = desstr.count(keystr)
  3.     return count
  4. desstr=input("目标字符串为:")

  5. keystr=input("关键字符为:")

  6. print(findstr(desstr,keystr))
复制代码
最佳答案
12 
发表于 2018-2-14 08:04:38 From FishC Mobile | 显示全部楼层
走到return函数就结束了,所以你这个for循环没用,等于只走了一遍
最佳答案
3 
发表于 2018-2-14 23:42:39 From FishC Mobile | 显示全部楼层
知道用count,还写你这个函数干什么
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

小甲鱼强烈推荐上一条 /1 下一条

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号

GMT+8, 2018-8-19 06:25

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表