PythonClassChy/python27Class/pythonLearningNotes/flora_0220_notes.txt

146 lines
3.7 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=================================
Notes
Author: Flora Chen
-_- -_- -_- -_- -_- -_- -_- -_-
=================================
******函数的返回值*****
函数中的返回值是由return来决定的。
函数中没有return就没有返回值调用函数得到的结果就是None。
函数中返回多个值直接下载return后面用逗号隔开就可以。
当函数执行到return之后就会直接跳出函数返回结果后面的代码都不会再执行了。
******函数的参数*****
1. 实参分类(实参可以是变量):
位置传参/位置参数:通过位置按顺序传递
关键字传参/关键字参数:通过参数名指定参数进行传递
示例:
def add_number(a, b):
print('a+b: ', a + b)
return a + b
# 位置传参
res = add_number(3, 5)
# 关键字传参
res1 = add_number(b=9, a=10)
print(res, res1)
注意点:
位置参数与关键字参数可以一起用。
但是同时使用时,位置参数写前面,关键字参数写后面。
示例:
def add_number(a, b, c):
return a + b + c
# 位置传参 + 关键字传参
res = add_number(3, c=5, b=4)
print(res)
2. 形参:函数括号里面的就是形参
形参的分类:
必备参数(必须参数):定义了几个参数就要传递几个参数。
默认参数(缺省参数):可传可不传,不传的情况下使用默认值,传了的情况下使用传的值。
不定长参数:位置可前可后,但是一般放在后面。
*args接收0个或多个位置参数
**kwargs接收0个或多个关键字参数
示例:
# 必备参数
def add_number(a, b, c):
return a + b + c
res = add_number(3, 7, 8)
print(res)
# 默认参数: 可传可不传
def add_number1(a, b, c=90):
return a + b + c
res1 = add_number1(3, 7, 8)
res2 = add_number1(3, 87)
print(res1, res2)
# 不定长参数
def add_number2(a, b, c, *args):
print('a=', a)
print('b=', b)
print('c=', c)
print(args)
add_number2(3, 7, 8, 45, 55, 6, 66)
def add_number2(a, b, c, **kwargs):
print('a=', a)
print('b=', b)
print('c=', c)
print(kwargs)
add_number2(a=3, b=7, c=8, d=45, e=55, f=6, g=66)
******函数参数的拆包*****
函数定义:
*:表示接收位置参数的不定长参数
**:表示接收关键字参数的不定长参数
示例:
def func(*args, **kwargs):
print(args)
print(kwargs)
func(11,22,33, c = 7, d = 9, e = 10)
# 输出结果:(11, 22, 33)
# {'c': 7, 'd': 9, 'e': 10}
函数调用:
*:可以对元组或列表拆包
**:可以对字典拆包
示例:
def func(a, b, c, d):
print(a)
print(b)
print(c)
print(d)
tu= (11, 22, 33, 44)
li = [333, 555, 777, 888]
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
# 对元组,列表进行拆包
func(*tu)
func(*li)
# 对字典进行拆包
func(**dic)
******函数的作用域*****
1. 全局变量&局部变量
全局变量:直接定义在文件/模块中的变量。在该文件的任何地方都可以访问。
局部变量:定义在函数内部的变量。只有在函数内部才可以访问。
示例:
# 全局变量
a = 100
def func():
# 局部变量
b = 10
print('打印全局变量a=', a)
print('打印局部变量b=', b)
print('打印全局变量a=', a)
2. 作用域
局部变量的作用域:函数内部
函数参数的作用域:函数内部
3. 在函数内部定义全局变量使用global进行声明
示例:
def func(a, b):
# 全局变量
global c
c = 10
print('a=', a)
print('b=', b)
print('c=', c)
func(1, 3)
print(c)
4. 函数内部变量和全局变量同名时,在函数内部访问该变量,会优先使用局部变量
示例:
a = 100
def func():
a = 10
print('a=', a)
func() # 输出结果: a= 10