采集自 王爱胜博客
今天上了两节前期准备的“阶乘和数”的PYTHON自定义函数。
程序如下:
def f(c):
f=1
#容错
if c==0:return 1
for i in range(1,c+1):
f=f*i
return f
for n in range(100,1000):
c=n%10 #取个位数字
b=(n//10)%10 #取十位数字
a=n//100 #取百位数字
if n==f(a)+f(b)+f(c):
print(n)
方法一:循序渐进
第一个班从累加、累乘入手。
1.先观察累加算法。
s=0
for i in range (1,101)
s=s+i
print(s)
2.请修改完成累乘。
在此过程中,有几个学生求不出值来。
我用教小学生的启发式:
0乘任何数等于几啊?
哦~~明白了~~学生连真带假的惊呼!
3.完成阶乘自定义函数。
参考以下范例。
def f(c):
f=1
#容错
if c==0:return 1
for i in range(1,c+1):
f=f*i
return f
print(f(5))
print(f(10))
多数学生认真去模仿。
4.函数的故事
少数学生说不明白,
说不知道自定义函数有啥用!
我说,可以复用!
不明白复用~~
也不明白为什么要return 1
为什么要Return s?
只好演示讲解了一番:
函数在数学中是一个很玄的概念,
初学者对映射关系很难理解,
难点不仅是函数表达式,
不仅式子,
任何事都行,
这也很难理解,
比如一只盒子f(x),
跑进去一只老鼠,
跑出来一只猫!
笑什么 ?
你怎么想?
老鼠让猫吃掉了?
我不知道啊~
这要问猫!
函数默认值也许不是猫呢!
我们看一个演示吧:
大家运行输入,运行下看看结果吧!
一会儿学生笑起来~
正确的是
True
love
结果不正确的急急忙忙修改正确了!
修改一下表达式再试试!
无论你是有1块钱,还是有了1000万~~
也无论是表达式怎么折腾着计算~~
唯“真”“爱”不变!
所以,函数怎样,那是数学的事,
我们不一样的就是Return~~
返回函数值给了f(x)而已!
方法二:模块化思维
第二个班基础较好一点,
换一种方法,直入主题!
1.模块化设计思维:标准化
今天我们研究模块化思维
这是一种标准化的方法~
很重要!
比如,现在手机、装修都在模块化设计,模块化安装!
学习了要模块化,一个专题一个专题的模块要落实。
英语也好,语文也好,
有一种同学背个单词表也总是从a的单词开始~
无论他背多少次,难词都是z开头的了!
我有一个三位数是这样的cba,
我想知道a!+b!+c!
目前没有阶乘运算,自己造一个函数吧!
参考下面程序,针对一个数如289看看其数位的阶乘和。
def f(x):
---
a=
b=
c=
y=f(a)+f(b)+f(c)
print(y)
重点回顾% //运算~
2.判断是否是阶乘和数
if x==y:
3.寻找三位数
for i in range(100,1000):
思考:调用函数几次?
4.难度的故事
学习中,问一个学生难度如何?
学生说,再难也比物理的受力分析容易!
这个班亲和度更好一些,
学生也积极~
完成率较高~
理解统计人数也多~
我说,这位同学说的非常好~
受力分析也要有正确的参照系~
每一个力都分析,
但是不一定每一个力都要用上~
有系统内力啊!
所以也要模块化思维~
然后又这演示了:折腾千遍,真情不变~
那个特殊的优秀生,
小男孩~
向我招手了~
我过去,
问我好多问题~
想做一个灵活的词典查找,
还能删除不需要了的单词~
我说你可以一块一块设计吧,
查找他会了~
删除他自以为是del,试了试不行~
因为他造的是list.del,
在模仿上节的.append呢!
我说这个好像是直接删除,
不要用“方法”的~
他问啥是方法~
我简单说你.吃饭 你.上课!
又有学生问,
我说你查查菜鸟教程~
我一会回来~
一会又叫我~
他瞪大眼~
举手!~
我只好去~
弄了个.remove(4)给我看~
我说自学也是一个好办法!
回来说起来,
同事说,
看来这小孩也需要被关注~~
上次我表扬他,
他记住了~
下课了,我说节课2个收获:
一是,我要记下来励志:今天的程序再难也比受力分析容易!
二是,折腾千百变,对编程真情也不变~
其实现在还有一句:
最爱牛肉面!
发表评论
您必须[ 登录 ]才能发表留言!