版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第
4
章
運(yùn) 算 符XXXX
大學(xué)XX
學(xué)院XXX
教授2學(xué)習(xí)目標(biāo):掌握算術(shù)與賦值運(yùn)算符的使用掌握比較與邏輯運(yùn)算符的使用掌握成員與身份運(yùn)算符的使用熟悉三目、集合與位運(yùn)算符的使用理解運(yùn)算符的優(yōu)先級(jí)理解計(jì)算思維過程及應(yīng)用思政內(nèi)涵:運(yùn)算優(yōu)先級(jí)的變化可能導(dǎo)致問題的解決結(jié)果截然不同,廣大學(xué)子要善于抓住事物的主要矛盾,培養(yǎng)辯證思維能力。4章運(yùn)算
符34.1 算術(shù)運(yùn)算符算術(shù)運(yùn)算符即數(shù)學(xué)運(yùn)算符,用來對(duì)數(shù)字進(jìn)行數(shù)學(xué)運(yùn)算,其中+和*可以對(duì)字符串進(jìn)行運(yùn)算。表
4-1
列出了Python
支持的算術(shù)運(yùn)算符及其功能描述與實(shí)例。表
4-1 算術(shù)運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述運(yùn)算實(shí)例+數(shù)值加或字符串拼接7+2=9,"ab"+"cd"="abcd"-減7-2=5*數(shù)值乘或字符串重復(fù)7*2=14,"ab"*3="ababab"/除7/2=3.5//整除(只保留商的整數(shù)部分)7//2=3%取余(返回除法的余數(shù))7%2=1**冪運(yùn)算7**2=4944.1.1 加法運(yùn)算符1.
數(shù)值加法當(dāng)+用于數(shù)值時(shí)表示加法,加法運(yùn)算很簡單,和數(shù)學(xué)中的規(guī)則一樣,示例代碼如程序段P4.1
所示。P4.1
數(shù)值加法運(yùn)算m=
10n=
97sum1=m+
nx=
7.2y=
15.3sum2=x+
yprint("sum1=%d,sum2=%.2f"%(sum1,sum2)
)4章運(yùn)算
符5運(yùn)行代碼,輸出結(jié)果如下。sum1=107,
sum2=22.502.
拼接字符串當(dāng)+用于字符串時(shí),有拼接字符串(將兩個(gè)字符串連接為一個(gè))的作用,示例代碼如程序段P4.2
所示。P4.2
拼接字符串name
=
"python
語言學(xué)習(xí)網(wǎng)"url="/"age=
10info
=
name
+
"的網(wǎng)址是"
+
url
+",已經(jīng)"
+
str(age)
+
"歲了。"print(info)6運(yùn)行代碼,輸出結(jié)果如下。python
語言學(xué)習(xí)網(wǎng)的網(wǎng)址是/,已經(jīng)
10
歲了。str()函數(shù)用來將整數(shù)類型的age
轉(zhuǎn)換成字符串。乘法運(yùn)算符數(shù)值乘法當(dāng)*用于數(shù)值時(shí)表示乘法,乘法運(yùn)算也和數(shù)學(xué)中的規(guī)則相同,示例代碼如程序段P4.3
所示。P4.3
乘法運(yùn)算n=4*
25f=34.5*
2print(n,",",
f)4章運(yùn)算
符7運(yùn)行代碼,輸出結(jié)果如下。100,
69.02.
重復(fù)字符串當(dāng)*用于字符串時(shí),表示重復(fù)字符串,即將多個(gè)同樣的字符串連接起來。示例代碼如程序段P4.4
所示。P4.4
重復(fù)字符串str1="hello"print(str1*
4)運(yùn)行代碼,輸出結(jié)果如下。hellohellohello
hello8Python
中的算術(shù)運(yùn)算符既支持相同類型的數(shù)值運(yùn)算,也支持不同類型的數(shù)值混合運(yùn)算。在進(jìn)行混合運(yùn)算時(shí),Python
會(huì)強(qiáng)制對(duì)數(shù)值的類型進(jìn)行臨時(shí)類型轉(zhuǎn)換。臨時(shí)類型轉(zhuǎn)換遵循如下原則。當(dāng)整型與浮點(diǎn)型進(jìn)行混合運(yùn)算時(shí),將整型轉(zhuǎn)換為浮點(diǎn)型。當(dāng)其他類型與復(fù)數(shù)類型進(jìn)行運(yùn)算時(shí),將其他類型轉(zhuǎn)換為復(fù)數(shù)類型。使用整型數(shù)據(jù)分別與浮點(diǎn)型數(shù)據(jù)和復(fù)數(shù)類型數(shù)據(jù)進(jìn)行運(yùn)算,示例代碼如程序段P4.5
所示。P4.5
混合運(yùn)算print(10/2.0)print(10-(3+5j))5.0運(yùn)行代碼,輸出結(jié)果如下。7-5j4章運(yùn)算
符94.2
賦值運(yùn)算符賦值運(yùn)算符用來把右側(cè)的值傳遞給左側(cè)的變量,可以直接將右側(cè)的值賦給左側(cè)的變量,也可以進(jìn)行某些運(yùn)算后再賦給左側(cè)的變量。Python
中最基本的賦值運(yùn)算符是=,結(jié)合其他運(yùn)算符,=還能擴(kuò)展出更強(qiáng)大的賦值運(yùn)算符。表
4-2
列出了Python
支持的賦值運(yùn)算符及其功能描述與實(shí)例。表
4-2 賦值運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述實(shí)例(x
是變量)=簡單賦值運(yùn)算符x=7+2,即將
7+2
的運(yùn)算結(jié)果賦值給x+=加法賦值運(yùn)算符x
+=7
等效于x=x+7-=減法賦值運(yùn)算符x
-=7
等效于x=x-7*=乘法賦值運(yùn)算符x
*=7
等效于x=x*710/=除法賦值運(yùn)算符x
/=7
等效于x=x/7//=整除賦值運(yùn)算符x
//=7
等效于x=x//7%=取模賦值運(yùn)算符x
%=7
等效于x=x%7**=冪賦值運(yùn)算符x
**=7
等效于x=x**74.2.1 基本賦值運(yùn)算符符號(hào)=是Python
中最基本的賦值運(yùn)算符,用來將一個(gè)表達(dá)式的值賦給另一個(gè)變量,支持連續(xù)賦值和多元賦值,示例代碼如程序段P4.6
所示。P4.6
基本賦值、連續(xù)賦值和多元賦值n1=
100f1=
47.54章運(yùn)算
符11s1=
"/python/"a=b=c
=
100 #
連續(xù)賦值x,y,z=1,2,
'a
string' #
多元賦值4.2.2
擴(kuò)展賦值運(yùn)算符擴(kuò)展后的賦值運(yùn)算符將使得賦值表達(dá)式的書寫更加優(yōu)雅和方便。但是,擴(kuò)展賦值運(yùn)算符只能針對(duì)已經(jīng)存在的變量賦值,因?yàn)橘x值過程中需要變量本身參與運(yùn)算,如果沒有提前定義變量,它的值就是未知的,無法參與運(yùn)算。Python3.8
中新增了一個(gè)賦值運(yùn)算符——海象運(yùn)算符“∶=”,該運(yùn)算符用于在表達(dá)式內(nèi)部為變量賦值,因其形似海象的眼睛和長牙而得此名。海象運(yùn)算符的用法示例代碼如程序段P4.7
所示。12P4.7
海象運(yùn)算符示例x=5sum=x+(y
:=10)print(sum)運(yùn)行代碼,輸出結(jié)果如下。15
4.3 比較運(yùn)算符比較運(yùn)算符又稱為關(guān)系運(yùn)算符,用于對(duì)常量、變量或表達(dá)式的結(jié)果進(jìn)行大小比較。如果這種比較是成立的,則返回
True(真);反之則返回
False(假)。表4-3
列出了Python
支持的比較運(yùn)算符及其功能描述與實(shí)例。4章運(yùn)算
符13表
4-3比較運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述實(shí)例(x=10,y=20)==等于——比較兩個(gè)對(duì)象是否相等x==y
返回False!=不等于——比較兩個(gè)對(duì)象是否不相等x!=y 返回True>大于——返回
x
是否大于yx>y
返回False<小于——返回
x
是否小于yx<y
返回True>=大于等于——返回
x
是否大于等于yx>=y
返回False<=小于等于——返回
x
是否小于等于yx<=y
返回True符號(hào)=和==是兩個(gè)不同的運(yùn)算符,=用來賦值,而==用來判斷兩邊的值是否相等。所有比較運(yùn)算符返回
1
表示真,返回
0
表示假。這分別與特殊的變量True
和False
等價(jià)。示例代碼如程序段P4.8
所示。14P4.8
比較運(yùn)算符x=10y=20print('x=10,y=20')print('x==y:',x==y)print('x!=y:',x!=y)print('x>y:',x>y)print('x<y:',x<y)print('x>=y:',x>=y)print('x<=y:',x<=y)運(yùn)行代碼,輸出結(jié)果如下。x==y:
Falsex!=y:
True4章運(yùn)算
符15x>y:
Falsex<y:Truex>=y:
Falsex<=y:
True
4.4 邏輯運(yùn)算符數(shù)學(xué)中我們學(xué)過邏輯運(yùn)算。例如,若p
為真命題,q
為假命題,那么“p與q”為假,“p
或q”為真,“非
q”為真。Python
中也有類似的邏輯運(yùn)算,表
4-4
列出了Python
支持的邏輯運(yùn)算符及其功能描述與實(shí)例。表
4-4 邏輯運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述實(shí)例(x=10,y=20)and邏輯與運(yùn)算,如果x
為False,那么x
and
y
返x
and
y
返回
20,為True16回
False,否則返回y
的計(jì)算值or邏輯或運(yùn)算,如果x
為非
0,那么x
or
y
返回x的計(jì)算值,否則返回y
的計(jì)算值x
or
y
返回
10,為Truenot邏輯非運(yùn)算,如果x
為
True,那么not
x
返回False。如果
x
為
False,那么
not
x
返回Truenot
x
返回False邏輯運(yùn)算符一般和比較運(yùn)算符結(jié)合使用。例如,14>6
and
45.6
>
90,因?yàn)?/p>
14>6
結(jié)果為
True,45.6>90
結(jié)果為False,所以整個(gè)表達(dá)式的結(jié)果為
False。示例代碼如程序段P4.9
所示。P4.9
邏輯運(yùn)算符與比較運(yùn)算符結(jié)合使用age
=
int(input("請(qǐng)輸入年齡:"))height
=
int(input("請(qǐng)輸入身高:"))if
age>=18
and
age<=30
and
height
>=170
and
height
<=
185
:4章運(yùn)算
符17print("恭喜,你符合報(bào)考飛行員的條件")else:print("抱歉,你不符合報(bào)考飛行員的條件")運(yùn)行代碼,輸入數(shù)據(jù),輸出結(jié)果如下。請(qǐng)輸入年齡:23請(qǐng)輸入身高:178恭喜,你符合報(bào)考飛行員的條件Python
邏輯運(yùn)算符可以用來操作任何類型的表達(dá)式,不管表達(dá)式是不是bool
類型;同時(shí),邏輯運(yùn)算的結(jié)果也不一定是bool
類型,它也可以是任意類型。示例代碼如程序段P4.10
所示。P4.10
數(shù)據(jù)類型的邏輯運(yùn)算print(100and
200)18print(45and
0)print(""or"/python/")print(18.5or
"/python/")運(yùn)行代碼,輸出結(jié)果如下。200 0 /python/
18.5由示例結(jié)果可知,and
和or
運(yùn)算符會(huì)將其中一個(gè)表達(dá)式的值作為最終結(jié)果,而不是將
True
或False
作為最終結(jié)果。在Python
中,and
和or
不一定會(huì)計(jì)算右邊表達(dá)式的值,有時(shí)只計(jì)算左邊表達(dá)式的值就能得到最終結(jié)果。and
運(yùn)算符執(zhí)行規(guī)則對(duì)于and
運(yùn)算符,當(dāng)兩邊的值都為真時(shí)最終結(jié)果才為真,但是只要其中有一個(gè)值為假,那么最終結(jié)果就是假,因此,Python
按照下面的規(guī)則執(zhí)行and運(yùn)算。4章運(yùn)算
符19(1)
如果左邊表達(dá)式的值為假,那么就不用計(jì)算右邊表達(dá)式的值了,因?yàn)椴还苡疫叡磉_(dá)式的值是什么,都不會(huì)影響最終結(jié)果,最終結(jié)果都是假,此時(shí)
and
會(huì)把左邊表達(dá)式的值作為最終結(jié)果。(2)
如果左邊表達(dá)式的值為真,那么最終值是不能確定的,and
會(huì)繼續(xù)計(jì)算右邊表達(dá)式的值,并將右邊表達(dá)式的值作為最終結(jié)果。2)
or
運(yùn)算符執(zhí)行規(guī)則對(duì)于or
運(yùn)算符,情況是類似的,兩邊的值都為假時(shí)最終結(jié)果才為假,只要其中有一個(gè)值為真,那么最終結(jié)果就是真,因此,Python
按照下面的規(guī)則執(zhí)行or
運(yùn)算。如果左邊表達(dá)式的值為真,那么就不用計(jì)算右邊表達(dá)式的值了,因?yàn)椴还苡疫叡磉_(dá)式的值是什么,都不會(huì)影響最終結(jié)果,最終結(jié)果都是真,此時(shí)or
會(huì)把左邊表達(dá)式的值作為最終結(jié)果。如果左邊表達(dá)式的值為假,那么最終值是不能確定的,or
會(huì)繼續(xù)計(jì)算20右邊表達(dá)式的值,并將右邊表達(dá)式的值作為最終結(jié)果。and
和or
運(yùn)算規(guī)則的示例代碼如程序段P4.11
所示。P4.11 and
和or
運(yùn)算規(guī)則url=
"/python/"print("----Falseandxxx-----")print(Falseandprint(url)
)print("----Trueand
xxx-----")print(Trueandprint(url))print("----Falseorxxx-----")print(Falseorprint(url))print("----Trueorxxx-----")print(Trueorprint(url)
)4章運(yùn)算
符21運(yùn)行代碼,輸出結(jié)果如下。----Falseand
xxx-----False----Trueandxxx-----
http://www.ahu.net/python/
None----Falseorxxx-----
http://www.ahu.net/python/
None----Trueor
xxx-----True上例的第
4
行代碼中,and
左邊的值為假,不需要再執(zhí)行右邊的表達(dá)式,22因此
print(url)
沒有任何輸出。第
6
行代碼中,and
左邊的值為真,還需要執(zhí)行右邊的表達(dá)式才能得到最終的結(jié)果,因此
print(url)
輸出了一個(gè)網(wǎng)址,同時(shí)
print()函數(shù)的返回值是None,True
and
None
表達(dá)式運(yùn)算結(jié)果是None,因此輸出None。第
8
和第
10
行代碼也是類似的。邏輯運(yùn)算符可以把多個(gè)條件按照邏輯進(jìn)行連接,變成更復(fù)雜的條件。
4.5 成員運(yùn)算符in
與not
in
是Python
中獨(dú)有的運(yùn)算符,稱為成員運(yùn)算符,用于判斷對(duì)象是否為某個(gè)集合的元素之一,返回的結(jié)果是布爾值
True
或False。表
4-5
列出了Python
支持的成員運(yùn)算符及其功能描述與實(shí)例。4章運(yùn)算
符23表
4-5成員運(yùn)算符及其功能描述與案例運(yùn)算符功能描述實(shí)例in在指定的序列中找到了值返回True,否則返回False2
in
[1,2,3] 返回True5
in
[1,2,3] 返回Falsenot
in在指定的序列中沒有找到值返回True否則返回
False,2
not
in
[1,2,3] 返回False5
not
in
[1,2,3] 返回True成員運(yùn)算符的用法示例如程序段P4.12
所示。P4.12 成員運(yùn)算符name
=
"小花"class_list
=
["小紅","小花","小敏"]print(namein
class_list)print(namenotin
class_list)24運(yùn)行代碼,輸出結(jié)果如下。TrueFalse
4.6 身份運(yùn)算符身份運(yùn)算符是Python
用來判斷兩個(gè)對(duì)象的存儲(chǔ)單元是否相同的運(yùn)算符號(hào),身份運(yùn)算符包括is
和is
not,返回的結(jié)果是True
或False。表4-6
列出了Python支持的身份運(yùn)算符及其功能描述與實(shí)例。表
4-6 身份運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述實(shí)例(x=[1,2],y=[1,2]
)is判斷兩個(gè)變量是不是引用自一個(gè)對(duì)象,即內(nèi)存地址是否一致。若是則返回
True,否則返回x
is
y,返回False4章運(yùn)算
符25Falseis
not判斷兩個(gè)變量是不是引用自不同對(duì)象,即內(nèi)存地址是否不一致。若是則返回True,否則返回Falsex
is
not
y,返回True注意,is
與
==
的區(qū)別如下:is
用于判斷兩個(gè)變量引用的對(duì)象是否為同一個(gè),==
用于判斷引用變量的值是否相等。示例代碼如程序段P4.13
所示。P4.13 is
與==的運(yùn)算區(qū)別x=[1,2,
3]y=[1,2,
3]z=
xprint("x
is
y:
",
x
is
y)print("z
is
x:
",
z
is
x)26print("x==y:",x==
y)print("z
==
x:
",
z
==
x)運(yùn)行代碼,輸出結(jié)果如下。xis
y:zisx:x==
y:z==
x:FalseTrueTrueTrue
4.7 位運(yùn)算符Python
位運(yùn)算按照數(shù)據(jù)在內(nèi)存中的二進(jìn)制位(bit)進(jìn)行運(yùn)算,表
4-7
列出了Python
支持的位運(yùn)算符及其功能描述與實(shí)例。4章運(yùn)算
符27表
4-7位運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述實(shí)例x=0011
1100(60)y=0000
1101(13)&按位與運(yùn)算符:參與運(yùn)算的兩個(gè)值,如果兩個(gè)相應(yīng)位都為
1,則該位的結(jié)果為
1,否則為
0(x
&
y)
輸出結(jié)果
12二進(jìn)制:0000
1100|按位或運(yùn)算符:只要對(duì)應(yīng)的兩個(gè)二進(jìn)位有一個(gè)為
1,結(jié)果位就為
1(x
|
y)
輸出結(jié)果
61二進(jìn)制:0011
1101^按位異或運(yùn)算符:當(dāng)兩對(duì)應(yīng)的二進(jìn)位相異時(shí),結(jié)果為1(x
^
y)
輸出結(jié)果
49二進(jìn)制:0011
0001~按位取反運(yùn)算符:對(duì)數(shù)據(jù)的每個(gè)二進(jìn)制位取反,即把1
變?yōu)?/p>
0,把
0
變?yōu)?/p>
1(~x
)
輸出結(jié)果-61二進(jìn)制:1100
0011,有符號(hào)二進(jìn)制數(shù)的補(bǔ)碼28形式<<左移動(dòng)運(yùn)算符:把<<左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由<<右邊的數(shù)指定移動(dòng)的位數(shù),高位丟棄,低位補(bǔ)
0x
<<
2
輸出結(jié)果
240二進(jìn)制:1111
0000>>右移動(dòng)運(yùn)算符:把>>左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干位,由>>右邊的數(shù)指定移動(dòng)的位數(shù)x
>>
2
輸出結(jié)果
15二進(jìn)制:0000
1111Python
位運(yùn)算一般用于底層開發(fā)(算法設(shè)計(jì)、驅(qū)動(dòng)、圖像處理、單片機(jī)等),在應(yīng)用層開發(fā)(Web
開發(fā)、Linux
運(yùn)維等)中并不常見。不關(guān)注底層開發(fā)的讀者先了解一下即可,待以后需要的時(shí)候再深入學(xué)習(xí)。
4.8 集合運(yùn)算符在Python
中,集合被視為數(shù)學(xué)意義上的無序且無重復(fù)元素的集合,因此,4章運(yùn)算
符29兩個(gè)Python
集合可以做數(shù)學(xué)意義上的交集、并集等運(yùn)算操作。表
4-8
列出了Python
支持的集合運(yùn)算符及其功能描述與實(shí)例。表
4-8 集合運(yùn)算符及其功能描述與實(shí)例運(yùn)算符功能描述實(shí)例A={1,2,3,4,5}B={1,3,5,7,9,11}&交集,交集符號(hào)有一個(gè)等價(jià)的方法:intersection()A&B={1,3,5}|并集,并集符號(hào)有一個(gè)等價(jià)的方法:union()A|B={1,2,3,4,5,7,9,11}-差集,差集符號(hào)有一個(gè)等價(jià)的方法:di?erence()A-B={2,4}對(duì)稱差分,新集合的元素只能屬于集合A
或集合B,^不能同時(shí)屬于兩個(gè)集合。對(duì)稱差分符號(hào)有一個(gè)等價(jià)的A^B={2,4,7,9,11}方法:symmetric_di?erence()30運(yùn)算符功能描述實(shí)例A={1,2,3,4,5}B={1,3,5,7,9,11}&=兩個(gè)集合的交集A&=B,A={1,3,5}|=為集合添加一個(gè)或多個(gè)成員,與update
方法等價(jià)A|B ,A={1,2,3,4,5,7,9,11}-=刪除集合中的一個(gè)或多個(gè)成員A-=B,A={2,4}^=更新集合中的元素,使得其中的元素只屬于原集合s或僅是另一個(gè)集合
s1
中的成員。此運(yùn)算符與方法symmetric_di?erence_update()等價(jià)A^=B,A={2,4,7,9,11}4章運(yùn)算
符314.9
三目運(yùn)算符Python
是一種極簡主義的編程語言,使用已有的
if、else
關(guān)鍵字來實(shí)現(xiàn)三目運(yùn)算符的功能。三目運(yùn)算符也稱為三元運(yùn)算符(條件運(yùn)算符)。Python
中三目運(yùn)算符的語法格式如下。res=exp1if
conditionelseexp2上式中,condition
是判斷條件,exp1
和exp2
是兩個(gè)表達(dá)式。當(dāng)條件condition
為真時(shí),res
=
表達(dá)式exp1
的運(yùn)算結(jié)果。當(dāng)條件condition
為假時(shí),res
=
表達(dá)式exp2
的運(yùn)算結(jié)果。示例代碼如程序段P4.14
所示。P4.14
三目運(yùn)算x
=
int(
input("輸入數(shù)字x:")
)32y
=
int(
input("輸入數(shù)字y:")
)print(x+y
if
x>y else
x-y)運(yùn)行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字x:5輸入數(shù)字y:49再運(yùn)行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字x:5輸入數(shù)字y:8-3Python
三目運(yùn)算符也可以嵌套使用,嵌套三目運(yùn)算符的語法格式如下。res
=
a
if
a>b
else
(
c
if
c>d
else
d
)4章運(yùn)算
符33當(dāng)條件a>b
為真時(shí),res
=
a。當(dāng)條件a>b
為假時(shí),繼續(xù)判斷條件
c>d,若為真則
res
=
c,若為假則
res=
d。示例代碼如程序段P4.15
所示。P4.15
嵌套三目運(yùn)算a
=
int(
input("輸入數(shù)字a:")
)b
=
int(
input("輸入數(shù)字b:")
)print("a
大于b")
if
a>b
else
(
print("a
小于b")
if
a<b
else
print("a
等于b")
)運(yùn)行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字a:3輸入數(shù)字b:1a
大于b34再運(yùn)行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字a:3輸入數(shù)字b:6a
小于b再運(yùn)行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字a:3輸入數(shù)字b:3a
等于b
4.10 運(yùn)算符優(yōu)先級(jí)Python
支持使用多個(gè)不同的運(yùn)算符連接簡單表達(dá)式實(shí)現(xiàn)相對(duì)復(fù)雜的功能,為了避免含有多個(gè)運(yùn)算符的表達(dá)式出現(xiàn)歧義,Python
為每種運(yùn)算符都設(shè)定了優(yōu)4章運(yùn)算
符35先級(jí)。Python
中運(yùn)算符按優(yōu)先級(jí)從高到低排序,如表
4-9
所示。表
4-9 運(yùn)算符優(yōu)先級(jí)運(yùn)算符描述**冪*、/、%、//乘、除、取模、整除+、-加法、減法>>、<<按位右移、按位左移&按位與^、|按位異或、按位或==、!=、>=、>、<=、<比較運(yùn)算符is、is
not身份運(yùn)算符in、not
in成員運(yùn)算符36not、and、or邏輯運(yùn)算符=賦值運(yùn)算符需要說明的是,如果表達(dá)式中的運(yùn)算符優(yōu)先級(jí)相同,則按從左向右的順序執(zhí)行;如果表達(dá)式中包含括號(hào),那么解釋器會(huì)先執(zhí)行括號(hào)中的子表達(dá)式。
4.11
計(jì)算思維運(yùn)算符表示對(duì)數(shù)據(jù)進(jìn)行加工處理的方法。通過運(yùn)算符的運(yùn)算能得到確定結(jié)果的問題,都可以通過計(jì)算機(jī)強(qiáng)大算力的計(jì)算得到解決。若要利用計(jì)算機(jī)算力解決問題,就必須要用計(jì)算機(jī)能理解的符號(hào)或模型把問題描述出來。如何描述問題?需要利用我們?nèi)祟惔竽X的復(fù)雜思維活動(dòng)來描述,這種思維活動(dòng)稱為計(jì)算思維。計(jì)算思維是建立在算力基礎(chǔ)上的一種思維方式。在數(shù)字時(shí)代,算力已經(jīng)成為基礎(chǔ)生產(chǎn)力,在算力基礎(chǔ)上解決實(shí)際問題是較為普遍的事情,因此計(jì)算思維是人人都需要具備的一種思維能力。4章運(yùn)算
符37計(jì)算思維(computational
thinking)是周以真(JeannetteMarie
Wing)教授于
2006
年首次提出的概念。計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)、人類行為理解等涵蓋計(jì)算機(jī)科學(xué)廣度的一系列思維活動(dòng)。計(jì)算思維是與形式化問題及其解決方案相關(guān)的思維過程,其解決問題的表現(xiàn)形式應(yīng)該能有效地被信息處理代理執(zhí)行。計(jì)算思維建立在計(jì)算過程的能力和限制之上,由人與機(jī)器執(zhí)行。計(jì)算方法和模型使人們敢于去處理那些原本無法由任何個(gè)人獨(dú)自完成的問題求解和系統(tǒng)設(shè)計(jì)。計(jì)算思維對(duì)其他學(xué)科的研究產(chǎn)生了深刻的影響。例如,計(jì)算生物學(xué)正在改變著生物學(xué)家的思考方式;計(jì)算博弈理論正在改變著經(jīng)濟(jì)學(xué)家的思考方式;納米計(jì)算正在改變著化學(xué)家的思考方式;量子計(jì)算正在改變著物理學(xué)家的思考方式。計(jì)算思維也滲透到了普通人的生活之中,掌握計(jì)算思維已經(jīng)成為現(xiàn)代人應(yīng)具備的基本技能。計(jì)算思維已經(jīng)成為現(xiàn)代人解決問題的基本思維方法,并且已成為各專業(yè)學(xué)生都應(yīng)掌握的思維方式。掌握計(jì)算思維,有助于人們更好地從事38醫(yī)學(xué)、法律、商業(yè)、政治工作,以及其他任何類型的科學(xué)和工程,甚至藝術(shù)工作。計(jì)算思維過程計(jì)算思維是一種解決問題的方式,它并不等同于計(jì)算機(jī)科學(xué)。計(jì)算思維是一種遞歸思維,通過分解、識(shí)別、抽象、算法不斷地遞歸迭代思維活動(dòng),把要解決的問題形式化、符號(hào)化。計(jì)算思維包括問題分解、模式識(shí)別、歸納抽象、算法設(shè)計(jì)
4
部分內(nèi)容。問題分解當(dāng)我們面臨一個(gè)復(fù)雜的事物時(shí),一般很難直接處理,此時(shí)可以先將其分解成許多小事物,逐個(gè)進(jìn)行處理,小事物處理完后,復(fù)雜的事物也就處理好了。因此,計(jì)算思維的第一步就是把實(shí)際領(lǐng)域、項(xiàng)目、對(duì)象、過程或問題等事物分4章運(yùn)算
符39解成更小且易于識(shí)別的部分,分解出事物的組成要素及結(jié)構(gòu)關(guān)系。實(shí)踐中,這往往需要多次反復(fù)迭代才能完成。例如,當(dāng)一臺(tái)計(jì)算機(jī)出現(xiàn)故障時(shí),可以將計(jì)算機(jī)逐步分解成較小的組成部件,再對(duì)各個(gè)部分進(jìn)行檢查。又如,當(dāng)程序員在調(diào)試程序過程中遇到問題時(shí),通常會(huì)考慮各種可能性,然后把程序分解成各個(gè)組成部分,分別進(jìn)行問題排查。事實(shí)上,問題分解已經(jīng)成為人類的基本思維模式。2.
模式識(shí)別將一個(gè)復(fù)雜的事物分解之后,就要去識(shí)別、發(fā)現(xiàn)小事物的相似之處與共同的屬性,以及發(fā)展變化趨勢(shì)和規(guī)律,這些屬性、趨勢(shì)和規(guī)律稱為模式。模式識(shí)別就是在眾多事物中找出特征或規(guī)則,并對(duì)事物進(jìn)行識(shí)別與分類。在解決問題的過程中找到模式是非常重要的。模式可以讓問題簡單化。例如,程序員在調(diào)40試程序時(shí),根據(jù)錯(cuò)誤的特征,依據(jù)大腦中存儲(chǔ)的經(jīng)驗(yàn),常??梢宰R(shí)別出錯(cuò)誤的模式,找到程序出錯(cuò)的原因。歸納抽象歸納抽象的目的是忽略次要特征,將注意力集中在重要特征上,以發(fā)現(xiàn)、識(shí)別模式背后的一般原理和本質(zhì)因素,構(gòu)建解決問題的限制及規(guī)則,并進(jìn)行符號(hào)化、形式化描述。例如,程序員在識(shí)別出程序錯(cuò)誤的模式后,就可以抽象描述這種錯(cuò)誤模式,并對(duì)其進(jìn)行形式化、符號(hào)化定義。這樣,當(dāng)下次出現(xiàn)類似的錯(cuò)誤時(shí),計(jì)算機(jī)就可以自動(dòng)檢測(cè)出來。Python
中的異常自動(dòng)報(bào)錯(cuò)就是為了實(shí)現(xiàn)這樣的設(shè)計(jì)。算法設(shè)計(jì)算法就是計(jì)算機(jī)運(yùn)算的流程控制,它是人類利用計(jì)算機(jī)解決問題的基本方法,是把問題描述轉(zhuǎn)換為計(jì)算機(jī)程序的基礎(chǔ)。算法是一種選擇,是一種計(jì)劃,4章運(yùn)算
符41每一個(gè)指示與步驟都是精心計(jì)劃過的,這個(gè)計(jì)劃中包含解決問題的每一個(gè)狀態(tài)。例如,第
3
章的“剪刀、石頭、布”游戲,通過問題分解、模式識(shí)別、歸納抽象
3
個(gè)步驟將問題描述形式化、符號(hào)化,便可進(jìn)行算法設(shè)計(jì)。算法設(shè)計(jì)的條件及功能描述,如表
4-10
所示。表
4-10 算法設(shè)計(jì)的條件及功能描述條件功能描述輸入零個(gè)或多個(gè)輸入數(shù)據(jù),輸入數(shù)據(jù)必須有清楚的描述或定義輸出至少要有一個(gè)輸出結(jié)果,不可以沒有輸出結(jié)果確定性每個(gè)語句或步驟必須是明確的有限性在有限步驟后一定會(huì)結(jié)束,不會(huì)產(chǎn)生無窮回路有效性步驟清楚可行,可以通過計(jì)算求出答案42算法可以用一般文字(如中文、英文和數(shù)字等)進(jìn)行描述,也可以用計(jì)算機(jī)高級(jí)語言(Python、C\C++等)或虛擬語言(Pascal、Spark
等)進(jìn)行描述。人機(jī)大戰(zhàn)猜拳游戲計(jì)算思維分析對(duì)第
3
章的人機(jī)大戰(zhàn)猜拳游戲進(jìn)行計(jì)算思維分析的過程如下。問題分解人機(jī)大戰(zhàn)猜拳游戲要解決的是輸贏問題,可將問題分為三部
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度醫(yī)院藥品集中采購合同協(xié)議3篇
- 2024年度人事代理合同涵蓋員工職業(yè)生涯規(guī)劃與晉升2篇
- 2024版體育產(chǎn)業(yè)專業(yè)運(yùn)動(dòng)員崗位二零二四年度勞動(dòng)合同3篇
- 2024年度影視制作合同:影視制作公司與投資方的電影制作合作3篇
- 2024年人工智能助手應(yīng)用軟件開發(fā)合同委托3篇
- 2024年二手房買賣合同公證的問題解答3篇
- 2024版城市中心房產(chǎn)買賣合同協(xié)議范本3篇
- 2024年度山場林業(yè)資產(chǎn)評(píng)估與承包合同3篇
- 2024年標(biāo)準(zhǔn)金融保密合同范本
- 2024年度體育賽事組織與承辦合同:主辦方與承辦方2篇
- Unit 1 Making friends Part B Lets learn(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 防火門及防火卷簾施工方案
- 湖南省2025屆高三九校聯(lián)盟第一次聯(lián)考 生物試卷(含答案詳解)
- 廣東省廣州市越秀區(qū)2022-2023學(xué)年八年級(jí)上學(xué)期期末歷史試題(含答案)
- 2024年初級(jí)招標(biāo)采購從業(yè)人員《招標(biāo)采購專業(yè)實(shí)務(wù)》考前必刷必練題庫600題(含真題、必會(huì)題)
- 【MOOC】跨文化交際通識(shí)通論-揚(yáng)州大學(xué) 中國大學(xué)慕課MOOC答案
- 遼寧省大連市沙河口區(qū)2022-2023學(xué)年八年級(jí)上學(xué)期物理期末試卷(含答案)
- 做賬實(shí)操-鞋廠的賬務(wù)處理
- 承插盤扣懸挑腳手架施工方案
- 播音主持專業(yè)教學(xué)計(jì)劃
- 2024年醫(yī)師定期考核臨床類人文醫(yī)學(xué)知識(shí)考試題庫及答案(共280題)
評(píng)論
0/150
提交評(píng)論