列表去重
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)