




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Python第一頁,共二百八十二頁。第一章 進(jìn)入(jnr)python3.5的精彩世界第二頁,共二百八十二頁。前言(qin yn)Python 簡介(jin ji)Python 安裝(nzhung)2本節(jié)內(nèi)容第三頁,共二百八十二頁。進(jìn)入(jnr)Python編程世界Python的官網(wǎng)網(wǎng)站(wn zhn):Unix衍生系統(tǒng)可能已經(jīng)安裝了Python,在命令行對話框中鍵入“python”即可顯示版本信息。Windows下安裝Python和安裝其他軟件一樣,很easy!編碼方面:Python3.x默認(rèn)utf-8。語法方面有改動,數(shù)據(jù)類型方面有調(diào)整。面向?qū)ο?、異常處理和模塊(m kui)等方面也有改動
2、。本教學(xué)使用Python3.5。Python 下載與安裝Python2.x vs Python 3.x第四頁,共二百八十二頁。Python安裝(nzhung)python官網(wǎng)有幾個下載(xi zi)文件,有什么區(qū)別?Python 3.6.0a1 - 2016-05-17Download Windows x86 web-based installerDownload Windows x86 executable installerDownload Windows x86 embeddable zip fileDownload Windows x86-64 web-based installerD
3、ownload Windows x86-64 executable installerDownload Windows x86-64 embeddable zip file x86是32位,x86-64是64位??梢酝ㄟ^下面3種途徑獲取python:web-based installer 是需要(xyo)通過聯(lián)網(wǎng)完成安裝的executable installer 是可執(zhí)行文件(*.exe)方式安裝embeddable zip file 嵌入式版本,可以集成到其它應(yīng)用中第五頁,共二百八十二頁。安裝好python后,在開始菜單欄中會自動(zdng)添加一個名為python3.5的文件夾,點擊該文件
4、夾會有如圖下圖所示的一些子目錄。IDLE是Python集成開發(fā)環(huán)境,也稱交互模式。Python3.5是Python的命令控制臺,里面只能執(zhí)行Python命令。第三個是幫助文檔,點擊后會彈出幫助文檔。最后一個是Python的模塊文檔。本書若無特別指出,示例都是在IDLE中執(zhí)行的。進(jìn)入(jnr)Python編程世界第六頁,共二百八十二頁。打開(d ki)交互模式,如下圖所示:若看到,則表示是在Python交互式環(huán)境下,在Python交互式環(huán)境下,只能輸入Python代碼并立刻執(zhí)行。第七頁,共二百八十二頁。在交互式環(huán)境下輸入print (Hello,world!),按回車,可以看到輸出了Hello,
5、world!。如下圖,紅色箭頭指向(zh xin)為輸入部分,紅色框為輸出。此處print后面帶了括號,表示print是一個函數(shù),單引號里面的叫字符串。如果要讓Python打印出指定的文字,可以用print()函數(shù),然后把希望打印的文字用單引號或者雙引號括起來,但不能混用單引號和雙引號。第八頁,共二百八十二頁。我們該怎么去刻意犯呢?我們以前面的“Hello,world!”為示例,如果將print (Hello,world!)修改為print (Hello,world!),去掉后面的單引號,在交互模式下測試一下。輸入語句:print (Hello,world!)可以(ky)看到屏幕打印結(jié)果如下圖
6、所示,這里打印意為在屏幕上輸出文本,并非通過打印機(jī)打印出來:通過這個錯誤提示,就能很快就知道問題的原因。第九頁,共二百八十二頁。 溫故知新(wn g zh xn),學(xué)以致用(1)回顧一下Python的發(fā)展歷程,起源和應(yīng)用(yngyng)場景。(2)在本地安裝Python最新版本,安裝好后卸載,卸載后再安裝,盡量關(guān)注一下各個步驟的細(xì)節(jié)。(3)嘗試在不同操作系統(tǒng)上安裝Python。(4)在“Hell world!”示例中,嘗試將print函數(shù)拼寫錯誤,查看輸出結(jié)果。(5)不要用電腦測試,自己想想print (1+2)的輸出結(jié)果。第十頁,共二百八十二頁。Windows下運行(ynxng)Python
7、程序HelloWorld.py# -*- coding: cp936 -*- 支持漢字注釋print Hello, world! # 我的第一個Python程序raw_input() # 使cmd框不立刻(lk)退出三種運行方式打開源文件,用Python Shell運行。雙擊源文件,用CMD運行。在Python Shell中直接寫程序運行。進(jìn)入(jnr)Python編程世界第十一頁,共二百八十二頁。其他的Python集成(j chn)開發(fā)環(huán)境1)開源Python Win+Win32 Extensions /crew/skippy/win32 IPython(增強(qiáng)(zngqing)的交互式Pyt
8、hon) IDE Studio(IDLE以及更多) /crew/mike/Idle Eclipse http:/pydew.sf.ent 2)商業(yè)WingIDE(WinWare公司) Komodo(ActiveState公司) /Products/Komodo 進(jìn)入(jnr)Python編程世界第十二頁,共二百八十二頁。Python學(xué)習(xí)(xux)資源免 費資 源簡明(jinmng)Python教程啄木鳥社區(qū)(sh q)CSDN下載其他:9081/doc/abyteofpython_cn/chinese/index.html/moin/htp:/第十三頁,共二百八十二頁。Python快速(kui
9、 s)入門輸入輸出,注釋(zhsh)本 章主 題操作符,賦值,數(shù)據(jù)類型縮進(jìn),循環(huán)(xnhun)語句,條件語句文件操作,錯誤處理函數(shù),類,模塊第十四頁,共二百八十二頁。print輸出(shch),注釋 print (“Hello world!“) # Python Shell提示符Hello world! abs(-4) # abs(): 內(nèi)建函數(shù),取絕對值4 myString = Hello world! # 單引號、雙引號成對使用 print myStringHello world! myStringHello world! # 顯示結(jié)果帶引號 _ # 下劃線含義:表示(biosh)最后一個
10、表達(dá)式Hello world!Python快速(kui s)入門第十五頁,共二百八十二頁。print輸出(shch),注釋 print (“%s is %d years old.” % (“李書豪”, 26))李書豪 is 26 years old.# %s 字符串;%d 整型;%f 浮點型# Python非常靈活,即使將數(shù)字傳遞給%s,也不會引發(fā)嚴(yán)重后果 logFile = open(myLogFile.txt, a) # 打開(d ki)文件 print logFile, Python讓程序員的工作更輕松。# 重定向輸出符號 logFile.close() # 關(guān)閉文件Python快速(k
11、ui s)入門第十六頁,共二百八十二頁。raw_input()輸入(shr) userName = raw_input(輸入登錄名:)輸入登錄名:李書豪 print 你的登錄名為, userName 你的登錄名為 李書豪 # 自動加空格# raw_input():從用戶(yngh)那里得到數(shù)據(jù)輸入; myNumber = raw_input(輸入一個數(shù)字:)輸入一個數(shù)字:1024 print 你輸入數(shù)字的2倍是:%d % (int(myNumber) * 2)你輸入數(shù)字的2倍是:2048# int() 字符串轉(zhuǎn)換為整型Python快速(kui s)入門第十七頁,共二百八十二頁。操作符標(biāo)準(zhǔn)算術(shù)操
12、作符:+ - * / /取整 %取余 *乘方 print -2 * 3 + 2010 / 4 * 2 print (-2 * 3) + (2010 / (4 * 2) # 括號增加可讀性標(biāo)準(zhǔn)比較(bjio)操作符: = = != 3.14 3.14 != 3.14 # 漸漸被淘汰False邏輯操作符:and or not (2 4) and (2 = 4) or (not (3 4 5)False # 3 4 5 等價于 3 4 and 4 pptname = “Introction to Python” pptName = “Python入門” height = 1.71 age = 26
13、n = height n *= 100 # 等價于 n = n * 100五種基本數(shù)字類型:int long bool float complex復(fù)數(shù)0102 -128 0 x80 -0XA9; 12345678902010L -0 xABCDEF123456L;True False; 3.1415926 -1.2E-14 10. 32.1e10;6.54+3.21j -1.23+45.6J 0+1j 99-88j -0.142857+0jPython快速(kui s)入門第十九頁,共二百八十二頁。數(shù)據(jù)類型字符串字符串:索引操作符 :切片操作符 +連接運算 *重復(fù)運算 strPython =
14、Python strIsCool = is cool! strPython0 # 第一個字符(z f) strPython2:5: thoP strIsCool-1 # 最后一個字符 strIsCool:2: is! strPython + + strIsCool # n:回車Python is cool! - * 30-Python快速(kui s)入門第二十頁,共二百八十二頁。數(shù)據(jù)類型列表(li bio)、元組、字典列表(list)和元組(tuple):可以(ky)看成普通的“數(shù)組” numberList = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 mixList = L
15、i Shuhao, 26, 1.71 mixTuple = (Python, is, cool)# 元組可以看成只讀的列表,如:mixTuple0 = C+, 出錯! print mixTuple0, mixTuple1, mixTuple-1Python is cool字典(dictionary):由鍵值對(Key-Value)構(gòu)成 myDict = name:LiShuhao, height:171, age:26 for mKey in myDict: print mKey, myDictmKey # 縮進(jìn): Tab,空格Python快速(kui s)入門第二十一頁,共二百八十二頁??s進(jìn)
16、(su jn),while循環(huán)語句,if條件語句縮進(jìn):簡潔、可讀性好循環(huán)語句:whilewhile expression: # expression 條件表達(dá)式 while_suite # 根據(jù)條件循環(huán)執(zhí)行(zhxng)的語句條件語句:if elif elseif expression1: # 藍(lán)色部分可以單獨用 if_suiteelif expression2: # 綠色部分可以省略,也可以重復(fù)多個 elif_suiteelse expression3: # 用elif,最后必須有else else_suite # Python沒有switch-casePython快速(kui s)入門第二
17、十二頁,共二百八十二頁。for循環(huán)(xnhun)語句循環(huán)語句:for range()內(nèi)建函數(shù)Python中的for循環(huán)與傳統(tǒng)的for循環(huán)不太一樣,不是計數(shù)循環(huán),更像迭代循環(huán),如:for nItem in 123, email, homework: print nItemfor nItem in range(5): # range(5)等價于1, 2, 3, 4, 5 print nItem, # print不自動換行方法:加逗號(duho)for nChar in myString: # myString = abc print nCharfor i in range(len(myString
18、): # len() 字符串長度 print (%d) % (i), myStringi # 輸出:(0) a Python快速(kui s)入門第二十三頁,共二百八十二頁。for循環(huán)(xnhun)語句循環(huán)語句:for enumerate()內(nèi)建函數(shù)# enumerate()突破(tp)約束:索引、元素雙循環(huán)for i, nChar in enumerate(myString): print (%d) % (i), myStringi列表解析:for語句squared = item * 2 for item in range(5)# 0 1 4 9 16 complexTuple = (ite
19、m * 2 for item in range(10) if item % 2)# 1 9 25 49 81 Python快速(kui s)入門第二十四頁,共二百八十二頁。文件(wnjin)操作文件操作:open() file() readlines() close()handle = open(file_name, access_mode = r) # 默認(rèn) r# r:讀??;w:寫入;a:添加;+:讀寫;b:二進(jìn)制訪問。filename = raw_input(請輸入文件名:)hFile = file(filename, r)for nLine in hFile: print nLine,h
20、File.close() # close()是文件對象hfile的一個屬性# 屬性可以是數(shù)據(jù)值,也可以是函數(shù)和方法,類、模塊、文件和復(fù)數(shù)等都有屬性。# 本示例適用于較小的文件,否則占用(zhn yn)內(nèi)存太大。Python快速(kui s)入門第二十五頁,共二百八十二頁。錯誤處理錯誤和異常:try - except# Python編譯時會檢查語法錯誤,運行時檢測其他(qt)錯誤。# 當(dāng)遇到錯誤,Python解釋器就引發(fā)異常,并顯示詳細(xì)信息。try: # 你打算管理的代碼段 except IOError, e: print 出錯原因, e# 程序員也可以用raise有意引發(fā)一個異常Python快
21、速(kui s)入門第二十六頁,共二百八十二頁。函數(shù)(hnsh)函數(shù):def function_name(arguments): # 參數(shù)可為空,可有默認(rèn)值 “optional documentation string” # 可選的函數(shù)說明語句(yj) function_suite # 函數(shù)代碼段 return fun_obj # 可以沒有,自動返回None對象def addMeToMe(me): # 函數(shù)示例:神奇的 + 操作 return (me + me) # 小括號不能省略print addMeToMe(3.14) # 6.28print addMeToMe(100) # 200pri
22、nt addMeToMe(Python) # PythonPythonprint addMeToMe(-1, abc) # -1, abc, -1, abcPython快速(kui s)入門第二十七頁,共二百八十二頁。類,模塊(m kui)類:相關(guān)(xinggun)數(shù)據(jù)及邏輯的容器,構(gòu)建創(chuàng)建真實對象的藍(lán)圖。class className(baseClasses): “optional documentation string” # 說明性文字(可選) static_member_declarations # 靜態(tài)成員定義 method_declarations # 方法定義模塊:一種組織形式,
23、將有聯(lián)系的代碼組織到獨立文件中# 模塊可以包含可執(zhí)行代碼、函數(shù)和類。import sys # 導(dǎo)入方法,sys為模塊名稱sys.stdout.write(Hello world!)sys.platform # win32sys.version # 2.6.5 (r265:79096,Python快速(kui s)入門第二十八頁,共二百八十二頁。第二章 開啟(kiq)Python之旅本章主要介紹一些Python的基本知識和一些基本概念的介紹,為后續(xù)章節(jié)學(xué)習(xí)相關(guān)(xinggun)內(nèi)容做鋪墊。第二十九頁,共二百八十二頁。2.1 “旅行(lxng)”第一步認(rèn)識程序旅行前,我們要先熟悉地名,知道要去哪里
24、,將會經(jīng)過哪里。學(xué)習(xí)編程也一樣,在學(xué)習(xí)之前(zhqin)要先了解程序、調(diào)試、語法錯誤、運行錯誤、語義錯誤等。第三十頁,共二百八十二頁。2.1.1 程序(chngx)程序(chngx)是用語言寫成的。語言分高級語言和低級語言。高級語言翻譯成機(jī)器代碼有兩種方法:解釋和編譯。第三十一頁,共二百八十二頁。編譯型語言則是將源代碼完整的編譯成目標(biāo)代碼后才能執(zhí)行。以后在執(zhí)行時就不需要編譯了。下圖顯示了一個編譯器的結(jié)構(gòu)。這個有點類似我們乘坐的直達(dá)車,所有要乘車的人從起點上車,中途不搭載(d zi)其他乘客。第三十二頁,共二百八十二頁。2.2 數(shù) 據(jù) 類 型Python3 中有六個標(biāo)準(zhǔn)的數(shù)據(jù)類型:Number(
25、數(shù)字)、String(字符串)、List(列表)、Tuple(元組)、Sets(集合)、Dictionary(字典)。本節(jié)將講解Number(數(shù)字)數(shù)據(jù)類型,其它五種數(shù)據(jù)類型由后續(xù)相關(guān)章節(jié)進(jìn)行介紹。Python3支持三種不同的數(shù)值類型(lixng):整型(int)、浮點型(float)、復(fù)數(shù)(complex)。第三十三頁,共二百八十二頁。2.2.1 整型整型(int),通常被稱為是整型或整數(shù),是正或負(fù)整數(shù),不帶小數(shù)點。例如交互模式(msh)下輸入如下: 5151這里使用的就是整型。整型加法如下: 25+2550第三十四頁,共二百八十二頁。整型減法: 51-501整型乘法: 51*2102整型除
26、法(chf): 153/513.0 155/513.0392156862745097此處出現(xiàn)除不盡的情況了。第三十五頁,共二百八十二頁。在整數(shù)除法(chf)中,除法(/)計算結(jié)果是浮點數(shù),即使是兩個整數(shù)恰好整除,結(jié)果也是浮點數(shù),如果只想得到整數(shù)的結(jié)果,丟棄可能的分?jǐn)?shù)部分,可以使用地板除(/),整數(shù)的地板除(/)永遠(yuǎn)是整數(shù),即使除不盡。改成如下寫法: 153/513 155/513第三十六頁,共二百八十二頁。地板除(/)只取結(jié)果的整數(shù)部分,Python還提供一個(y )余數(shù)運算,可以得到兩個整數(shù)相除的余數(shù)。如下: 153%510 155%512第三十七頁,共二百八十二頁。2.2.2 浮點型浮點型
27、(float),浮點型由整數(shù)部分與小數(shù)部分組成,浮點型也可以使用科學(xué)計數(shù)法表示。先看示例(shl): 3.3*102336.59999999999997按預(yù)計應(yīng)該一位小數(shù),但輸出結(jié)果卻有這么多位小數(shù)。是因為整數(shù)和浮點數(shù)在計算機(jī)內(nèi)部存儲的方式是不同的,整數(shù)運算永遠(yuǎn)是精確的,而浮點數(shù)運算則可能會有四舍五入的誤差。第三十八頁,共二百八十二頁。如下(rxi)輸入: 3.3*102+15.5352.09999999999997浮點除法: 153/51.03.0 155/51.03.0392156862745097浮點地板除: 155/51.03.0 155%51.02.0第三十九頁,共二百八十二頁。2.
28、2.3 復(fù)數(shù)(fsh)復(fù)數(shù)( (complex),復(fù)數(shù)由實數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實部a和虛部b都是浮點型。Python支持(zhch)復(fù)數(shù),Python的復(fù)數(shù)我們當(dāng)前階段使用或接觸的比較少,此處就不做具體的講解,讀者有一個概念即可,有興趣可以自行查閱相關(guān)資料。第四十頁,共二百八十二頁。2.2.4 數(shù)據(jù)(shj)類型轉(zhuǎn)換有時候,我們需要對數(shù)據(jù)內(nèi)置的類型進(jìn)行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,你只需要將數(shù)據(jù)類型作為函數(shù)名即可。關(guān)于數(shù)據(jù)的類型轉(zhuǎn)換,有如下幾個函數(shù)可以使用:int(x) 將x轉(zhuǎn)換為一個整數(shù)。float(x) 將x轉(zhuǎn)換到一個浮點數(shù)。comp
29、lex(x) 將x轉(zhuǎn)換到一個復(fù)數(shù),實數(shù)部分為 x,虛數(shù)(xsh)部分為 0。complex(x, y) 將 x 和 y 轉(zhuǎn)換到一個復(fù)數(shù),實數(shù)部分為 x,虛數(shù)部分為 y。x 和 y 是數(shù)字表達(dá)式。第四十一頁,共二百八十二頁。int(x)示例: int(352.1)352float(x)示例: float(352.1)352.1 float(int(352.1)352.0這里先把352.1取整得到整數(shù)352,再用float將352轉(zhuǎn)換成浮點數(shù)352.0,這樣就得到我們(w men)需要的結(jié)果。第四十二頁,共二百八十二頁。2.2.5 常量(chngling)所謂常量就是不能變的變量,比如常用的數(shù)學(xué)常
30、數(shù)就是一個常量。在Python中,通常用全部大寫的變量名表示(biosh)常量。Python中有兩個比較常見的常量,分別為:PI和E。PI:數(shù)學(xué)常量 pi(圓周率,一般以來表示)。E:數(shù)學(xué)常量 e,e即自然常數(shù)(自然常數(shù))。這兩個常量將會在后續(xù)章節(jié)中被使用,具體的用法在使用中進(jìn)行體現(xiàn)。第四十三頁,共二百八十二頁。2.3 變量(binling)和關(guān)鍵字編程語言最強(qiáng)大的功能(gngnng)之一是操縱變量的能力。變量(variable)是一個需要熟知的概念。如果你覺得數(shù)學(xué)是讓你抓狂的話,別擔(dān)心,Python中的變量很好理解。變量基本上就是代表某值的名字。第四十四頁,共二百八十二頁。2.3.1 變量(
31、binling)在Python中,變量的使用環(huán)境非常寬松。沒有 在Python中,等號( = )是賦值語句,可以把任意數(shù)據(jù)類型賦值給變量。如下為定義(dngy)一個名為xiaohong的變量: xiaohong=XiaoHong此操作解釋:xiaohong是我們創(chuàng)建的變量,=是賦值語句,XiaoHong是變量值,需要用引號標(biāo)記。整句話的意思為:創(chuàng)建變量xiaohong并賦值為XiaoHong。(注意:字符串必須以引號標(biāo)記開始,并以引號標(biāo)記結(jié)束。)第四十五頁,共二百八十二頁。打印變量結(jié)果: print(xiaohong)XiaoHong在使用變量前,需要對其賦值,沒有值的變量是沒有意義的,編譯器
32、也不會編譯通過。例如我定義一個變量為abc,不賦任何值,輸入(shr)及結(jié)果如下: abcTraceback (most recent call last): File , line 1, in abcNameError: name abc is not defined第四十六頁,共二百八十二頁。同一個變量可以(ky)反復(fù)賦值,而且可以(ky)是不同類型的變量,輸入如下: a = 123 123 a=ABC print(a)ABC這種變量本身類型不固定的語言稱之為動態(tài)語言,與之對應(yīng)的是靜態(tài)語言。靜態(tài)語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。和靜態(tài)語言相比,動態(tài)語言更
33、靈活,就是這個原因。第四十七頁,共二百八十二頁。當(dāng)不能確定變量或數(shù)據(jù)的類型時,可以借助解釋器內(nèi)置的函數(shù)type進(jìn)行(jnxng)確認(rèn)。在交互模式下可以如下輸入: type(Hello,world!) type(100) type(3.0) a=test type type(a)第四十八頁,共二百八十二頁。請不要把賦值語句的等號等同于數(shù)學(xué)(shxu)的等號。比如下面的代碼:a = 100a = a + 200在編程語言中,賦值語句先計算右側(cè)的表達(dá)式a + 200,得到結(jié)果300,再賦給變量a。由于a之前的值是100,重新賦值后,a的值變成300。我們通過交互模式驗證,輸入如下: a=100 a=
34、a+200 print(a)300第四十九頁,共二百八十二頁。理解變量在計算機(jī)內(nèi)存中的表示也非常重要。當(dāng)我們寫: a=ABC時,Python解釋器干了兩件事情:(1)在內(nèi)存中創(chuàng)建了一個ABC的字符串;(2)在內(nèi)存中創(chuàng)建了一個名為a的變量,并把它指向ABC。也可以把一個變量a賦值給另一個變量b,這個操作實際上是把變量b指向變量a所指向的數(shù)據(jù),例如下面的代碼: a=ABC b=a a=XYZ print(b)最后一行打印出變量b的內(nèi)容(nirng)到底是ABC呢還是XYZ?如果從數(shù)學(xué)意義上理解,就會錯誤地得出b和a相同,也應(yīng)該是XYZ,但實際上b的值是ABC,讓我們一行一行地執(zhí)行代碼,就可以看到到
35、底發(fā)生了什么事。第五十頁,共二百八十二頁。執(zhí)行a = ABC,解釋器創(chuàng)建了字符串ABC和變量a,并把a(bǔ)指向ABC,如下圖所示:執(zhí)行b = a,解釋器創(chuàng)建了變量b,并把b指向a指向的字符串ABC,如圖2-4所示:執(zhí)行a = XYZ,解釋器創(chuàng)建了字符串XYZ,并把a(bǔ)的指向改為XYZ,但b并沒有更改,如圖2-5所示:所以,最后(zuhu)打印變量b的結(jié)果自然是ABC了。第五十一頁,共二百八十二頁。2.3.2 變量(binling)名稱變量名可以是由數(shù)字或字符組成的任意長度的字符串,但必須以字母(zm)開頭。使用大寫字母是合法的,但變量名使用小寫字母開頭是個好主意。python是區(qū)分大小寫的。舉個例子
36、來說,Name和name是兩個不同的變量名。交互模式中輸入如下: name=study python is happy Name=I aggree with you print(name)study python is happy print(Name)I aggree with you第五十二頁,共二百八十二頁。下劃線“_”可以(ky)出現(xiàn)在變量名中。它經(jīng)常用于連接多個詞組。比如happy_study, do_it_with_more_practice。交互模式輸入如下: happy_study=stay hungry stay foolish print(happy_study)stay
37、hungry stay foolish如果給變量取非法的名稱,解釋器顯示語法錯誤。請看下面的示例: 2wrongtest=just for testSyntaxError: invalid syntax該示例提示語法錯誤,錯誤信息為無效的語法,原因是它不是以字母開頭。 xiaomingme=surprisedSyntaxError: cant assign to operator該示例提示語法錯誤,錯誤信息為不能做指定操作,原因為它包含了一個非法字符。第五十三頁,共二百八十二頁。 from=fromSyntaxError: invalid syntaxfrom是Python的一個關(guān)鍵字。解釋器
38、通過關(guān)鍵字來識別(shbi)程序的結(jié)構(gòu),并且它們不能用來作為變量名稱。Python3中共有33個關(guān)鍵字:False None True and as assert break class continue def del elif else except finally for from global if import in nonlocal lambda is not or pass raisereturn try while with yield第五十四頁,共二百八十二頁。2.4 語 句語句是Python解釋器可以運行的一個代碼單元,也可以理解為可以執(zhí)行的命令。我們目前(mqin)已經(jīng)使
39、用過了兩種語句:print打印語句和賦值語句。賦值語句有兩個作用:一是建立新的變量,二是將值賦予變量。任何變量在使用時,都必須賦值。否則,被視為不存在的變量。 advice=boss,we want have a lunch type(advice)這個語句中的advice的類型是字符串(str)類型的。第五十五頁,共二百八十二頁。一般的情況下,我們(w men)用狀態(tài)圖表示變量的狀態(tài)。左邊是變量的名稱,右邊是變量值,中間的箭頭指向值。狀態(tài)圖顯示了賦值語句的最終操作結(jié)果。 advice=boss,we want have a lunch money=99999999 spend=1.11111
40、111如上面幾條語句對應(yīng)的狀態(tài)圖如下圖所示:第五十六頁,共二百八十二頁。2.5 表 達(dá) 式表達(dá)式是值、變量和操作符的組合。單獨一個值也被看作一個表達(dá)式。單獨的變量也可以看作一個表達(dá)式。表達(dá)式和語句一般(ybn)不容易區(qū)分,很多人會將兩者混在一起。那么語句和表達(dá)式之間有什么區(qū)別?表達(dá)式是某事,而語句是做某事,說的通俗點就是告訴計算機(jī)做什么。比如3*3是9,而print(3*3)打印出來是9。那么區(qū)別在哪里?比如我們在交互模式下輸入如下: 3*39 print(3*3)9第五十七頁,共二百八十二頁。在交互模式下,其結(jié)果都是一樣的。但這只是因為解釋器總是把所有表達(dá)式的值打印出來而已(其內(nèi)部都使用(s
41、hyng)了相同的函數(shù)對結(jié)果進(jìn)行呈現(xiàn),后面會有細(xì)致的介紹)。一般情況下,Python不會這么做,畢竟3*3這樣的表達(dá)式并不能做什么有趣的事情,而編寫print(3*3)會有一個顯示的。語句和表達(dá)式之間的區(qū)別在賦值時會表現(xiàn)的更加明顯一些。因為語句不是表達(dá)式,所以沒有值可供交互式解釋器打印出來。比如在交互模式下輸入如下: a=100 10*10100打印出9的結(jié)果。賦值語句輸入完成后,下面立刻出現(xiàn)了新的提示輸入符。而表達(dá)式輸入完成后,下面立刻得到了結(jié)果。不過對于賦值語句,有些東西已經(jīng)變了,變量a現(xiàn)在綁定了一個值100。第五十八頁,共二百八十二頁。這個是語句特性的一般定義:它們改變了事物。比如,賦值
42、語句改變了變量,print語句改變了屏幕顯示的內(nèi)容。賦值語句可能是任何計算機(jī)程序設(shè)計語言中最重要(zhngyo)的語句類型,盡管現(xiàn)在還難以說清它們的重要(zhngyo)性。第五十九頁,共二百八十二頁。2.6 運算符和操作(cozu)對象運算符和操作對象是計算機(jī)中比較常見的,任何(rnh)的計算,都涉及到運算符和操作對象。本節(jié)將介紹Python中的運算符和操作對象。第六十頁,共二百八十二頁。2.6.1 什么是運算符和操作(cozu)對象運算符我知道,我們前面學(xué)習(xí)的加(+)、減(-)、乘(*)、除(/)、地板除(/)、取余(%)等都是運算符,是一些特殊符號的集合。操作對象就是由運算符連接起來的對象
43、。Python支持以下8種運算符:(1)算術(shù)運算符。(2)比較(bjio)(關(guān)系)運算符。(3)賦值運算符。(4)邏輯運算符。(5)位運算符。 (6)成員運算符。(7)身份運算符。(8)運算符優(yōu)先級。第六十一頁,共二百八十二頁。2.6.2 算術(shù)(sunsh)運算符以下(yxi)變量a為10,變量b為5:運算符描述實例+加:兩個對象相加a + b 輸出結(jié)果 15-減:得到負(fù)數(shù)或是一個數(shù)減去另一個數(shù)a - b 輸出結(jié)果 5*乘:兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串a(chǎn) * b 輸出結(jié)果 50/除:x除以ya / b 輸出結(jié)果 2%取模:返回除法的余數(shù)b % a 輸出結(jié)果 0*冪:返回x的y次冪
44、a*b 為10的5次方, 輸出結(jié)果 100000/取整除(地板除):返回商的整數(shù)部分9/2 輸出結(jié)果 4 , 9.0/2.0 輸出結(jié)果 4.0第六十二頁,共二百八十二頁。交互模式下輸入: 2*32/1024/1024/10244.0 2*64/1024/1024/102417179869184.02*32是2的32次方,這個就是32位操作系統(tǒng)最大支持的內(nèi)存的字節(jié)數(shù),除以第一個1024是轉(zhuǎn)換為KB,1KB=1024B,除以第二個1024是轉(zhuǎn)換為MB,1MB=1024KB,除以第三個1024是轉(zhuǎn)換為GB,1GB=1024MB。這個結(jié)果(ji gu)也就意味著32位的操作系統(tǒng)最大只能支持4GB的內(nèi)存
45、?,F(xiàn)在大家都趨向于選擇64位的了,64位的系統(tǒng)能支持多大內(nèi)存,自己可以算一下。第六十三頁,共二百八十二頁。2.6.3 比較(bjio)運算符以下(yxi)變量a為10,變量b為20:運算符描述實例=等于:比較對象是否相等(a = b) 返回 False。!=不等于:比較兩個對象是否不相等(a != b) 返回 True.大于:返回x是否大于y(a b) 返回 False。小于:返回x是否小于y。(a =大于等于:返回x是否大于等于y。(a = b) 返回 False。=小于等于:返回x是否小于等于y。(a = b) 返回 True。第六十四頁,共二百八十二頁。在一些地方,會看到用1代表True
46、,0代表False,這種是正確也是合理的表示方式,這個大家更多會理解為開和關(guān)的意思,就像我們物理中所學(xué)習(xí)的電流的打開和關(guān)閉一樣。后面會有更多的地方用到用1和0代表True、False的示例(shl)。另外,在Python2中,有時可能會看到這個符號,其和!=一樣,也表示不等于,在Python3中已去除,若以后有看到運算符,那應(yīng)當(dāng)使用的是Python2。第六十五頁,共二百八十二頁。2.6.4 賦值運算符以下(yxi)變量a為10,變量b為20:運算符描述實例=簡單的賦值運算符c = a + b 將 a + b 的運算結(jié)果賦值為 c+=加法賦值運算符c += a 等效于 c = c + a運算符描
47、述實例-=減法賦值運算符c -= a 等效于 c = c a*=乘法賦值運算符c *= a 等效于 c = c * a/=除法賦值運算符c /= a 等效于 c = c / a%=取模賦值運算符c %= a 等效于 c = c % a*=冪賦值運算符c *= a 等效于 c = c * a/=取整(地板)除賦值運算符c /= a 等效于 c = c / a第六十六頁,共二百八十二頁。2.6.5 位運算符按位運算符是把數(shù)字看作二進(jìn)制來進(jìn)行計算的。Python中的按位運算法則如下。以下(yxi)變量a為60,變量b為13:運算符描述實例&按位與運算符(a & b) 輸出結(jié)果 12 ,二進(jìn)制解釋:
48、0000 1100|按位或運算符(a | b) 輸出結(jié)果 61 ,二進(jìn)制解釋: 0011 1101按位異或運算符:(a b) 輸出結(jié)果 49 ,二進(jìn)制解釋: 0011 0001按位取反運算符:(a ) 輸出結(jié)果 -61 ,二進(jìn)制解釋: 1100 0011, 在一個有符號二進(jìn)制數(shù)的補(bǔ)碼形式。左移動運算符:“右邊的數(shù)指定移動的位數(shù),高位丟棄,低位補(bǔ)0。a 右移動運算符:a 2 輸出結(jié)果 15 ,二進(jìn)制解釋: 0000 1111第六十七頁,共二百八十二頁。2.6.6 邏輯(lu j)運算符Python語言支持邏輯(lu j)運算符,以下變量a為10,變量b為20:運算符邏輯表達(dá)式描述實例Andx a
49、nd y布爾與 - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。(a and b) 返回 20。Orx or y布爾“或” - 如果 x 是非 0,它返回 x 的值,否則它返回 y 的計算值。(a or b) 返回 10。Notnot x布爾“非” - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。not(a and b)返回False第六十八頁,共二百八十二頁。a=10b=3list=1,2,3,4print(a in list)print (b in list)第六十九頁,共二百八十二頁。2.6.7 成員(
50、chngyun)運算符Python還支持成員運算符,測試(csh)實例中包含了一系列的成員,包括字符串,列表或元組。運算符描述實例in如果在指定的序列中找到值返回 True,否則返回 False。x在y序列中,如果x在y序列中返回True。not in如果在指定的序列中沒有找到值返回 True,否則返回 False。x不在y序列中,如果x不在y序列中返回 True。第七十頁,共二百八十二頁。a=10b=3print(a is b)print(a is not b)第七十一頁,共二百八十二頁。2.6.8 身份(shn fen)運算符身份運算符用于比較兩個(lin )對象的存儲單元運算符描述實例i
51、sis判斷兩個標(biāo)識符是不是引用自一個對象x is y,如果id(x)等于id(y) ,is返回結(jié)果1is notis not用于判斷兩個標(biāo)識符是不是引用自不同對象x is not y,如果id(x)不等于id(y).is not返回結(jié)果1第七十二頁,共二百八十二頁。2.6.9 運算符優(yōu)先級以下(yxi)表格列出了從最高到最低優(yōu)先級的所有運算符:運算符描述*指數(shù) (最高優(yōu)先級) + -按位翻轉(zhuǎn), 一元加號和減號 (最后兩個的方法名為 + 和 -)* / % /乘,除,取模和取整除+ -加法減法 右移,左移運算符&位 AND |位運算符= =比較運算符 = !=等于運算符= %= /= /= -=
52、 += *= *=賦值運算符is is not身份運算符in not in成員運算符not or and邏輯運算符第七十三頁,共二百八十二頁。2.7 字符串操作(cozu)字符串是 Python 中最常用(chn yn)的數(shù)據(jù)類型。我們可以使用引號(或)來創(chuàng)建字符串。字符串可以使用操作符+,但其功能和數(shù)學(xué)中的不一樣,它會進(jìn)行拼接(concatenation)操作,即將前后兩個字符首尾連接起來。如: string1=hello string2=world print(string1+string2)helloworld第七十四頁,共二百八十二頁。如果想讓字符串之間有空格,可以建一個空字符變量(b
53、inling),插在相應(yīng)的字符串之間讓它們隔開,或是在字符串中加入相應(yīng)的空格。交互模式下輸入如下: string1=hello string2=world space= print(string1+space+string2)hello world或者 string1=hello string2= world print(string1+string2)hello world第七十五頁,共二百八十二頁。計算機(jī)是美國人發(fā)明的,因此,最早只有127個字母被編碼到計算機(jī)里,也就是大小寫英文字母、數(shù)字和一些符號,這個編碼表被稱為ASCII編碼,比如大寫字母A的編碼是65,小寫字母z的編碼是122。在最
54、新的Python 3版本中,字符串是以UTF-8編碼的,也就是說,Python3的字符串支持多語言。Python2中默認(rèn)的編碼格式是ASCII格式,在沒修改編碼格式時無法正確打印漢字,在讀取中文(zhngwn)時會報錯。Python2使用中文的語法是在字符串前面加上前綴 u。第七十六頁,共二百八十二頁。2.8 注 釋當(dāng)程序變的更大更復(fù)雜時,讀起來也更困難。程序的各部分之間緊密銜接,想依靠部分的代碼來了解整個程序要做的,是困難的。在現(xiàn)實中,經(jīng)常會遇到一段代碼,很難弄清楚它在做什么、為什么那么做。因此,在程序中加入自然語言的筆記來解釋程序在做什么,是個不錯的主意。這種筆記稱為注釋(comments
55、),注釋必須以符號“#”開始。 注釋可以單獨占一行,也可以放在語句行的末尾。交互(jioh)模式下輸入如下: # 打印1+1的結(jié)果 print(1+1)2 print(1+1) # 打印1+1的結(jié)果2第七十七頁,共二百八十二頁。比如如下的代碼中注釋與代碼重復(fù),毫無用處: r=10 #將10賦值給r而下面這段代碼注釋則包含了代碼中隱藏的信息,如果不加注釋,很難讓人看懂這個是什么意思(雖然在實際中可能可以根據(jù)上下文判定,但需要浪費不必要的思考時間)。 r=10 #半徑,單位是米選擇好的變量名,可以減少注釋的需要,但長名字(mng zi)也會讓復(fù)雜表達(dá)式更難閱讀,所以這兩者之間需要衡量舍取。第七十八
56、頁,共二百八十二頁。2.9 調(diào) 試錯誤是好的,錯誤能幫助我們長進(jìn)。(1)還記得數(shù)字類型轉(zhuǎn)換嗎,若用int()轉(zhuǎn)換一個字符,會得到怎樣(znyng)的結(jié)果,嘗試一下,交互模式下輸入如下: int(hello)Traceback (most recent call last): File , line 1, in int(hello)ValueError: invalid literal for int() with base 10: hello這個是什么意思呢,開動你的大腦,思考一下。第七十九頁,共二百八十二頁。(2)在變量(binling)和關(guān)鍵字中,若變量(binling)被命名為關(guān)鍵字會怎
57、樣,輸入如下: class=你好SyntaxError: invalid syntax(3)在算術(shù)運算符中,若被除數(shù)為0,結(jié)果會怎樣,輸入如下: 9/0Traceback (most recent call last): File , line 1, in 9/0ZeroDivisionError: division by zero跟我們學(xué)習(xí)過的數(shù)學(xué)中的一樣,被除數(shù)不能為0。第八十頁,共二百八十二頁。2.10 問題解答(1)關(guān)鍵字那么多,我都記住嗎?這個可以不用去刻意記憶,隨著你逐步的學(xué)習(xí),會碰到一些常用關(guān)鍵字,碰多了自然就熟悉了。對于一些不常用的,碰到了再回頭看是否是屬于(shy)關(guān)鍵字???/p>
58、之,關(guān)鍵字可以在學(xué)習(xí)和使用中慢慢記憶。(2)這么多運算符,都需要熟練使用嗎?能熟練使用當(dāng)然最好了,若不能都熟練使用,也要有所了解,知道怎么使用,在實際解決問題時能知道應(yīng)該使用什么運算符,該怎么用。當(dāng)然,也可以碰到具體問題時再詳細(xì)研究,這也是一個不錯的辦法。(3)字符串的操作就只有這么一些嗎?字符串還有很多的操作,這里只是一些簡單的入門操作,具體在后面的章節(jié)會有詳細(xì)介紹。第八十一頁,共二百八十二頁。2.11 溫故知新(wn g zh xn),學(xué)以致用1. 回顧數(shù)據(jù)類型相關(guān)概念,整型、浮點型、數(shù)據(jù)類型轉(zhuǎn)換。2. 回顧變量和關(guān)鍵字相關(guān)概念,并嘗試記住這些關(guān)鍵字。3. 回顧運算符和操作對象,并通過不斷
59、調(diào)試熟悉各種運算符。4. 回顧字符串的操作及注釋,了解編碼方式,嘗試寫注釋。5. 小萌和小智約定(yudng),明天小智送一顆糖給小萌,并從后天起,小智每天送比前一天多一倍的糖給小萌,到第16天(包含這天),小萌一共可以收到多少顆糖?6. 小萌,運算符都學(xué)完了,我來考考你,看看你學(xué)的怎樣,用4個2以及各種運算符,你能得到最大的數(shù)是多少?7. 結(jié)合本章所學(xué),并查閱相關(guān)資料,看看下面的代碼的輸出結(jié)果是怎樣的,并嘗試解釋其結(jié)果。 habit=Python是一門很有用的編程語言n我想學(xué)好它 print(habit)#你認(rèn)為的結(jié)果是 len(habit)#你認(rèn)為的結(jié)果是第八十二頁,共二百八十二頁。練習(xí)題
60、1.#輸入a,b,c,d4個整數(shù),計算(j sun)a+b-c*d的結(jié)果2.#計算一個12.5m*16.7m的矩形房間的面積和周長3.#怎么得到9/2的小數(shù)結(jié)果4.#python計算中7*7*7*7.可以有多少種寫法第八十三頁,共二百八十二頁。1.#輸入a,b,c,d4個整數(shù),計算(j sun)a+b-c*d的結(jié)果a=input(please input a nimber:)b=input(please input a number:)c=input(please input a number:)d=input(please input a number:)print (a+b-c*d)?注意
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高三診斷考試試題及答案
- 2025年湖南物理考試試題及答案
- 地理生物卷子真題及答案
- 筆試題有哪些種類及答案
- 化學(xué)與技術(shù)科學(xué)倫理整合能力測評試題
- 古箏專業(yè)考試題目及答案
- 供氧操作考試題及答案
- 2025年高考物理“應(yīng)用力靈活”舉一反三試題
- 2025年小班語言題型試卷及答案
- 工程類知識考試題及答案
- 2025年北森潛力測評試題及答案
- 2025銀行招聘試題及答案詳解
- 騰訊新員工培訓(xùn)
- 2025年成人高考高升專試題(含答案)
- 實驗室生物安全管理制度完整版
- 層林盡染楓葉紅課件
- 車管所備案申請書
- 河南成人2024學(xué)位英語考試真題及答案
- 公出單(標(biāo)準(zhǔn)模版)
- LY/T 2988-2018森林生態(tài)系統(tǒng)碳儲量計量指南
- 南航廣州a320機(jī)隊非正常程序流程擴(kuò)展版
評論
0/150
提交評論