python-15 函数and引用

先定义后使用
def 函数名(参数):
print(“hellowworld”)

a,b形参
1,2实参

def add_num(a,b):
    result = a + b
    print(result)


add_num(1,2)    #3

返回值

def buy():
    return "烟"
print(buy())#烟

函数说明文档
第一行才行
“”""""

help(len)
#Help on built-in function len in module builtins:
# 
# len(obj, /)
#     Return the number of items in a container.

def buy():
    """函数说明文档,买烟函数"""
    return "烟"
print(buy())
help(buy)
# 烟
# Help on function buy in module __main__:
# 
# buy()
#     函数说明文档,买烟函数
def print_line():
    print('-' * 20)

def print_lines(num):
    i = 0
    while i < num:
        print_line()
        i += 1

print_line()    #--------------------
print_lines(5)

# --------------------
# --------------------
# --------------------
# --------------------
# --------------------



此时testb()中的a = 200是定义了一个局部变量

a = 100
def testa():
    print(a)

def testb():
    a = 200
    print(a)
testa() #100
testb() #200
print(a)#100

global a 后,下面的a就是全局变量了

a = 100
def testa():
    print(a)

def testb():
    global a
    a = 100 + a
    print(a)

testb() #100
print(a)

多个返回值
默认返回元组

def one():
    return 1,2

print(one())
#(1,2)

def one():
    return [100,200]

print(one())
#[100, 200]

参数
位置参数:传递和定义参数的顺序必须一直
关键字参数:key-value,顺序无要求,函数调用是,如果有位置参数,位置参数必须在关键字参数的前面,但关键字参数之间不存在先后顺序

def user(name, age, gender):
    print(f'U name {name},age {age},sex {gender}')

user('Rose', age=20, gender='woman')
user('小马', gender='woman', age=3)

# U name Rose,age 20,sex woman
# U name 小马,age 3,sex woman

default参数:在函数定义时就设定

def user(name, age, gender ='男'):
    print(f'U name {name},age {age},sex {gender}')
s
user('Rose', age=20 )
user('小马', gender='woman', age=3)
# U name Rose,age 20,sex 男
# U name 小马,age 3,sex woman

不定长参数:包裹位置传递 和 包裹关键字传递
组包: 收集零散数据返回一个整体

def user(*args):
    print(*args)

user('Rose')    #Rose
user('Rose',19)    #Rose 19


def user(**kwargs):
    print(kwargs)

user(name= 'Rose', age= 18 , id= 111)    
# {'name': 'Rose', 'age': 18, 'id': 111}

拆包
元组拆包

def return_num():
    return 100,200

num1,num2 = return_num()
print(num1) #100
print(num2) #200

字典拆包
变量存储的数据是key

dict1 = {
    
    'name':'Tom', 'age' : 18}
a,b = dict1

print(a)    #name
print(b)    #age

print(dict1[a]) #Tom
print(dict1[b]) #18

交换变量的值

a,b = 1,2
a,b = b,a

print(a)    #2
print(b)    #1

引用
python中,值都是考引用传递来的
引用可以理解为变量名
id()判断两个变量是否为同一个值的引用,返回地址
int不可变类型
列表可变类型

a=1
b=a
print(id(a))#1751333120
print(id(b))#1751333120

a = 2
print(id(a))#1751333136
print(id(b))#1751333120

aa=[10,20]
bb=aa
print(id(aa))   #22758824
print(id(bb))

aa.append(40)   #22758824
print(id(aa))   #22758824
print(id(bb))   #22758824

可变类型:数据能够直接进行修改,修改的是源数据
列表 字典 集合
不可变类型:数据no能够直接进行修改
int 浮点 字符串 元组

猜你喜欢

转载自blog.csdn.net/fly_ship/article/details/115303514