#函数
print("这节课学习函数")
print("在以前的c语言里有过函数的应用,能够减少代码重复")
print("比如 void main()、int add()等,和c语言对应的是,c语言函数也对应一种数据类型")
print("我们前面知道了python是动态数据类型的,在执行时确定数据类型是什么,所以:")
print("python的函数前面就不用用int float char等啦")
def printhello():
print("hello!")
printhello()
print("上面是一个最简单的自定义函数的例子,同if、while等关键字一样,def后面要有:冒号")
print("调用函数要在定义函数之后,否则会有错误报出")
print("当然,定义函数可以包含参数")
def add(x,y):
return x+y
print(add(9,9))
print("以前的课程中有一个转换字符串为数字的函数,int或者float")
#n1=input()
#n2=input()
#print(n1+n2)
#为了避免程序要求输入,执行时忘记这件事以为别的地方报错,把这段暂时屏蔽掉
print("因为字符串也可以相加,比如上面这个例子,如果不转换类型,结果会是99(输入9和9)")
print("而在我们定义的函数中,结果是默然把输入当做数字来计算的")
print("在上面自定义的函数中,add两个字符串也可以,所以应该是默认数字为数字型不是字符串型")
print("def函数中可以加入帮助文档")
def help1():
"""
这是帮助文档
"""
print("输入help查看文档")
help1()
print(help(help1))
help(help1)
#=====================================
print("下面是一个重点,函数还可以复制")
helloworld=printhello
helloworld()
print("函数复制时,不需要添加(),可以这么理解,函数类型也是一个数据,list也是一个数据,int也是一个数据")
print("直接用名字复制即可")
print("如果加了()反而是调用返回的值了,即return的值")
print("当然,执行新函数时后面要加上()")
print("函数值的参数可以是另外一个函数")
def add(x,y):
return x+y
def printadd(a,x,y):
print(a(x,y))
printadd(add,3,4)
print("目前还没有看出来有什么作用,但应该很有用,记住这个知识点")
#================================================================
print("顺便说一下模块,模块是以后学习中很重要的一个方面,可以理解成一个函数库")
print("有很多的模块,比如架设网站的,做GUI的,做游戏的,以后与python打交道主要就是学习模块")
print("python里有一些安装好后就自带的模块,是经常用到的,比如random")
import random
for i in range(10):
print(random.randint(0,9))
print("上面这个模块就是形成一个0-9的随机整数,包含0和9")
print("模块的导入还有另外的办法,比如")
import random as r
print(r.randint(0,9))
print("这样的话模块就可以简写了,不用输入random整个名称")
from random import randint
print(randint(0,5))
print("区别就是,如果from import ,使用函数的时候就不需要random.或者r.用方法执行了,只需要输入函数就可以")
print("好处是省点事,坏处是和当前py文件函数有冲突就有bug了")
print("变量也是一样")
import math
print(math.pi)
from math import pi
print(pi)
print("模块变量和py中的变量容易混淆,除非能了解函数严格命名,否则用form可能会出现bug")
print("还有另外一种方法就是form和as联用")
from math import pi as thepi
print(thepi)
print("这样综合使用还是挺方便哒")
from random import randint as suijishu
print(suijishu(0,9))
print("导入函数也是一样哒,当然suijishu这种名称有点难看-。-")
print("今天就到这里吧,基础内容已经复习了一大块啦,再接再厉!!")