鱼C论坛

 找回密码
 立即注册
查看: 2756|回复: 12

[已解决]第018讲课后作业问题!

[复制链接]
发表于 2017-3-6 15:45:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
第一个是动动手1题:
以下是我写的代码:
  1. def findstr(target,sub):
  2.     n = 0

  3.     if sub in target:
  4.         n = target.count(sub)
  5.     print('子字符串在目标字符串中共出现',n ,'次')

  6. target = input('请输入目标字符串:')
  7. sub = input('请输出查找的子字符串:')
  8. findstr(target,sub)
复制代码


请问为什么不在最后加上findstr(target,sub),就无法将if语句中最后的pinrt显示出来?

还有水仙花那个题,我怎么代入计算我感觉sum都不能等于each的值啊!
求大神帮助
最佳答案
2017-3-6 16:00:18
最后的那个findstr(target,sub)是函数的调用,如果不调用函数,就不会进入函数内部执行,也就不会打印信息了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-3-6 16:00:18 | 显示全部楼层    本楼为最佳答案   
最后的那个findstr(target,sub)是函数的调用,如果不调用函数,就不会进入函数内部执行,也就不会打印信息了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 16:02:56 | 显示全部楼层
二楼正解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-3-6 16:28:25 | 显示全部楼层
夜墨 发表于 2017-3-6 16:00
最后的那个findstr(target,sub)是函数的调用,如果不调用函数,就不会进入函数内部执行,也就不会打印信 ...

还是有点迷糊,我写完了代码按下F5(run module)就应该调用函数了啊,为什么还要在加上最后那一句
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 16:51:12 | 显示全部楼层
苹果放在桌子上,你喊一句吃苹果,而你并没有吃。你得用嘴咬一口,才算吃啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 17:30:21 | 显示全部楼层
因为print函数,你是放在findstr函数里面的呀,外部是无法直接调用的,只能通过调用findstr函数才能调用到print函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 18:12:21 | 显示全部楼层
庸人自扰i 发表于 2017-3-6 16:28
还是有点迷糊,我写完了代码按下F5(run module)就应该调用函数了啊,为什么还要在加上最后那一句

按下F5只是定义了函数,并没有进行调用,如果没有最后那个调用,你实际只是进行了函数定义,然后输入两个两个字符串,程序就结束了,定义的函数并没有被调用,所以不会有打印信息。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 19:38:46 | 显示全部楼层
写完代码后,你运行了它
你只是定义了函数
并没有使用
然后你需要调用它
也就是使用这个函数
才会有反应
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 19:57:39 | 显示全部楼层
水仙花数,只要提取个十百位上的数方式正确,可以实现each==sum的,我采取的是如下方法:
number=100
for number in range(100,1000):
    if (number//100)**3+(number//10%10)**3+(number%10)**3==number:
        print(number,end=" ")
    else:
        number+=1
这样也是可以的!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 20:03:32 | 显示全部楼层
本帖最后由 文质彬彬胡汉三 于 2017-3-6 20:04 编辑

朋友你好。
定义了函数,不在最后加上findstr(target,sub),等于没有调用函数,打个比方:
正准备修房子,你定义的函数findstr就是砖块,码了一堆放在别处。A

这个部分:
target = input('请输入目标字符串:')
sub = input('请输出查找的子字符串:')
等于你修房子已经用混凝土打好了框架,B

现在房子修起来,需要把砖头搬过来砌墙,那么就需要将A调用进B里面
就是:
B
A


大概这样子不知道你是否理解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 20:14:38 | 显示全部楼层
sss128 发表于 2017-3-6 19:57
水仙花数,只要提取个十百位上的数方式正确,可以实现each==sum的,我采取的是如下方法:
number=100
for ...

我的水仙花数就是这么写的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-6 20:34:47 | 显示全部楼层
文质彬彬胡汉三 发表于 2017-3-6 20:14
我的水仙花数就是这么写的

那不是可以嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-3-13 20:22:52 | 显示全部楼层
第一行 def 只是表示你的库里面有这个定义在,只有写了findstr(target,sub)才能从库里把函数找出来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-25 20:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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