1. 程式人生 > >三元運算 函數

三元運算 函數

int class 執行 clas 動態 1=1 lis oba alex

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









三元運算 函數