Python編程基礎(chǔ)與應(yīng)用第4章 運算符_第1頁
Python編程基礎(chǔ)與應(yīng)用第4章 運算符_第2頁
Python編程基礎(chǔ)與應(yīng)用第4章 運算符_第3頁
Python編程基礎(chǔ)與應(yīng)用第4章 運算符_第4頁
Python編程基礎(chǔ)與應(yīng)用第4章 運算符_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

4

運 算 符XXXX

大學(xué)XX

學(xué)院XXX

教授2學(xué)習(xí)目標:掌握算術(shù)與賦值運算符的使用掌握比較與邏輯運算符的使用掌握成員與身份運算符的使用熟悉三目、集合與位運算符的使用理解運算符的優(yōu)先級理解計算思維過程及應(yīng)用思政內(nèi)涵:運算優(yōu)先級的變化可能導(dǎo)致問題的解決結(jié)果截然不同,廣大學(xué)子要善于抓住事物的主要矛盾,培養(yǎng)辯證思維能力。4章運算

符34.1 算術(shù)運算符算術(shù)運算符即數(shù)學(xué)運算符,用來對數(shù)字進行數(shù)學(xué)運算,其中+和*可以對字符串進行運算。表

4-1

列出了Python

支持的算術(shù)運算符及其功能描述與實例。表

4-1 算術(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**冪運算7**2=4944.1.1 加法運算符1.

數(shù)值加法當+用于數(shù)值時表示加法,加法運算很簡單,和數(shù)學(xué)中的規(guī)則一樣,示例代碼如程序段P4.1

所示。P4.1

數(shù)值加法運算m=

10n=

97sum1=m+

nx=

7.2y=

15.3sum2=x+

yprint("sum1=%d,sum2=%.2f"%(sum1,sum2)

)4章運算

符5運行代碼,輸出結(jié)果如下。sum1=107,

sum2=22.502.

拼接字符串當+用于字符串時,有拼接字符串(將兩個字符串連接為一個)的作用,示例代碼如程序段P4.2

所示。P4.2

拼接字符串name

=

"python

語言學(xué)習(xí)網(wǎng)"url="/"age=

10info

=

name

+

"的網(wǎng)址是"

+

url

+",已經(jīng)"

+

str(age)

+

"歲了。"print(info)6運行代碼,輸出結(jié)果如下。python

語言學(xué)習(xí)網(wǎng)的網(wǎng)址是/,已經(jīng)

10

歲了。str()函數(shù)用來將整數(shù)類型的age

轉(zhuǎn)換成字符串。乘法運算符數(shù)值乘法當*用于數(shù)值時表示乘法,乘法運算也和數(shù)學(xué)中的規(guī)則相同,示例代碼如程序段P4.3

所示。P4.3

乘法運算n=4*

25f=34.5*

2print(n,",",

f)4章運算

符7運行代碼,輸出結(jié)果如下。100,

69.02.

重復(fù)字符串當*用于字符串時,表示重復(fù)字符串,即將多個同樣的字符串連接起來。示例代碼如程序段P4.4

所示。P4.4

重復(fù)字符串str1="hello"print(str1*

4)運行代碼,輸出結(jié)果如下。hellohellohello

hello8Python

中的算術(shù)運算符既支持相同類型的數(shù)值運算,也支持不同類型的數(shù)值混合運算。在進行混合運算時,Python

會強制對數(shù)值的類型進行臨時類型轉(zhuǎn)換。臨時類型轉(zhuǎn)換遵循如下原則。當整型與浮點型進行混合運算時,將整型轉(zhuǎn)換為浮點型。當其他類型與復(fù)數(shù)類型進行運算時,將其他類型轉(zhuǎn)換為復(fù)數(shù)類型。使用整型數(shù)據(jù)分別與浮點型數(shù)據(jù)和復(fù)數(shù)類型數(shù)據(jù)進行運算,示例代碼如程序段P4.5

所示。P4.5

混合運算print(10/2.0)print(10-(3+5j))5.0運行代碼,輸出結(jié)果如下。7-5j4章運算

符94.2

賦值運算符賦值運算符用來把右側(cè)的值傳遞給左側(cè)的變量,可以直接將右側(cè)的值賦給左側(cè)的變量,也可以進行某些運算后再賦給左側(cè)的變量。Python

中最基本的賦值運算符是=,結(jié)合其他運算符,=還能擴展出更強大的賦值運算符。表

4-2

列出了Python

支持的賦值運算符及其功能描述與實例。表

4-2 賦值運算符及其功能描述與實例運算符功能描述實例(x

是變量)=簡單賦值運算符x=7+2,即將

7+2

的運算結(jié)果賦值給x+=加法賦值運算符x

+=7

等效于x=x+7-=減法賦值運算符x

-=7

等效于x=x-7*=乘法賦值運算符x

*=7

等效于x=x*710/=除法賦值運算符x

/=7

等效于x=x/7//=整除賦值運算符x

//=7

等效于x=x//7%=取模賦值運算符x

%=7

等效于x=x%7**=冪賦值運算符x

**=7

等效于x=x**74.2.1 基本賦值運算符符號=是Python

中最基本的賦值運算符,用來將一個表達式的值賦給另一個變量,支持連續(xù)賦值和多元賦值,示例代碼如程序段P4.6

所示。P4.6

基本賦值、連續(xù)賦值和多元賦值n1=

100f1=

47.54章運算

符11s1=

"/python/"a=b=c

=

100 #

連續(xù)賦值x,y,z=1,2,

'a

string' #

多元賦值4.2.2

擴展賦值運算符擴展后的賦值運算符將使得賦值表達式的書寫更加優(yōu)雅和方便。但是,擴展賦值運算符只能針對已經(jīng)存在的變量賦值,因為賦值過程中需要變量本身參與運算,如果沒有提前定義變量,它的值就是未知的,無法參與運算。Python3.8

中新增了一個賦值運算符——海象運算符“∶=”,該運算符用于在表達式內(nèi)部為變量賦值,因其形似海象的眼睛和長牙而得此名。海象運算符的用法示例代碼如程序段P4.7

所示。12P4.7

海象運算符示例x=5sum=x+(y

:=10)print(sum)運行代碼,輸出結(jié)果如下。15

4.3 比較運算符比較運算符又稱為關(guān)系運算符,用于對常量、變量或表達式的結(jié)果進行大小比較。如果這種比較是成立的,則返回

True(真);反之則返回

False(假)。表4-3

列出了Python

支持的比較運算符及其功能描述與實例。4章運算

符13表

4-3比較運算符及其功能描述與實例運算符功能描述實例(x=10,y=20)==等于——比較兩個對象是否相等x==y

返回False!=不等于——比較兩個對象是否不相等x!=y 返回True>大于——返回

x

是否大于yx>y

返回False<小于——返回

x

是否小于yx<y

返回True>=大于等于——返回

x

是否大于等于yx>=y

返回False<=小于等于——返回

x

是否小于等于yx<=y

返回True符號=和==是兩個不同的運算符,=用來賦值,而==用來判斷兩邊的值是否相等。所有比較運算符返回

1

表示真,返回

0

表示假。這分別與特殊的變量True

和False

等價。示例代碼如程序段P4.8

所示。14P4.8

比較運算符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)運行代碼,輸出結(jié)果如下。x==y:

