一、函数
1、函数的概念:封装一段代码,实现特定功能的代码块。
2、函数的定义:def func():
1)代码不重复
2)修改方便
def func(): print('step1...') print('step2...') func() #函数的调用 # 输出结果 step1... step2...
3、函数的效果类似---变量
1)变量:一个对象的名字
2)函数:一段代码的名字
4、函数在调用的时候才能执行函数体里面的代码
>>> def func(): print('函数') >>> func() # 调用函数 函数 >>> type(func) # 查看类型 <class 'function'>
5、函数的定义一定在函数的调用之前
6、type(func)----<class 'function'>
7、None:函数无返回值---没有return
def func(): print('step1...') print('step2...') func() print(func()) # 输出结果 step1... step2... step1... step2... None # 无返回值
加上return
def func(): print('step1...') print('step2...') return '我是返回值' func() print(func()) # 结果显示 step1... step2... step1... step2... 我是返回值
8、def func(a, b): ----a,b为必填形参
1)形参:形式主义,在函数定义的时候
2)实参:实际运行,在函数调用的时候
9、在pycharm中,如果形参被使用,则显示为亮色,否则是灰色的。如下,a被调用,显示为橙色,b未被调用,显示为灰色。
函数中参数的赋值
>>> def func(a, b): a = 100 # 函数内部,a被赋值为100 print(a) >>> func(1, 2) #函数调用时,a的初始值为1 100 # 所以,输出结果为100
10、func(a = 1, 2),函数的错误调用。前面是 变量 = 值 的形式,后面一定也用这样的形式。
>>> func(1, 2) 100 >>> def func(a, b): print(a + b) >>> func(a = 1, 2) # 这样写是错误的 SyntaxError: positional argument follows keyword argument >>> func(a=1, b=2) # 如果是 变量 = 值,后面要保持队形 3
11、return a + b----返回值,使用return返回值
>>> def func(a, b): return a + b >>> sumData = func(1, 2) >>> print(sumData) 3
或者直接写成下面的形式。print(func(1, 2))等价于:
1)func(1, 2)函数的调用
2)print(3)
>>> def func(a, b): return a + b >>> print(func(1, 2)) 3
12、全局变量:在函数外部定义的变量
>>> name = 'Tom' # 全局变量 >>> def func(): print(name) >>> func() Tom >>> print(name) Tom
13、局部变量:在函数内部定义的变量,它的生存空间只在函数内部。在函数外部不能被引用。
>>> def fun1(): name = 'Lily' # 局部变量 print(name) >>> fun1() Lily >>> print(name) # 在函数外部不能被引用 Traceback (most recent call last): File "<pyshell#5>", line 1, in <module> print(name) NameError: name 'name' is not defined
14、return可以返回任意类型
>>> def fun(): return [1, 2, 3, 4, 5, 6, 7, 8, 9] # 返回列表 >>> fun() [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> def fun1(): return (1, 2, 3) # 返回元组 >>> fun1() (1, 2, 3)
1)函数一旦执行return,该函数就调用完成;函数内部的return后面的语句就没有任何意义
>>> def fun(): print('调用return前') return '调用return' print('本句不执行!') >>> fun() 调用return前 '调用return'
15、类型转换:str()、int()、float()
1)int(a):a一定是整数值,否则会报错
>>> a = 'xxyy' >>> int(a) Traceback (most recent call last): File "<pyshell#21>", line 1, in <module> int(a) ValueError: invalid literal for int() with base 10: 'xxyy'
2)类型转换的使用举例
>>> data = input('请输入一个数值:') 请输入一个数值:3 >>> type(data) <class 'str'> >>> print(data + 68) Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> print(data + 68) TypeError: must be str, not int >>> print(int(data) + 68) 71
# 或者用下面的方法,直接在输入时转换成int型 >>> data = int(input('请输入一个数值:')) 请输入一个数值:6 >>> type(data) <class 'int'> >>> print(data + 89) 95