python学习之路(函数基础篇)

列表去重

list1 = [1,2,3,4,5,4,3,2,1]
list2 = []
for i in list1:
    if i not in list2:
        list2.append(i)
print(list2)
def my_sum(num1, num2):  # 形参
    return num1 + num2


num = my_sum(1, 3)  # 实参
print(num)

变量底层原理理解

pyhton 中的数据传递 都是传递的引用

只有=才能改变引用

def fun(list1):
    list1 += [1,2] # 对于列表来说 += 的本质是extend操作

my_list = ['a','b']
fun(my_list)
print(my_list)
# ['a', 'b', 1, 2]

数字交换方法

a = 10
b = 20

# one
c = a
a = b
b = c
print(a,b)

a = 10
b = 20

a = a + b # 30
b = a - b # 10
a = a - b # 20
print(a,b)

a = 10
b = 20

a,b = b,a
print(a,b)
a = 1
print(id(a))

b = a
print(id(b))

b = 10
print(id(a))
print(id(b))
print('——'*30)
# 1759137327408
# 1759137327408
# 1759137327408
# 1759137327696

list1 = [1,2,3]
list2 = [1,2,3]

print(id(list1))
print(id(list2))
print('——'*30)
# 1759201654272
# 1759201679552

#这两个都是一样的
print(id(list1[0]))
print(id(list2[0]))
print('——'*30)
# 1759137327408
# 1759137327408

list1[0] = 10

print(id(list1[0]))
print(id(list2[0]))
print('——'*30)
# 1759137327696
# 1759137327408

print(id(list1))
print(id(list2))
print('——'*30)
# 1759201654272
# 1759201679552

tuple1 = (1,2,[3,4])
print(id(tuple1),id(tuple1[-1]),id(tuple1[-1][0]))
tuple1[-1][0] = 10
print(id(tuple1),id(tuple1[-1]),id(tuple1[-1][0]))
# 1508226974144 1508282477248 1508220561776
# 1508226974144 1508282477248 1508220562000

组包和拆包

a = 20
b = 10
c = b,a # 组包
print(type(c),c)
# <class 'tuple'> (10, 20)
a,b = c
print(a,b)
# 10 20
x,y,z= [1,2,3]
print(x,y,z) # 1 2 3

def fun1():
    num = 10
    print(f'fun1中{num}')

def fun2():
    num = 100
    print(f'fun2中{num}')

fun1()
fun2()

g_num = 10

def fun1():
    print(f'fun1{g_num}')

def fun2():
    g_num = 20 #只是局部变量 不会影响全局变量
    print(f'fun2{g_num}') # 同名了 就近原则

def fun3():
    global g_num # 使用的为全局变量 写在第一行
    g_num = 30
    print(f'fun3{g_num}')

fun1() 10
fun2() 20
fun1() 10
fun3() 30
fun1() 30

print(g_num) # 30

def calc(a,b):
    num = a + b
    num1 = a - b
    return num,num1

result = calc(3,2)
print(result,result[0])
# (5, 1) 5

# 直接拆包
x,y = calc(3,2)
print(x,y)
# 5 1

函数参数

def func(a, b, c):
    print(f'{a},{b},{c}')


# 位置传参
func(10, 20, 30)
# 关键词传参
func(a=10, b=20, c=30)

# 混合使用 关键词传参 放在最后
func(1, 3, c=3)

def show_info(name,sex = 'female'):
    print(name,sex)

show_info('ww')
show_info('ww','male')

def func(*args,**kwargs):
    print(type(args),args)
    print(type(kwargs),kwargs)

func()
func(1,2,3) #位置传参 数据给args 元组
func(a=1,b=2,c=3) #关键字传参 数据给kwargs 字典

func(1,2,3,a=4,b=5,c=6)

# <class 'tuple'> ()
# <class 'dict'> {}
# <class 'tuple'> (1, 2, 3)
# <class 'dict'> {}
# <class 'tuple'> ()
# <class 'dict'> {'a': 1, 'b': 2, 'c': 3}
# <class 'tuple'> (1, 2, 3)
# <class 'dict'> {'a': 4, 'b': 5, 'c': 6}
# print()
# sep=' '
# end='\n'

print(1,end=' ')
print(2,end=' ')
print(3)
# 1 2 3
print(1,2,3,4,5,6, sep='_')
# 1_2_3_4_5_6

缺省参数:有默认值的

位置传参:

关键词传参

不定长参数(多值参数,可变参数)

不定长位置参数:

不定长关键字参数:

dict1 = {'a':1,'b':2}
x,y = dict1
print(x,y) # 得到字典的键
# a b
my_set = {1, 2, 3}
my_set.add(4)  # 添加元素4到set中
my_set.remove(2)  # 移除元素2
my_set.update({5, 6})  # 更新set,添加元素5和6
print(my_set)  # 输出结果为{1, 3, 4, 5, 6}
def my_sum(*args):
    num = 0
    for i in args:
        num+=i
    # num = sum(args)
    return num

num = my_sum(1,2,3)
print(num)
num1 = my_sum(1,2,3,4)
print(num1)

def sum_(*args,**kwargs):
    num = 0
    for i in args:
        num+=i
    for i in kwargs.values():
        num+=i
    print(num)
    
sum_(1,2,3,a=4,b=5)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值