Falsex!=y:

True4章運算

符15x>y:

Falsex<y:Truex>=y:

Falsex<=y:

True

4.4 邏輯運算符數(shù)學(xué)中我們學(xué)過邏輯運算。例如,若p

為真命題,q

為假命題,那么“p與q”為假,“p

或q”為真,“非

q”為真。Python

中也有類似的邏輯運算,表

4-4

列出了Python

支持的邏輯運算符及其功能描述與實例。表

4-4 邏輯運算符及其功能描述與實例運算符功能描述實例(x=10,y=20)and邏輯與運算,如果x

為False,那么x

and

y

返x

and

y

返回

20,為True16回

False,否則返回y

的計算值or邏輯或運算,如果x

為非

0,那么x

or

y

返回x的計算值,否則返回y

的計算值x

or

y

返回

10,為Truenot邏輯非運算,如果x

True,那么not

x

返回False。如果

x

False,那么

not

x

返回Truenot

x

返回False邏輯運算符一般和比較運算符結(jié)合使用。例如,14>6

and

45.6

>

90,因為

14>6

結(jié)果為

True,45.6>90

結(jié)果為False,所以整個表達式的結(jié)果為

False。示例代碼如程序段P4.9

所示。P4.9

邏輯運算符與比較運算符結(jié)合使用age

=

