QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码

主题

帖子

荣誉

VIP至尊会员

Rank: 15Rank: 15Rank: 15

积分
30
查看: 105|回复: 7

第18课,动动手最后一题

[复制链接]
最佳答案
0 
累计签到:5 天
连续签到:2 天
误区一 发表于 2018-2-13 19:13:12 1057 | 显示全部楼层 |阅读模式

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

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

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

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

print(findstr(desstr,keystr))

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


楼层
跳转到指定楼层
最佳答案
146 
累计签到:93 天
连续签到:63 天
°蓝鲤歌蓝 发表于 2018-2-13 19:28:53 | 显示全部楼层
你输入的测试代码是什么?
为什么你接受一个全局变量 desstr,又在内部函数创建了一个局部变量 desstr?
最佳答案
8 
累计签到:44 天
连续签到:19 天
大头目 发表于 2018-2-13 20:10:28 From FishC Mobile | 显示全部楼层
局部变量覆盖了全局变量吧desstr
最佳答案
0 
累计签到:5 天
连续签到:2 天
误区一  楼主| 发表于 2018-2-13 20:31:00 | 显示全部楼层
大头目 发表于 2018-2-13 20:10
局部变量覆盖了全局变量吧desstr

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

把全局变量改成a和b还是返回1
最佳答案
146 
累计签到:93 天
连续签到:63 天
°蓝鲤歌蓝 发表于 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))
复制代码
最佳答案
8 
累计签到:44 天
连续签到:19 天
大头目 发表于 2018-2-14 08:04:38 From FishC Mobile | 显示全部楼层
走到return函数就结束了,所以你这个for循环没用,等于只走了一遍
最佳答案
2 
累计签到:24 天
连续签到:24 天
waitforlove 发表于 2018-2-14 23:42:39 From FishC Mobile | 显示全部楼层
知道用count,还写你这个函数干什么

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

    移动客户端下载(未启用)
    微信公众号

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

Copyright 2018 鱼C论坛 版权所有 All Rights Reserved.

Powered by Discuz! X3.1 Copyright
© 2001-2018 Comsenz Inc.    All Rights Reserved.

小黑屋|手机版|Archiver|鱼C工作室 ( 粤公网安备 44051102000370号 | 粤ICP备11014136号

GMT+8, 2018-2-24 00:32

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