可變不可變型別和邏輯運算

2022-03-18 22:09:35 字數 3942 閱讀 3639

'''

+、-、*、/(結果帶小數)、//(地板除,只保留整數部分)、%(取餘、取模)、**(次方)

'''print(10 + 3.1)

print(10 ** 3) # 十的三次方

'''

>、>=、<、<=、==、!=

'''# 用於條件判斷、返回值是true或者false

'''

*=、/=、-=、%=、**=、//=

'''age = 18

# age = age + 1

age += 1

print(age)

'''

x = 10

y = x

z = y

'''z = y = x = 10 # 鏈式賦值

print(x,y,z)

print(id(x),id(y),id(z))

m = 10

n = 20

print(m, n)

'''temp = m

m = n

n = temp

print(m, n)

'''m, n = n, m # 交叉賦值

print(m, n)

salaries=[11,22,33,44,55]

# 把五個月的工資取出來分別賦值給不同的變數

'''mon0=salaries[0]

mon1=salaries[1]

mon2=salaries[2]

mon3=salaries[3]

mon4=salaries[4]

'''mon0, mon1, mon2, mon3, mon4 = salaries

print(mon0, mon1, mon2, mon3, mon4)

# *_ 指後續的值會被*存稱乙個列表賦值給_,

# _ 通常指被廢棄掉的變數,做乙個佔位符而已,約定熟成

# *_ 只能取兩端的值,不能夠取中間值,且*在解壓賦值中只能出現一次

mon0, mon1, *_ = salaries # 只取前兩個值

*_, mon0, mon1= salaries # 只取後兩個值

mon0, *_, mon1= salaries # 只取開頭第乙個值跟最後乙個值

print(mon0, mon1)

# 解壓字典預設解壓出來的是字典的key

x,y,z=dic=

print(x,y,z)

可變型別:值改變,id不變,證明改的是原值,證明原值是可以被改變的

不可變型別:值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的

x=10

print(id(x))

x=11 # 產生新值

print(id(x))

x=3.1

print(id(x))

x=3.2

print(id(x))

x="abc"

print(id(x))

x='gggg'

print(id(x))

小結:int、float、str都被設計成了不可分割的整體,不能夠被改變

l=['aaa','bbb','ccc']

print(id(l))

l[0]='aaa'

print(l)

print(id(l))

x=

print(id(x)) # 3199870035008

x['k1']=333

print(id(x)) # 3199870035008

'''關於字典補充:

定義:{}內用逗號分隔多key:value,

其中value可以是任意型別

但是key必須是不可變型別

'''

dic=

}dic=

}print(dic[3.3])

dic=

dic=:33333333}

​ 條件就是為了達成某種狀況而所要具備的機制

比較運算子

age = 18

print(age > 16) # 條件判斷之後會得到乙個布林值true

布林型別

is_beautiful=true

print(is_beautiful)

​ 所有的值都可以當成條件去用

​ 其中0、none、空(空字串、空列表、空字典)=》代表的布林值為false,其餘都為真

print(bool(0)) # false

print(bool(none)) # false

print(bool('')) # false

print(bool()) # false

print(bool({})) # false

​ 為了能夠讓計算機具備人的這種判斷事物是否能夠成立的機制

​ not:就是把緊跟其後的那個條件結果取反

​ ps:not與緊跟其後的那個條件是乙個不可分割的整體

print(not 16 > 13)

print(not true)

print(not false)

print(not 10)

print(not 0)

print(not none)

print(not '')

print(true and 10 > 3)

print(true and 10 > 3 and 10 and 0) # 條件全為真,最終結果才為true

print( 10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3) # 偷懶原則

print(3 > 2 or 0)

print(3 > 4 or false or 3 != 2 or 3 > 2 or true) # 偷懶原則

如果單獨就只是一串and鏈結,或者說單獨就只是一串or鏈結,按照從左到右的順訊依次運算即可(偷懶原則)

如果是混用,則需要考慮優先順序了

res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3

# false false false

print(res)

res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3

print(res)

res=3>4 and ((not 4>3) or 1==3) and ('x' == 'x' or 3 >3)

print(res)

​ 成員運算子:in/not in

​ 身份運算子:is 判斷的是id是否相等

print("egon" in "hello egon") 

print("e" in "hello egon") # 判斷乙個字串是否存在於乙個大字串中

print(111 in [111,222,33]) # 判斷元素是否存在於列表

#判斷key是否存在於字典

print(111 in )

print("k1" in )

not in

print("egon" not in "hello egon") # 推薦使用

print(not "egon" in "hello egon") # 邏輯同上,但語義不明確,不推薦

python入門 可變不可變型別 邏輯運算子

什麼叫做可變與不可變型別呢 可變型別 值改變,id不變,證明改的是原值,證明原值是可以被改變的 不可變型別 值改變,id也變了,證明是產生新的值,壓根沒有改變原值,證明原值是不可以被修改的 那麼基本型別中哪些是可變型別哪些是不可變型別呢,讓我們來一一驗證 首先是int,當執行完後發現他的兩個id發生...

可變不可變型別

x 10 print id x x 11 print id x 1713078672 1713078704 值改變,id也發生了改變 驗證 int是不可變型別,所有的賦值都是產生新值 float是不可變型別 str是不可變型別 int float str三種型別的值是不可以分割的,是不可分割的整體,...

python不可變型別和可變型別

python變數可以分為兩種型別 不可變型別 數字 字串 元組 不可變集合 可變型別 列表 字典 可變集合 python所宣告的變數都以物件的形式存在,存在於機器的固定記憶體之中。可以理解為變數名為物件的指標 如宣告a 3,則a指向儲存3的空間,python通過使用計數器的方式來判斷空間的引用情況,...