int(input("請輸入年齡:"))height

=

int(input("請輸入身高:"))if

age>=18

and

age<=30

and

height

>=170

and

height

<=

185

:4章運算

符17print("恭喜,你符合報考飛行員的條件")else:print("抱歉,你不符合報考飛行員的條件")運行代碼,輸入數(shù)據(jù),輸出結(jié)果如下。請輸入年齡:23請輸入身高:178恭喜,你符合報考飛行員的條件Python

邏輯運算符可以用來操作任何類型的表達式,不管表達式是不是bool

類型;同時,邏輯運算的結(jié)果也不一定是bool

類型,它也可以是任意類型。示例代碼如程序段P4.10

所示。P4.10

數(shù)據(jù)類型的邏輯運算print(100and

200)18print(45and

0)print(""or"/python/")print(18.5or

"/python/")運行代碼,輸出結(jié)果如下。200 0 /python/

18.5由示例結(jié)果可知,and

和or

運算符會將其中一個表達式的值作為最終結(jié)果,而不是將

True

或False

作為最終結(jié)果。在Python

中,and

和or

不一定會計算右邊表達式的值,有時只計算左邊表達式的值就能得到最終結(jié)果。and

運算符執(zhí)行規(guī)則對于and

運算符,當兩邊的值都為真時最終結(jié)果才為真,但是只要其中有一個值為假,那么最終結(jié)果就是假,因此,Python

按照下面的規(guī)則執(zhí)行and運算。4章運算

符19(1)

如果左邊表達式的值為假,那么就不用計算右邊表達式的值了,因為不管右邊表達式的值是什么,都不會影響最終結(jié)果,最終結(jié)果都是假,此時

and

會把左邊表達式的值作為最終結(jié)果。(2)

如果左邊表達式的值為真,那么最終值是不能確定的,and

會繼續(xù)計算右邊表達式的值,并將右邊表達式的值作為最終結(jié)果。2)

or

運算符執(zhí)行規(guī)則對于or

運算符,情況是類似的,兩邊的值都為假時最終結(jié)果才為假,只要其中有一個值為真,那么最終結(jié)果就是真,因此,Python

按照下面的規(guī)則執(zhí)行or

運算。如果左邊表達式的值為真,那么就不用計算右邊表達式的值了,因為不管右邊表達式的值是什么,都不會影響最終結(jié)果,最終結(jié)果都是真,此時or

會把左邊表達式的值作為最終結(jié)果。如果左邊表達式的值為假,那么最終值是不能確定的,or

會繼續(xù)計算20右邊表達式的值,并將右邊表達式的值作為最終結(jié)果。and

和or

運算規(guī)則的示例代碼如程序段P4.11

所示。P4.11 and

和or

