您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Python中的變量、運(yùn)算符和流程控制實(shí)例代碼分析”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
在終端內(nèi)輸入“python3”,然后輸入python代碼
在終端內(nèi)輸入“python3 文本文件路徑”
Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。
在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對象的類型。
等號(=)用來給變量賦值。
等號(=)運(yùn)算符左邊是一個變量名,等號(=)運(yùn)算符右邊是存儲在變量中的值。
變量名 = 變量值。
變量名是用來接收變量值的
name = 'nick' age = 19
變量名具有某種意義
由數(shù)字/字母/下劃線組成,且不能由數(shù)字和下劃線開頭
不能用Python關(guān)鍵字
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
駝峰體:NameOfNick
下劃線:name_of_nick
(推薦)
常量是約定俗成的一種規(guī)范,常量名的定義方式為全大寫。實(shí)際上可以被修改。
AGE_OF_NICK = 19 print(AGE_OF_NICK)
變量值的引用次數(shù)
x = 257 # 257的引用計(jì)數(shù)為1 y = x # 257的引用計(jì)數(shù)為2 del x # 257的引用計(jì)數(shù)為1
當(dāng)變量值的引用計(jì)數(shù)為0的時候,該變量值會被Python自動回收它的內(nèi)存占用
[-5,256]之間的整數(shù)會在Python解釋器啟動的時候,自動開辟一塊內(nèi)存存入這些整數(shù).也就是說這些小整數(shù)不會因?yàn)橐糜?jì)數(shù)為0而被刪除。
獲取變量的id,可以理解成變量在內(nèi)存中的地址 。
x = 10 print(x) # 獲取變量的變量值 print(id(x) ) # 獲取變量的id,可以理解成變量在內(nèi)存中的地址 print(type(x) ) # 獲取變量的數(shù)據(jù)類型,下章會詳細(xì)介紹數(shù)據(jù)類型
結(jié)果:
10
8790885504960
< class 'int'>
id相等的變量,值一定相等,因?yàn)橹赶虻氖峭粋€內(nèi)存地址;
值相等的變量,id不一定相等。
x = 11 y = x z = 11 print(x == y) # True print(x is y) # True print(x is z) # True,整數(shù)池的原因 x = 255 z = 255 print(id(x) is id(z) ) # False
以下實(shí)例,創(chuàng)建一個整型對象,值為 10,從后向前賦值,三個變量被賦予相同的數(shù)值。
a = b = c = d = 10 print(f'a:{a}, b:, c:{c}, d:cklkkey') #a:10, b:10, c:10, d:10
# 交叉賦值 x = 10 y = 20 x, y = y, x print(x, y) #20 10 # 相當(dāng)于使用臨時變量 x = 10 y = 20 temp = x x = y y = temp print(x, y) #20 10
您也可以為多個對象指定多個變量。例如:
a, b, c = 1, 2, "runoob"
以上實(shí)例,兩個整型對象 1 和 2 的分配給變量 a 和 b,字符串對象 "runoob" 分配給變量 c。
寫一個斐波納契數(shù)列 Fibonacci series:
# 兩個元素的總和確定了下一個數(shù) a, b = 0, 1 while b < 10: print(b, end=',') a, b = b, a+b # 1,1,2,3,5,8,
name = input('請輸入你的姓名:') pwd = input('請輸入你的密碼:') print(type(name)) print(type(pwd)) # 請輸入你的姓名:a # 請輸入你的密碼:1 # # 'str'>
無論我們輸入的值是數(shù)字類型、字符串類型、列表類型,input的接收值都是字符串類型。
%s:接收任意數(shù)據(jù)類型的數(shù)據(jù)
%d:接收數(shù)字類型的數(shù)據(jù)
name = 'nick' age = 19 print('my name is %s my age is %d' % (name, age)) # my name is nick my age is 19
{}:接收任意數(shù)據(jù)類型的數(shù)據(jù)。
name = 'nick' age = 19 #1、括號及其里面的字符 (稱作格式化字段) 將會被 format() 中的參數(shù)替換。 print("Hello, {}. You are {}.".format(name, age)) # Hello, nick. You are 19. 2、在括號中的數(shù)字用于指向傳入對象在 format() 中的位置 print("Hello, {1}. You are {0}-{0}.".format(age, name)) # Hello, nick. You are 19-19. 3、如果在 format() 中使用了關(guān)鍵字參數(shù), 那么它們的值會指向使用該名字的參數(shù)。 print("Hello, {name}. You are {age}-{age}.".format(age=age, name=name))# Hello, nick. You are 19-19. 4、位置及關(guān)鍵字參數(shù)可以任意的結(jié)合: print('站點(diǎn)列表 {0}, {1}, 和 {other}。'.format('Google', 'Runoob', other='Taobao'))
{<參數(shù)序號> : <格式控制標(biāo)記>}
: | <填充> | <對齊> | <寬度> | <,> | <.精度> | <類型> |
---|---|---|---|---|---|---|
引導(dǎo) 符號 | 填充的單個字符 | <: 左對齊 >: 右對齊 ^: 居中對齊 | 槽設(shè)定的輸出寬度 | 數(shù)字的千位分隔符 | 浮點(diǎn)數(shù)小數(shù) 或 字符串最大輸出長度 |
|
%c: 格式化字符及其ASCII碼
%s: 格式化字符串
%d: 格式化整數(shù)
%u: 格式化無符號整型
%o: 格式化無符號八進(jìn)制數(shù)
%x: 格式化無符號十六進(jìn)制數(shù)
%X: 格式化無符號十六進(jìn)制數(shù)(大寫)
%f: 格式化浮點(diǎn)數(shù),可指定小數(shù)點(diǎn)后的精度
%e: 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)
%E: 作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)(大寫)
%g: %f和%e的簡寫
%G: %f 和 %E 的簡寫
%p: 用十六進(jìn)制數(shù)格式化變量的地址
print("{0: =^20 }".format("PYTHON")) # '=======PYTHON=======' 使用等號,居中對齊 print("{0: *>20 }".format("BIT")) # '*****************BIT' 使用星號,文字右對齊 print("{:10}".format("BIT")) # 'BIT ' 總長度為10,不足以空格補(bǔ)足。在:后傳入一個整數(shù), 可以保證該域至少有這么多的寬度。 用于美化表格時很有用。 print("{0: ,.2f}".format(12345.6789)) # '12,345.68' 使用千分符,同時保留到小數(shù)點(diǎn)后兩位 print("{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)) # '110101001,?,425,651,1a9,1A9' print("{0:e},{0:E},{0:f},{0:%}".format(3.14)) # '3.140000e+00,3.140000E+00,3.140000,314.000000%'
可以使用 bin,oct,hex 可輸出數(shù)字的二進(jìn)制,八進(jìn)制,十六進(jìn)制形式,例如:
a = 0b111100 print(bin(a)) # '0b111100' print(oct(a)) # '0o74' print(hex(a)) # '0x3c'
字典, 然后使用方括號 [] 來訪問鍵值 :
table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('{0[Runoob]:d}; {0[Google]:d}; {0[Taobao]:d}'.format(table)) # 2; 1; 3
也可以通過在 table 變量前使用 ** 來實(shí)現(xiàn)相同的功能:
table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} print('{Runoob:d}; {Google:d}; {Taobao:d}'.format(**table)) # 2; 1; 3
f-string 是 python3.6 之后版本添加的,稱之為字面量格式化字符串,是新的格式化字符串的語法。
在字符串前面加上f或F,后面跟著字符串,字符串中的表達(dá)式用大括號 {} 包起來,它會將變量或表達(dá)式計(jì)算后的值替換進(jìn)去。
用了這種方式明顯更簡單了,不用再去判斷使用 %s,還是 %d。
name = "nick" age = 19 print(F"Hello, {name}. You are {age}.")#Hello, nick. You are 19. print(f'{age*2}')#38 salary = 6.6666 print(f'{salary:.2f}')#6.67 w = {'name': 'Runoob', 'url': 'www.runoob.com'} print(f'{w["name"]}: {w["url"]}') # 'Runoob: www.runoob.com'
在 Python 3.8 的版本中可以使用 = 符號來拼接運(yùn)算表達(dá)式與結(jié)果:
x = 1 print(f'{x+1}') # Python 3.6 # 2 x = 1 print(f'{x+1=}') # Python 3.8 # 'x+1=2'
+、 - 、* 、/ 、 //、 % 、**
# 除 print(10 / 3) # 3.3333333333333335 # 除,只取整數(shù)部分 print(10 // 3) # 3 print(10 // 4) # 2 # %:取余 print(10 % 3) # 1 # **,冪 print(10 ** 3) # 1000
and、 or、 not 。
優(yōu)先級:not>and>or
# 從左到右的方式找到邏輯運(yùn)算符,找到邏輯運(yùn)算符的左邊,左邊成立,再去找到邏輯運(yùn)算符的右邊 print(3 > 3 and 1 > 2 or 2 > 1) # False
>、 >=、 <、 <=、 ==、 !=(Pyhton3 已不支持 <> 運(yùn)算符,可以使用 != 代替)
=、 +=、 -=、 *=、 /=、 //=、 **=、 %=、:=(海象運(yùn)算符,可在表達(dá)式內(nèi)部為變量賦值。Python3.8 版本新增運(yùn)算符。)
is、 is not
is和==的區(qū)別:
is:用于判斷兩個變量引用對象是否為同一個(是否在同一塊內(nèi)存空間中),
==:用于判斷引用變量的值是否相等。
& : 按位與運(yùn)算符
| : 按位或運(yùn)算符
^: 按位異或運(yùn)算符
~ : 按位取反運(yùn)算符
<<: 左移動運(yùn)算符
>> : 右移動運(yùn)算符
a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b print( c)# 12 = 0000 1100 c = a | b print(c)# 61 = 0011 1101 c = a ^ b print( c)# 49 = 0011 0001 c = ~a print( c)# -61 = 1100 0011 c = a << 2 print(c)# 240 = 1111 0000 c = a >> 2 print(c)# 15 = 0000 1111
in、 not in
包括字符串,列表或元組等
a = 10 b = 20 list = [1, 2, 3, 4, 5] print(a in list) # false
如果需要某個運(yùn)算符優(yōu)先運(yùn)算,則加個括號,使用a and b is c == d
的是傻逼
hobby_list = ['read','run','sleep','fishing','piao'] # 如果取第2-3個愛好 _,hobby2,hobby3,*_ = hobby_list print(hobby2, hobby3) #run sleep
字典也是可以的,但是字典解壓縮的是key。
info = {'name': 'nick', 'age': 18} x, y = info print(x, y) #name age
Python 中用 elif 代替了 else if,所以if語句的關(guān)鍵字為:if – elif – else。
注意:
1、每個條件后面要使用冒號 :,表示接下來是滿足條件后要執(zhí)行的語句塊。
2、使用縮進(jìn)來劃分語句塊,相同縮進(jìn)數(shù)的語句在一起組成一個語句塊。
3、在Python中沒有switch – case語句。
# if if 條件: 代碼塊 # if...else if 條件: 代碼塊 else: 代碼塊 # if...elif....elif...else if 條件: 代碼塊 elif 條件: 代碼塊 elif 條件: 代碼塊 ...(可以寫任意個elif) else: 代碼塊
同樣需要注意冒號和縮進(jìn)。另外,在 Python 中沒有 do..while 循環(huán)。
#while while 條件: 代碼塊 #while + break while 條件: 代碼塊 break # 結(jié)束本層循環(huán),跳出循環(huán) # while + continue while 條件: 代碼塊 if 條件: 代碼塊 cotinue # 不執(zhí)行下面代碼,然后繼續(xù)循環(huán),即跳出本次循環(huán) 代碼塊 #while + else while 條件: 代碼塊 else: print('如果我沒有被break,我就會被打印出來')
實(shí)例:
n = 1 while n < 4: print(n) n += 1 else: print("a") # 1,2,3,a
使用循環(huán)嵌套來實(shí)現(xiàn)99乘法法則:
# 外邊一層循環(huán)控制行數(shù) # i是行數(shù) i = 1 while i <= 9: # 里面一層循環(huán)控制每一行中的列數(shù) j = 1 while j <= i: mut = j * i print("%d*%d=%d" % (j, i, mut), end=" ") j += 1 print("") i += 1 # 1*1=1 # 1*2=2 2*2=4 # 1*3=3 2*3=6 3*3=9 # 1*4=4 2*4=8 3*4=12 4*4=16 # 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 # 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 # 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 # 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 # 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
for循環(huán)可以遍歷任何序列的項(xiàng)目,如一個列表或者一個字符串。
for循環(huán)的循環(huán)次數(shù)受限于容器類型的長度,而while循環(huán)的循環(huán)次數(shù)需要自己控制。
#for for i in range/str/list/tuple/dict/set(可迭代對象): print(i) #for + break for i in range/str/list/tuple/dict/set(可迭代對象): print(i) break # 結(jié)束本層循環(huán) # for + continue for i in range/str/list/tuple/dict/set(可迭代對象): print(i) if 條件: continue # 結(jié)束本次循環(huán),即不執(zhí)行下面代碼,繼續(xù)循環(huán) 代碼塊 #for + else for i in range/str/list/tuple/dict/set(可迭代對象): print(i) else: print('如果我沒有被break,我就會被打印出來')
實(shí)例:
# for循環(huán)按照索引取值 name_list = ['nick', 'jason', 'tank', 'sean'] for i in range(len(name_list)): print(i, name_list[i]) # 0 nick # 1 jason # 2 tank # 3 sean
如果你需要遍歷數(shù)字序列,可以使用內(nèi)置range()函數(shù)。它會生成數(shù)列,例如:
for i in range(5): print(i) # 0 1 2 3 4
你也可以使用range指定區(qū)間的值:
for i in range(5, 9): print(i) # 5 6 7 8
也可以使range以指定數(shù)字開始并指定不同的增量(甚至可以是負(fù)數(shù),有時這也叫做'步長'):
for i in range(0, 10, 3): print(i) # 0 3 6 9
負(fù)數(shù):
for i in range(-10, -100, -30): print(i) # -10 -40 -70
您可以結(jié)合range()和len()函數(shù)以遍歷一個序列的索引,如下所示:
a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ'] for i in range(len(a)): print(i, a[i]) # 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ
還可以使用range()函數(shù)來創(chuàng)建一個列表:
a = list(range(5)) print(a) # [0, 1, 2, 3, 4]
1-100 的和:
print(sum(range(101)))
Python pass是空語句,是為了保持程序結(jié)構(gòu)的完整性。
pass 不做任何事情,一般用做占位語句,如下實(shí)例
while True: pass # 等待鍵盤中斷 (Ctrl+C)
最小的類:
class MyEmptyClass: pass
“Python中的變量、運(yùn)算符和流程控制實(shí)例代碼分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。