Python基础(二)--数据类型,运算符与流程控制
?
目錄
?
? ? ? ? ? ? ? ??Python基礎(chǔ)(二)--數(shù)據(jù)類型,運(yùn)算符與流程控制
1?數(shù)據(jù)類型
1.1 Python中的數(shù)據(jù)類型
1.2 整數(shù)類型(int)
1.3 布爾類型
1.4 浮點(diǎn)類型
1.5 復(fù)數(shù)類型
1.6 類型轉(zhuǎn)換
2 運(yùn)算符
2.1?算術(shù)運(yùn)算符
2.2 布爾運(yùn)算符
2.3 比較運(yùn)算符
2.4 位運(yùn)算符
2.5 賦值運(yùn)算符
2.6 運(yùn)算符優(yōu)先級(jí)
3 流程控制
3.1 選擇結(jié)構(gòu)
3.2 循環(huán)結(jié)構(gòu)
? ? ? ? ? ? ? ??Python基礎(chǔ)(二)--數(shù)據(jù)類型,運(yùn)算符與流程控制
1?數(shù)據(jù)類型
1.1 Python中的數(shù)據(jù)類型
在Python中,數(shù)據(jù)可以分為如下類型:
| 數(shù)值類型 | 整數(shù)類型:int 浮點(diǎn)類型:float 復(fù)數(shù)類型:complex |
| 布爾類型:bool | ? |
| 序列類型 | 列表:list 元組:tuple 字符串:str 字節(jié):bytes |
| 映射類型:dict | ? |
| 集合類型:set | ? |
| 其他內(nèi)置類型 | ? |
注意:①變量本身嚴(yán)格來說是沒有類型的,其所關(guān)聯(lián)的對(duì)象類型,這與其他語言的差別較大(C,Java等)。因此,我們常習(xí)慣的成Python的類型為“鴨子類型”,這是一種動(dòng)態(tài)類型的體現(xiàn);②由于變量必須要關(guān)聯(lián)一個(gè)具體的對(duì)象,才能確定變量的值,所以在定義變量時(shí),不能只給出變量的名字,必須同時(shí)要給出變量多關(guān)聯(lián)的對(duì)象;③Python2中還支持長整數(shù)類型(long),在Python3中取消。
1.2 整數(shù)類型(int)
我們數(shù)學(xué)上使用的整數(shù),例如,3,-50等,這些都是整數(shù)類型。整數(shù)類型支持四種進(jìn)制表示:①二進(jìn)制(使用0b或0B前綴)②八進(jìn)制(使用0o或0O前綴)③十進(jìn)制(無前綴)④十六進(jìn)制(使用0x或0X前綴,10?~ 15使用a ~ f或A?~ F表示)
# 二進(jìn)制 x = 0b10111 print(x) # 八進(jìn)制 x = 0o666 print(x) # 十進(jìn)制 x = 6 print(x) # 十六進(jìn)制 x = 0x1f66 print(x)結(jié)果為:,以十進(jìn)制的形式顯示
進(jìn)制轉(zhuǎn)換:①bin其他進(jìn)制轉(zhuǎn)換為二進(jìn)制②oct其他進(jìn)制轉(zhuǎn)換為八進(jìn)制③int其他進(jìn)制轉(zhuǎn)換為十進(jìn)制④hex其他進(jìn)制轉(zhuǎn)換為十六進(jìn)制
x = 666 print(bin(x)) print(oct(x)) print(int(x)) print(hex(x))結(jié)果為:
注意:返回的不是數(shù)值,是字符串
分割符_:當(dāng)數(shù)值較大時(shí)(尤其是二進(jìn)制),對(duì)程序的可讀性會(huì)造成影響,此時(shí),我們可以在數(shù)值之間使用一個(gè)_進(jìn)行分隔,從而提高程序的可讀性(Python3.6)。
number = 1234_5665_43211.3 布爾類型
布爾類型(bool)表示的是一種條件的判斷,具有兩個(gè)值:True與False。其中,True表示條件成立,即為“真”,而False表示條件不成立,即為“假”。
布爾類型是整數(shù)類型的子類型。實(shí)際上,True就是1,False就是0。因而,我們也可以使用布爾類型參與數(shù)學(xué)上的運(yùn)算,與使用1與0參與運(yùn)算的結(jié)果是一樣的。
1.4 浮點(diǎn)類型
浮點(diǎn)類型(float)就是數(shù)學(xué)上的小數(shù)類型。例如:6.0,-6.6等,都是浮點(diǎn)類型。在進(jìn)制表示上,浮點(diǎn)類型僅支持十進(jìn)制表示(這點(diǎn)不同于整數(shù)類型)。除了常規(guī)的表示方式外,浮點(diǎn)類型也可以使用數(shù)學(xué)上科學(xué)計(jì)數(shù)法的形式表示,例如:6.6e30
注意:①十進(jìn)制的整數(shù)類型不能使用0開頭,但是,浮點(diǎn)類型可以以0開頭。②浮點(diǎn)類型具有兩個(gè)特殊值:NaN(Not?A Number)與Infinity(無窮大),其中無窮大又可分為正無窮(+Infinity)與負(fù)無窮(-Infinity)。我們可以通過float函數(shù)來獲得這些值。NaN有一個(gè)特征,就是自己不等于自己,因此,我們不能通過==來判斷一個(gè)數(shù)值是不是NaN。
import sys # 浮點(diǎn)類型的范圍與實(shí)現(xiàn)有關(guān),通常使用程序中的double類型來實(shí)現(xiàn) f = 6.6e666 print(f) print(sys.float_info) print(sys.float_info.max) print(sys.float_info.min)結(jié)果為:
# float類型的特殊值 print(float("NaN")) print(float("Infinity")) n = float("NaN") # NaN是特殊的值,不等于任何值,包括自身 print(n == n) # 因?yàn)镹aN不等于任何值,所以不能用==進(jìn)行判斷,而是使用math提供的函數(shù)isnan進(jìn)行判斷,如果參數(shù)是nan,則返回true,否則返回False import math print(math.isnan(n))結(jié)果為:
浮點(diǎn)類型的不精確性:
在使用浮點(diǎn)類型時(shí),我們需要留意,浮點(diǎn)類型在計(jì)算機(jī)中僅是近似的存儲(chǔ),浮點(diǎn)類型是不精確的。因此,我們要避免進(jìn)行如下的操作:①避免數(shù)量級(jí)相差很大的浮點(diǎn)值之間進(jìn)行運(yùn)算②避免進(jìn)行等量的比較。
# 避免數(shù)量級(jí)相差很大的兩個(gè)浮點(diǎn)數(shù)進(jìn)行計(jì)算 f1 = 6e20 f2 = 6 print(f1 + f2) # 避免進(jìn)行等量的判斷 f1 = 0.1 f2 = 0.2 print(f1 + f2) print(f1 + f2 == 0.3)考慮到浮點(diǎn)類型的不精確性,因此,如果我們需要進(jìn)行精確計(jì)算時(shí),我們可以使用decimal模塊中的Decimal類來實(shí)現(xiàn),該類提供精確的浮點(diǎn)計(jì)算。此外,我們也可以指定Decimal的計(jì)算精度,即計(jì)算結(jié)果最多保留的有效數(shù)字位數(shù),默認(rèn)為28位有效數(shù)字。
但是Decimal要慎用,因?yàn)榉浅O男阅?/p> # Decimal類型進(jìn)行精確的浮點(diǎn)計(jì)算 import decimal x = decimal.Decimal(0.1) y = decimal.Decimal(0.2) print(x) print(y) # Decimal計(jì)算,默認(rèn)有28位有效數(shù)字 # 獲取decimal計(jì)算上下文環(huán)境后,即可設(shè)置有效位數(shù) context = decimal.getcontext() context.prec = 10 x = decimal.Decimal(0.1) y = decimal.Decimal(0.2) print(x + y)
1.5 復(fù)數(shù)類型
復(fù)數(shù)類型(complex)類似于數(shù)學(xué)上的復(fù)數(shù)。含有虛部(使用j或J后綴)的數(shù)值為復(fù)數(shù)類型。例如:3 + 5j,-2 - 3j(數(shù)學(xué)中虛部后綴為i)。復(fù)數(shù)分為實(shí)部與虛部兩個(gè)部分,我們可以通過real與imag屬性分別獲取復(fù)數(shù)的實(shí)部與虛部的值。
x = 6 + 8j print(x.real) print(x.imag)1.6 類型轉(zhuǎn)換
(1)獲取數(shù)據(jù)類型
我們可以通過type函數(shù)獲取變量的類型,準(zhǔn)確的講,應(yīng)該是變量所關(guān)聯(lián)的對(duì)象的類型。
a = 6 b = 6.6 c = 6 + 8j # int,float,complex可以進(jìn)行混合運(yùn)算,結(jié)果類型為參與運(yùn)算的數(shù)據(jù)類型中較高的一個(gè):int<float<complex print(type(a + b)) print(type(a + c)) print(type(b + c))(2)類型轉(zhuǎn)換函數(shù)
Python中為我們提供了如下的轉(zhuǎn)換函數(shù):
①int(value):將數(shù)值類型或字符串轉(zhuǎn)換為整數(shù)(int)類型。如果沒有參數(shù),返回0
②float(value):將數(shù)值類型或字符串轉(zhuǎn)換為浮點(diǎn)(float)類型。如果沒有參數(shù),返回0
③complex(real,imag):根據(jù)實(shí)部與虛部(可選)創(chuàng)建一個(gè)復(fù)數(shù)。如果沒有參數(shù),返回0j
④bool(value):參數(shù)為真值時(shí),返回True,否則返回False
a = 6 b = 6.6 c = True d = 6 + 8j # float類型轉(zhuǎn)換為int類型時(shí),去掉小數(shù)點(diǎn)后面的內(nèi)容,取整數(shù)部分,int,float轉(zhuǎn)換成complex時(shí),虛部為0 print(int(b)) print(complex(a)) print(complex(b)) # 注意:復(fù)數(shù)類型就不能夠通過int或float轉(zhuǎn)換為整數(shù)或浮點(diǎn)類型。 # print(int(d)) 這是不合法的# 在Python中任何類型都能轉(zhuǎn)換成bool類型。True就是1,False就是0 print(bool(0),bool(6),bool(6.6),bool(6+6j)) print(int(True),int(False),float(True),float(False),complex(True),complex(False))其他:①int函數(shù)還可以提供第二個(gè)參數(shù),指定解析轉(zhuǎn)換時(shí),使用的進(jìn)制。此時(shí),第一個(gè)參數(shù)需要是字符串類型(或字節(jié)等類型),不能是數(shù)值類型。例如:int(“600”, 16),則會(huì)根據(jù)16進(jìn)制來解析600。如果沒有指定第二個(gè)參數(shù),則默認(rèn)為十進(jìn)制。
2 運(yùn)算符
運(yùn)算符,即具有特殊計(jì)算規(guī)則的符號(hào)。運(yùn)算符涉及到的,參與運(yùn)算的數(shù)據(jù),稱為操作數(shù)。不同的運(yùn)算符,涉及的操作數(shù)也不相同。由運(yùn)算符與操作數(shù)結(jié)合起來的計(jì)算式,稱為“表達(dá)式”。
運(yùn)算符可分為:算術(shù)運(yùn)算符;布爾運(yùn)算符;比較運(yùn)算符;位運(yùn)算符;賦值運(yùn)算符
2.1?算術(shù)運(yùn)算符
用來進(jìn)行類似數(shù)學(xué)上的加減乘除運(yùn)算
| 符號(hào) | 說明 |
| x +?y | 加法運(yùn)算,返回x與y的和。 |
| x – y | 減法運(yùn)算,返回x與y的差。 |
| x *?y | 乘法運(yùn)算,返回x與y的積。 |
| x /?y | 除法運(yùn)算,返回x與y的商(浮點(diǎn)類型)。 |
| x //?y | 除法運(yùn)算,返回x與y的商(向下取整)。 |
| x %?y | 取模運(yùn)算,返回x模y的結(jié)果。 |
| x **?y | 乘方運(yùn)算,返回x的y次方。 |
| +x | 正號(hào),x的值不會(huì)改變,該符號(hào)可以省略。 |
| -x | 負(fù)號(hào),取x的相反數(shù)。 |
在除法運(yùn)算時(shí),除數(shù)不能為0,否則會(huì)產(chǎn)生錯(cuò)誤(ZeroDivisionError)。
取模運(yùn)算(“Module Operation”)和取余運(yùn)算(“Complementation ”)兩個(gè)概念有重疊的部分但又不完全一致。主要的區(qū)別在于對(duì)負(fù)整數(shù)進(jìn)行除法運(yùn)算時(shí)操作不同。
取余與取模的差別:取余向0取整(余數(shù)符號(hào)與被除數(shù)相同),取模向下取整(余數(shù)符號(hào)與除數(shù)相同)。
被除數(shù) -?除數(shù) * 商 = 余數(shù),被除數(shù) = 除數(shù) * 商 + 余數(shù)
# 正數(shù)的取余運(yùn)算與取模運(yùn)算結(jié)果一樣 print(7 % 4) # 負(fù)數(shù)的取模運(yùn)算: # 被除數(shù)為-7,除數(shù)為4,商為-1.75,向下取整為-2(取模),向0取整為-1(取余) # 根據(jù)公式:被除數(shù) - 除數(shù) * 商 = 余數(shù) 得 -7 - 4*(-2)=1 print(-7 % 4)2.2 布爾運(yùn)算符
布爾運(yùn)算符也稱邏輯運(yùn)算符
| 符號(hào) | 說明 |
| x and y | 如果x為True,返回y,否則返回x。 |
| x or?y | 如果x為True,返回x,否則返回y。 |
| not?x | 如果x為True,返回False,否則返回True。 |
x與y可以是任意類型,因?yàn)樵赑ython中,任意類型都可以轉(zhuǎn)換為布爾類型。
# and連接兩個(gè)表達(dá)書,表示并且。兩個(gè)表達(dá)式都為True,整個(gè)表達(dá)式才為True print(6 == 8 and 6 ==6) # or連接兩個(gè)表達(dá)式,表示或。兩個(gè)表達(dá)式中有一個(gè)為True,整個(gè)表達(dá)式為True print(6 == 8 or 6 ==6) # not表示對(duì)條件的否定。True-》False。False-》True print(not True)注意:and與的表達(dá)式未必一定是bool類型,可以是任意類型,因?yàn)槿魏晤愋投伎梢赞D(zhuǎn)換成bool類型
# and,如果如果第一個(gè)表達(dá)式為False,第二個(gè)表達(dá)式不是True或False,則返回第一個(gè)表達(dá)式;如果第一個(gè)表達(dá)式為True,則返回第二個(gè)表達(dá)式 # or,與and相反,如果第一個(gè)表達(dá)式為True,返回第一個(gè)表達(dá)式,否則返回第二個(gè)表達(dá)式 print(6 and "a") print(6 or "a") #and與or的短路操作,當(dāng)and的第一個(gè)表達(dá)式為False,或者or的第一個(gè)表達(dá)式為True,此時(shí)就可以確定整個(gè)表達(dá)式的值,第二個(gè)表達(dá)式會(huì)直接跳過,不會(huì)執(zhí)行 print(0 and print("不執(zhí)行"))2.3 比較運(yùn)算符
比較運(yùn)算符執(zhí)行的是比較運(yùn)算,如果表達(dá)式成立,返回True,否則返回False。
| 符號(hào) | 說明 |
| x >?y | 如果x大于y,返回True,否則返回False。 |
| x >= y | 如果x大于等于y,返回True,否則返回False。 |
| x <?y | 如果x小于y,返回True,否則返回False。 |
| x <=?y | 如果x小于等于y,返回True,否則返回False。 |
| x ==?y | 如果x等于y,返回True,否則返回False。 |
| x !=?y | 如果x不等于y,返回True,否則返回False。 |
| x is?y | 如果x與y是同一個(gè)對(duì)象,返回True,否則返回False。 |
| x is not y | 如果x與y是不同的對(duì)象,返回True,否則返回False。 |
在Python語言中,比較運(yùn)算符支持鏈?zhǔn)奖容^,在java語言中是不支持的。x < y < z相當(dāng)于x < y and y < z,不同之處僅在于,后者中y只會(huì)計(jì)算一次。鏈?zhǔn)奖容^與拆分成and或or連接的表達(dá)式一樣,也會(huì)進(jìn)行短路操作。
is與==,is not與!=的區(qū)別在于,==與!=比較的是對(duì)象內(nèi)部的值是否相等,而is與is not比較的是兩個(gè)對(duì)象是否為同一個(gè)對(duì)象。
?
2.4 位運(yùn)算符
位運(yùn)算符提供的是對(duì)位(bit)進(jìn)行的操作。位運(yùn)算符的操作數(shù)要求是整數(shù)類型(布爾類型)。位運(yùn)算符如下表所示
| 符號(hào) | 說明 |
| x & y | x與y按位與運(yùn)算,如果兩個(gè)位都是1,結(jié)果為1,否則結(jié)果為0(有0則結(jié)果為0)。 |
| x | y | x與y按位或運(yùn)算,如果兩個(gè)位都是0,結(jié)果為0,否則結(jié)果為1(有1則結(jié)果為1)。 |
| x ^?y | x與y按位異或運(yùn)算,如果兩個(gè)位相同,則結(jié)果為0,如果兩個(gè)位不同,則結(jié)果為1(有1則為1,但又不同時(shí)為1)。 |
| x <<?y | 將x向左移動(dòng)y位,右側(cè)以0進(jìn)行填充。y不能為負(fù)值,否則會(huì)產(chǎn)生ValueError。 |
| x >>?y | 將x向右移動(dòng)y位,左側(cè)以符號(hào)位進(jìn)行填充。y不能為負(fù)值,否則會(huì)產(chǎn)生ValueError。 |
| ~x | 對(duì)x進(jìn)行按位取反,即1變?yōu)?,0變?yōu)?。 |
注意:布爾類型作為整數(shù)類型的子類型,也可以參與位運(yùn)算,但是,最好不要這樣,因?yàn)椴紶栴愋偷淖饔檬沁M(jìn)行邏輯上的判斷,而不是當(dāng)成數(shù)值1與0參與數(shù)學(xué)運(yùn)算。
?
2.5 賦值運(yùn)算符
賦值運(yùn)算符包括簡單賦值運(yùn)算符與復(fù)合賦值運(yùn)算符。
| 符號(hào) | 說明 |
| x = y | 簡單賦值運(yùn)算。即x關(guān)聯(lián)y所關(guān)聯(lián)的對(duì)象。 |
| x op=?y | 復(fù)合賦值運(yùn)算。op可以是任意二元算術(shù)運(yùn)算符與二元位運(yùn)算符。 x?op= y相當(dāng)于x?= x op y。例如x?+= y相當(dāng)于x?= x + y。 |
?
2.6 運(yùn)算符優(yōu)先級(jí)
同一行的運(yùn)算符具有相同的優(yōu)先級(jí)從高到低進(jìn)行排列。如下:
| 運(yùn)算符優(yōu)先級(jí) |
| . ???() ???[] |
| ** |
| +(正號(hào)) ???-(負(fù)號(hào)) ???~ |
| * ???/ ???// ???% |
| + ???- |
| << ???>> |
| & |
| ^ |
| | |
| in ???not in ???is ???is not ???< ???<= ???> ???>= ???== ???!= |
| not |
| and |
| or |
| = ???op=(+ - * / // % ** >> << & ^ |) |
當(dāng)我們?cè)谑褂帽磉_(dá)式,無法確定優(yōu)先級(jí)時(shí),我們可以使用小括號(hào)()來調(diào)整表達(dá)式的結(jié)合性,小括號(hào)()的優(yōu)先級(jí)是最高的。
?
3 流程控制
流程:即程序執(zhí)行的過程。程序的三種結(jié)構(gòu):順序結(jié)構(gòu)(按部就班,自頂而下的去執(zhí)行的);選擇結(jié)構(gòu);循環(huán)結(jié)構(gòu)
3.1 選擇結(jié)構(gòu)
(1)if
縮進(jìn)的語法:縮進(jìn)大小隨意,但是要保持一致。按照慣例,使用4個(gè)空格。
if 表達(dá)式:
? ? if語句體
如果表達(dá)式為True,或者可以轉(zhuǎn)換為True則執(zhí)行語句體,否則不執(zhí)行
age = 20 if age >18:print("成年了") print("沒有縮進(jìn),不是if的語句體")(2)if-else
提供兩條分支。
age = 16 if age >18:print("成年了") else:print("未成年")(3)if-elif
可以實(shí)現(xiàn)多分支判斷,if-else只能實(shí)現(xiàn)兩分支判斷
if 表達(dá)式:
? ? 語句體
elif 表達(dá)式:
? ? 語句體
更多的elif 表達(dá)式:
? ? 語句體
# 注意:多分支選擇條件有包含關(guān)系,需要將范圍小的放在前面,范圍大的放在后面 number = int(input("輸入數(shù)字")) if number > 90:print("A") elif number > 80:print("B") elif number > 70:print("C") elif number > 60:print("D")(4)if-elif-else
if 表達(dá)式:
? ? 語句體
elif 表達(dá)式:
? ? 語句體
...
else:
? ? 語句體
# 注意:多分支選擇條件有包含關(guān)系,需要將范圍小的放在前面,范圍大的放在后面 number = int(input("輸入數(shù)字")) if number > 90:print("A") elif number > 80:print("B") elif number > 70:print("C") elif number > 60:print("D") else:print("E")(5)if-else的簡化
類似于其他語言中的三元運(yùn)算符。格式為:
? ? 表達(dá)式1 if 條件表達(dá)式 else 表達(dá)式2
其中,條件表達(dá)式執(zhí)行條件判斷,如果條件表達(dá)式的值為True,則返回表達(dá)式1的值,否則返回表達(dá)式2的值。
number = int(input("輸入數(shù)字")) print("小" if 1<= number <3 else ("大" if 3<= number<6 else "輸入有誤"))(6)if嵌套
if是嵌套使用的,用來多層選擇分支的判斷。
gender = "男" age = 20 if gender == "男":print("男性")if age >= 18:print("做苦力")else:print("玩耍") else:print("女性")if age >= 18:print("做飯")else:print("玩耍")(7)斷言
斷言:判斷某些語句是否正確。通過斷言,我們可以為應(yīng)用程序加入調(diào)試信息,從而檢測程序關(guān)鍵點(diǎn)位置的準(zhǔn)確性。
斷言使用assert關(guān)鍵字,語法格式為:
? ? assert 表達(dá)式? ? ? ? 或? ? ? ? ??assert 表達(dá)式,錯(cuò)誤信息
在執(zhí)行斷言語句時(shí),會(huì)對(duì)表達(dá)式1進(jìn)行求值,如果該值轉(zhuǎn)換為布爾類型后為False,則會(huì)產(chǎn)生錯(cuò)誤信息。其中,第二種形式的錯(cuò)誤信息是可選的,如果給出錯(cuò)誤信息,則會(huì)在表達(dá)式為False的時(shí)候,輸出我們指定的錯(cuò)誤信息。
斷言有什么用處呢?我們可以自行通過if語句,使用raise拋出異常來實(shí)現(xiàn)啊。其實(shí)斷言底層其實(shí)就是通過if語句判斷與異常來實(shí)現(xiàn)的。
斷言是通過__debug__來控制的,如果該變量為True,則會(huì)開啟斷言,進(jìn)行判斷,一旦斷言表達(dá)式為False,就會(huì)產(chǎn)生異常。如果該變量為False,則不會(huì)開啟斷言,就算斷言表達(dá)式為False,也不會(huì)產(chǎn)生異常(因?yàn)楦緵]有執(zhí)行)。__debug__是Python中的內(nèi)置常量值,該常量值默認(rèn)為True,如果在運(yùn)行Python時(shí),命令行指定了-O選項(xiàng),則該常量值為False。因此,我們可以方便的開啟與關(guān)閉斷言(通過-O選項(xiàng))。這比使用if語句要靈活,因?yàn)槭褂胕f語句,程序會(huì)無條件的判斷,無法進(jìn)行控制。
password1 = input("請(qǐng)輸入密碼") password2 = input("請(qǐng)?jiān)俅屋斎朊艽a") # 設(shè)下斷言,當(dāng)兩次密碼一致才進(jìn)行后續(xù)的操作 assert password1 == password2 print("繼續(xù)執(zhí)行")3.2 循環(huán)結(jié)構(gòu)
循環(huán)就是重復(fù)性的執(zhí)行一件相同或相似的事情
(1)while
while 表達(dá)式:
? ? 循環(huán)體
如果表達(dá)式為true則重復(fù)執(zhí)行語句體
x = 0 y = 10 sum = 0 while x <= 10:sum += xx += 1 print(sum)(2)for
for 變量 in 可迭代對(duì)象:
? ? 循環(huán)體
對(duì)可迭代對(duì)象的每個(gè)值,依次賦值給變量,然后執(zhí)行一次循環(huán)體
# range函數(shù),能夠產(chǎn)生一個(gè)區(qū)間的整數(shù)值,是一個(gè)可迭代對(duì)象 # range(end) 產(chǎn)生0-end區(qū)間的整數(shù)值,包括0,不包括end # range(start,end) 產(chǎn)生start-end區(qū)間的整數(shù)值,包括start,不包括end # range(start,end,step) 產(chǎn)生start-end區(qū)間的整數(shù)值,包括start,不包括end,step指定步長,默認(rèn)為1 for x in range(2,10,2):print(x,end=" ")(3)循環(huán)嵌套
循環(huán)嵌套,是指外層循環(huán)的內(nèi)部,還有內(nèi)層循環(huán),即內(nèi)層循環(huán)作為外層循環(huán)的循環(huán)體。當(dāng)循環(huán)嵌套時(shí),外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)都會(huì)完整的執(zhí)行一輪。如果外層循環(huán)會(huì)執(zhí)行m次,內(nèi)層循環(huán)會(huì)執(zhí)行n次,則總共會(huì)執(zhí)行m * n次。
for i in range(1,5):for j in range(1,i+1):print("*",end= "")print()(4)break與else
break只能在循環(huán)中使用。else可以跟隨在for或while循環(huán)之后,當(dāng)循環(huán)正常執(zhí)行完畢,會(huì)執(zhí)行else語句,如果循環(huán)非正常執(zhí)行完畢,而是通過break跳出循環(huán),則else語句塊不會(huì)得到執(zhí)行。else語句是可選的。
# break用于提前完成任務(wù),結(jié)束循環(huán) for i in range(1,10):if i == 5:print("i為5")break # for 與 while循環(huán)可以加上一個(gè)可選的else,如果循環(huán)沒有因?yàn)閎reak提前結(jié)束,則執(zhí)行else語句體,否則不執(zhí)行 num = 6 for i in range(1,10):if i == num:print("存在num")break else:print("不存在num")(5)continue
continue只能用在循環(huán)語句中。用來結(jié)束本次循環(huán),開啟下一次循環(huán),對(duì)后續(xù)的循環(huán)沒有影響
注意:break與continue基本只會(huì)用在選擇判斷中。無條件的break與continue雖然語法上沒有錯(cuò)誤,但從實(shí)際的角度來說是沒有意義的。
# continue用來表示當(dāng)前循環(huán)已經(jīng)不滿足條件時(shí),可以使用continue提前結(jié)束本次循環(huán),開啟對(duì)下一個(gè)值進(jìn)行判讀。 for i in range(1,10):if i == 5:continueprint(i,end=" ")?
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Python基础(二)--数据类型,运算符与流程控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 钩子线程_java-钩子线程
- 下一篇: 美团差评数据分析,python代码实现