運算規(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章運算

符21運行代碼,輸出結(jié)果如下。----Falseand

xxx-----False----Trueandxxx-----

http://www.ahu.net/python/

None----Falseorxxx-----

http://www.ahu.net/python/

None----Trueor

xxx-----True上例的第

4

行代碼中,and

左邊的值為假,不需要再執(zhí)行右邊的表達式,22因此

print(url)

沒有任何輸出。第

6

行代碼中,and

左邊的值為真,還需要執(zhí)行右邊的表達式才能得到最終的結(jié)果,因此

print(url)

輸出了一個網(wǎng)址,同時

print()函數(shù)的返回值是None,True

and

None

表達式運算結(jié)果是None,因此輸出None。第

8

和第

10

行代碼也是類似的。邏輯運算符可以把多個條件按照邏輯進行連接,變成更復(fù)雜的條件。

4.5 成員運算符in

與not

in

是Python

中獨有的運算符,稱為成員運算符,用于判斷對象是否為某個集合的元素之一,返回的結(jié)果是布爾值

True

或False。表

4-5

列出了Python

支持的成員運算符及其功能描述與實例。4章運算

符23表

4-5成員運算符及其功能描述與案例運算符功能描述實例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成員運算符的用法示例如程序段P4.12

所示。P4.12 成員運算符name

=

"小花"class_list

=

["小紅","小花","小敏"]print(namein

class_list)print(namenotin

class_list)24運行代碼,輸出結(jié)果如下。TrueFalse

4.6 身份運算符身份運算符是Python

用來判斷兩個對象的存儲單元是否相同的運算符號,身份運算符包括is

和is

not,返回的結(jié)果是True

或False。表4-6

列出了Python支持的身份運算符及其功能描述與實例。表

4-6 身份運算符及其功能描述與實例運算符功能描述實例(x=[1,2],y=[1,2]

)is判斷兩個變量是不是引用自一個對象,即內(nèi)存地址是否一致。若是則返回

True,否則返回x

is

y,返回False4章運算

符25Falseis

not判斷兩個變量是不是引用自不同對象,即內(nèi)存地址是否不一致。若是則返回True,否則返回Falsex

is

not

y,返回True注意,is

==

的區(qū)別如下:is

用于判斷兩個變量引用的對象是否為同一個,==

用于判斷引用變量的值是否相等。示例代碼如程序段P4.13

所示。P4.13 is

與==的運算區(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)運行代碼,輸出結(jié)果如下。xis

y:zisx:x==

y:z==

x:FalseTrueTrueTrue

4.7 位運算符Python

位運算按照數(shù)據(jù)在內(nèi)存中的二進制位(bit)進行運算,表

4-7

列出了Python

支持的位運算符及其功能描述與實例。4章運算

符27表

4-7位運算符及其功能描述與實例運算符功能描述實例x=0011

1100(60)y=0000

1101(13)&按位與運算符:參與運算的兩個值,如果兩個相應(yīng)位都為

1,則該位的結(jié)果為

1,否則為

0(x

&

y)

輸出結(jié)果

12二進制:0000

1100|按位或運算符:只要對應(yīng)的兩個二進位有一個為

1,結(jié)果位就為

1(x

|

y)

輸出結(jié)果

61二進制:0011

1101^按位異或運算符:當兩對應(yīng)的二進位相異時,結(jié)果為1(x

^

y)

輸出結(jié)果

49二進制:0011

0001~按位取反運算符:對數(shù)據(jù)的每個二進制位取反,即把1

變?yōu)?/p>

0,把

0

變?yōu)?/p>

1(~x

)

輸出結(jié)果-61二進制:1100

0011,有符號二進制數(shù)的補碼28形式<<左移動運算符:把<<左邊的運算數(shù)的各二進位全部左移若干位,由<<右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補

0x

<<

2

輸出結(jié)果

240二進制:1111

0000>>右移動運算符:把>>左邊的運算數(shù)的各二進位全部右移若干位,由>>右邊的數(shù)指定移動的位數(shù)x

>>

2

輸出結(jié)果

15二進制:0000

1111Python

位運算一般用于底層開發(fā)(算法設(shè)計、驅(qū)動、圖像處理、單片機等),在應(yīng)用層開發(fā)(Web

開發(fā)、Linux

運維等)中并不常見。不關(guān)注底層開發(fā)的讀者先了解一下即可,待以后需要的時候再深入學(xué)習(xí)。

4.8 集合運算符在Python

中,集合被視為數(shù)學(xué)意義上的無序且無重復(fù)元素的集合,因此,4章運算

符29兩個Python

集合可以做數(shù)學(xué)意義上的交集、并集等運算操作。表

4-8

列出了Python

支持的集合運算符及其功能描述與實例。表

4-8 集合運算符及其功能描述與實例運算符功能描述實例A={1,2,3,4,5}B={1,3,5,7,9,11}&交集,交集符號有一個等價的方法:intersection()A&B={1,3,5}|并集,并集符號有一個等價的方法:union()A|B={1,2,3,4,5,7,9,11}-差集,差集符號有一個等價的方法:di?erence()A-B={2,4}對稱差分,新集合的元素只能屬于集合A

或集合B,^不能同時屬于兩個集合。對稱差分符號有一個等價的A^B={2,4,7,9,11}方法:symmetric_di?erence()30運算符功能描述實例A={1,2,3,4,5}B={1,3,5,7,9,11}&=兩個集合的交集A&=B,A={1,3,5}|=為集合添加一個或多個成員,與update

方法等價A|B ,A={1,2,3,4,5,7,9,11}-=刪除集合中的一個或多個成員A-=B,A={2,4}^=更新集合中的元素,使得其中的元素只屬于原集合s或僅是另一個集合

s1

中的成員。此運算符與方法symmetric_di?erence_update()等價A^=B,A={2,4,7,9,11}4章運算

符314.9

三目運算符Python

是一種極簡主義的編程語言,使用已有的

if、else

