三元運算 函數
1.三目運算 三元運算
name = ‘alex‘ if 1>1 else ‘eric‘
print (name)
2.深淺拷貝copy deepcopy
# str 一次性創建,不能被修改,只要修改,再創建
# list 鏈表,下一個元素的位置,上一個元素的位置
str,數字:賦值/淺拷貝和深拷貝無意義,因為其永遠指向同一個內存地址,
#拷貝,賦值:地址都一樣
import copy
n1 = 123
n2 = copy.copy(n1)
id(n1)
id(n2)
n2 = copy.deepcopy(n1)
id(n1)
id(n2)
列表/字典/元素......
深拷貝:在內存中將所有的數據重新創建一份(除了最底一層,上層都拷貝一份,即:python內部對字符串和數字的
優化)
淺拷貝:只把最外層拷貝了一份,裏面指向同一個地址
3.函數
面向過程編程:根據業務邏輯從上到下實現功能,往往用一長段代碼來實現指定功能
函數式編程:
a.def 定義函數的關鍵字
1.def 函數名(形參1, 形參2, 形參3):
函數體
return "123"
2.執行函數
函數名(實參1, 實參2, 實參3)
3.形參,實參(默認按照順序賦值),
4.指定形參傳入實參時,可以不按照順序
5.函數可以有默認參數(有默認值的參數一定要放在參數的尾部)
def drive(p, name="張"):
temp = name + "開車去" + p
return temp
ret = drive("海南")
print (ret)
6.動態參數
*,元組,元組的元素
**,字典
結合
def f1(*args, **kwargs)
7.為動態參數傳入列表/字典/元組
*args, *列表
**kwargs, **字典
-----------------------
def f1(*a):
print (a, type(a))
f1(123,456, [11, 22, 33], {"k1":"21"})
(123, 456, [11, 22, 33], {‘k1‘: ‘21‘}) <class ‘tuple‘>
-----------------------
def f1(**a):
print (a, type(a))
f1(k1=123, k2=456)
{‘k2‘: 456, ‘k1‘: 123} <class ‘dict‘>
萬能參數
------------------------
def f1(p, *a, **aa):
print (p, type(p))
print (a, type(a))
print (aa, type(aa))
f1(11, 22, 33, k1=123, k2=456)
11 <class ‘int‘>
(22, 33) <class ‘tuple‘>
{‘k2‘: 456, ‘k1‘: 123} <class ‘dict‘>
b.函數返回值:默認返回None eg:如果成功了,返回一個值,如果失敗了,返回另一個值
return return執行後,函數內下面的代碼均不再執行
c.參數:
#p:形式參數
def kuaidi(p):
#取快遞
if p =="13500098853":
return True
else:
return False
#實際參數
r1 = kuaidi(‘13500098853‘)
r2 = kuaidi(‘123‘)
if r2:
print ("成功")
else:
print ("失敗")
--------------------------------
8.全局變量/局部變量
#全局變量
PERSON = "alex"
def func1():
#局部變量
a = 123
global PERSON
PERSON = "eric"
print (a)
def fun2():
#局部變量
a = 456
print (PERSON)
print (a)
func1()
fun2()
###########
123
eric
456
三元運算 函數