關(guān)鍵字來實現(xiàn)三目運算符的功能。三目運算符也稱為三元運算符(條件運算符)。Python

中三目運算符的語法格式如下。res=exp1if

conditionelseexp2上式中,condition

是判斷條件,exp1

和exp2

是兩個表達式。當條件condition

為真時,res

=

表達式exp1

的運算結(jié)果。當條件condition

為假時,res

=

表達式exp2

的運算結(jié)果。示例代碼如程序段P4.14

所示。P4.14

三目運算x

=

int(

input("輸入數(shù)字x:")

)32y

=

int(

input("輸入數(shù)字y:")

)print(x+y

if

x>y else

x-y)運行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字x:5輸入數(shù)字y:49再運行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字x:5輸入數(shù)字y:8-3Python

三目運算符也可以嵌套使用,嵌套三目運算符的語法格式如下。res

=

a

if

a>b

else

(

c

if

c>d

else

d

)4章運算

符33當條件a>b

為真時,res

=

a。當條件a>b

為假時,繼續(xù)判斷條件

c>d,若為真則

res

=

c,若為假則

res=

d。示例代碼如程序段P4.15

所示。P4.15

嵌套三目運算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")

)運行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字a:3輸入數(shù)字b:1a

大于b34再運行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字a:3輸入數(shù)字b:6a

小于b再運行代碼,輸入數(shù)字,輸出結(jié)果如下。輸入數(shù)字a:3輸入數(shù)字b:3a

等于b

4.10 運算符優(yōu)先級Python

支持使用多個不同的運算符連接簡單表達式實現(xiàn)相對復(fù)雜的功能,為了避免含有多個運算符的表達式出現(xiàn)歧義,Python

為每種運算符都設(shè)定了優(yōu)4章運算

符35先級。Python

中運算符按優(yōu)先級從高到低排序,如表

4-9

所示。表

4-9 運算符優(yōu)先級運算符描述**冪*、/、%、//乘、除、取模、整除+、-加法、減法>>、<<按位右移、按位左移&按位與^、|按位異或、按位或==、!=、>=、>、<=、<比較運算符is、is

not身份運算符in、not

in成員運算符36not、and、or邏輯運算符=賦值運算符需要說明的是,如果表達式中的運算符優(yōu)先級相同,則按從左向右的順序執(zhí)行;如果表達式中包含括號,那么解釋器會先執(zhí)行括號中的子表達式。

4.11

計算思維運算符表示對數(shù)據(jù)進行加工處理的方法。通過運算符的運算能得到確定結(jié)果的問題,都可以通過計算機強大算力的計算得到解決。若要利用計算機算力解決問題,就必須要用計算機能理解的符號或模型把問題描述出來。如何描述問題?需要利用我們?nèi)祟惔竽X的復(fù)雜思維活動來描述,這種思維活動稱為計算思維。計算思維是建立在算力基礎(chǔ)上的一種思維方式。在數(shù)字時代,算力已經(jīng)成為基礎(chǔ)生產(chǎn)力,在算力基礎(chǔ)上解決實際問題是較為普遍的事情,因此計算思維是人人都需要具備的一種思維能力。4章運算

符37計算思維(computational

thinking)是周以真(JeannetteMarie

Wing)教授于

2006

年首次提出的概念。計算思維是運用計算機科學(xué)的基礎(chǔ)概念進行問題求解、系統(tǒng)設(shè)計、人類行為理解等涵蓋計算機科學(xué)廣度的一系列思維活動。計算思維是與形式化問題及其解決方案相關(guān)的思維過程,其解決問題的表現(xiàn)形式應(yīng)該能有效地被信息處理代理執(zhí)行。計算思維建立在計算過程的能力和限制之上,由人與機器執(zhí)行。計算方法和模型使人們敢于去處理那些原本無法由任何個人獨自完成的問題求解和系統(tǒng)設(shè)計。計算思維對其他學(xué)科的研究產(chǎn)生了深刻的影響。例如,計算生物學(xué)正在改變著生物學(xué)家的思考方式;計算博弈理論正在改變著經(jīng)濟學(xué)家的思考方式;納米計算正在改變著化學(xué)家的思考方式;量子計算正在改變著物理學(xué)家的思考方式。計算思維也滲透到了普通人的生活之中,掌握計算思維已經(jīng)成為現(xiàn)代人應(yīng)具備的基本技能。計算思維已經(jīng)成為現(xiàn)代人解決問題的基本思維方法,并且已成為各專業(yè)學(xué)生都應(yīng)掌握的思維方式。掌握計算思維,有助于人們更好地從事38醫(yī)學(xué)、法律、商業(yè)、政治工作,以及其他任何類型的科學(xué)和工程,甚至藝術(shù)工作。計算思維過程計算思維是一種解決問題的方式,它并不等同于計算機科學(xué)。計算思維是一種遞歸思維,通過分解、識別、抽象、算法不斷地遞歸迭代思維活動,把要解決的問題形式化、符號化。計算思維包括問題分解、模式識別、歸納抽象、算法設(shè)計

4

部分內(nèi)容。問題分解當我們面臨一個復(fù)雜的事物時,一般很難直接處理,此時可以先將其分解成許多小事物,逐個進行處理,小事物處理完后,復(fù)雜的事物也就處理好了。因此,計算思維的第一步就是把實際領(lǐng)域、項目、對象、過程或問題等事物分4章運算

符39解成更小且易于識別的部分,分解出事物的組成要素及結(jié)構(gòu)關(guān)系。實踐中,這往往需要多次反復(fù)迭代才能完成。例如,當一臺計算機出現(xiàn)故障時,可以將計算機逐步分解成較小的組成部件,再對各個部分進行檢查。又如,當程序員在調(diào)試程序過程中遇到問題時,通常會考慮各種可能性,然后把程序分解成各個組成部分,分別進行問題排查。事實上,問題分解已經(jīng)成為人類的基本思維模式。2.

模式識別將一個復(fù)雜的事物分解之后,就要去識別、發(fā)現(xiàn)小事物的相似之處與共同的屬性,以及發(fā)展變化趨勢和規(guī)律,這些屬性、趨勢和規(guī)律稱為模式。模式識別就是在眾多事物中找出特征或規(guī)則,并對事物進行識別與分類。在解決問題的過程中找到模式是非常重要的。模式可以讓問題簡單化。例如,程序員在調(diào)40試程序時,根據(jù)錯誤的特征,依據(jù)大腦中存儲的經(jīng)驗,常??梢宰R別出錯誤的模式,找到程序出錯的原因。歸納抽象歸納抽象的目的是忽略次要特征,將注意力集中在重要特征上,以發(fā)現(xiàn)、識別模式背后的一般原理和本質(zhì)因素,構(gòu)建解決問題的限制及規(guī)則,并進行符號化、形式化描述。例如,程序員在識別出程序錯誤的模式后,就可以抽象描述這種錯誤模式,并對其進行形式化、符號化定義。這樣,當下次出現(xiàn)類似的錯誤時,計算機就可以自動檢測出來。Python

中的異常自動報錯就是為了實現(xiàn)這樣的設(shè)計。算法設(shè)計算法就是計算機運算的流程控制,它是人類利用計算機解決問題的基本方法,是把問題描述轉(zhuǎn)換為計算機程序的基礎(chǔ)。算法是一種選擇,是一種計劃,4章運算

符41每一個指示與步驟都是精心計劃過的,這個計劃中包含解決問題的每一個狀態(tài)。例如,第

3

章的“剪刀、石頭、布”游戲,通過問題分解、模式識別、歸納抽象

3

個步驟將問題描述形式化、符號化,便可進行算法設(shè)計。算法設(shè)計的條件及功能描述,如表

4-10

所示。表

4-10 算法設(shè)計的條件及功能描述條件功能描述輸入零個或多個輸入數(shù)據(jù),輸入數(shù)據(jù)必須有清楚的描述或定義輸出至少要有一個輸出結(jié)果,不可以沒有輸出結(jié)果確定性每個語句或步驟必須是明確的有限性在有限步驟后一定會結(jié)束,不會產(chǎn)生無窮回路有效性步驟清楚可行,可以通過計算求出答案42算法可以用一般文字(如中文、英文和數(shù)字等)進行描述,也可以用計算機高級語言(Python、C\C++等)或虛擬語言(Pascal、Spark

等)進行描述。人機大戰(zhàn)猜拳游戲計算思維分析對第

3

章的人機大戰(zhàn)猜拳游戲進行計算思維分析的過程如下。問題分解人機大戰(zhàn)猜拳游戲要解決的是輸贏問題,可將問題分為三部

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論