亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

Python完全新手教程

2020-01-04 18:07:17
字體:
來源:轉載
供稿:網友

Python入門教程FROM:http://www.cnblogs.com/taowen/articles/11239.aspx作者:taowen,billrice

Lesson1準備好學習Python的環境

下載的地址是:

www.python.org

linux版本的我就不說了,因為如果你能夠使用linux并安裝好說明你可以一切自己搞定的。

運行環境可以是linux或者是windows:

1、linux

redhat的linux安裝上去之后一定會有python的(必須的組件),在命令行中輸入python回車。這樣就可以進入一個

>>>的提示符

2、windows

安裝好了python之后,在開始菜單里面找到Python2.3->IDLE,運行也會進入一個有

>>>提示符的窗口

開始嘗試Python

1、輸入:

welcome="Hello!"

回車

然后又回到了>>>

2、輸入:

printwelcome

回車

然后就可以看到你自己輸入的問候了。

Lesson2搞定環境之后的前行

Python有一個交互式的命令行,大家已經看到了吧。所以可以比較方便的學習和嘗試,不用“新建-存檔-編譯-調試”,非常適合快速的嘗試。

一開始從變量開始(其實說變量,更準確的是對象,Python中什么都可以理解為對象)。

變量

welcome="hello!"

welcome就是變量名,字符串就是變量的類型,hello!就是變量的內容,""表示這個變量是字符串,""中間的是字符串的內容。

熟悉其他語言的人,特別是編譯類型的語言,覺得沒有變量的聲明很奇怪。在python中用賦值來表示我要這么一個變量,即使你不知道要放什么內容,只是要先弄一個地方來放你的東西,也要這么寫:

store=""

不過這個還是說明了store是字符串,因為""的緣故。

haveatry

tmp_storage=""

welcome="hello!"

tmp_storage=welcome

printtmp_storage

你會發現同樣的問候出現了。

字符串

字符串是用""標記的,但是用''也可以(不要說你看不出一個是雙引號,一個是單引號),兩者之間是有一丁點區別,不過你可以不用理會。其實是差不多的。字符串有很多自己的操作,最常用的是這樣的:

welcome="hello"

you="world!"

printwelcome+you

運行之后就會發現她輸出了helloworld!。

更多變量

變量還有幾種類型。

字符串

列表

字典

文件

勿庸置疑,這些都是非常非常常用的。對于數字就不用講了那就是:

radius=10

pi=3.14

area=pi*radius**2

print"theareais",area

下次講列表和字典

Lesson3Python中的數學結構

數學中你學什么東西最多遍?我想根據我的一點淺薄經驗(雖然我是數學系的),學得最多的是集合,無論什么數學書都從集合開始講起。然后講函數呢,又必然把映射再講一遍。可以說,集合和映射是數學中最基本的結構了。

Python對于數據結構非常明智的內置了兩個,回想我寫C的程序,往往是一開始就是用struct拼一個鏈表出來(重復勞動)。Python中提供了列表(list)和字典(dict)兩種數據結構。他們分別對應的原型是集合和映射。這個你應該明白了,只是表示方法有一點不一樣而已。

列表

列表的英文名是list嘛,所以我取一個名字叫

my_list=[]

這個就產生了一個空的列表。然后給它賦值

my_list=[1,2]

printmy_list

my_list.append(3)

printmy_list

非常容易明白的。append前面加了一個點,這個表示append是my_list方法。我實在不想又去給你解釋什么是對象,什么是成員方法,然后扯出一大段出來。

list是可以索引的:

printmy_list[1]

不過你或許會不明白為什么是2,而不是顯示的是1。因為索引從0開始,要輸出第一個元素:

printmy_list[0]

字典

contact={}

這個產生了一個空字典,contact。然后往里面填充內容:

contact={}

contact["name"]="taowen"

contact["phone"]=68942443

name就是你查字典的時候要查找的單詞,taowen就是查到的內容。不過你現在不是查,而是在寫這個字典。同理添加了phone這個詞條。

現在添加好了,看看contact的內容,怎么查看?自己想辦法吧。。。

如果你悟性夠,就會發現python很多操作是通用的,既然能夠print1,print"",printmy_list,那么其他數據類型的變量就沒有理由不能用了。

結合列表和字典

contact_list=[]

contact1={}

contact1['name']='taowen'

contact1['phone']=68942443

contact_list.append(contact1)

contact2={}

contact2['name']='god'

contact2['phone']=44448888

contact_list.append(contact2)

呵呵,夠復雜的吧。你可以想出我為什么要用兩個contact字典呢?。。。

Lesson4用不同的方式來操作Python

到現在為止,我們用的都是交互式的命令行來操作的,的卻是很方便,是吧?不過,復雜一些的情況就不那么好使了,來換一種方式來操作Python

在IDLE中點擊File->NewWindow,出現一個新窗口(對于linux下,你要用vim或者emacs或者pico把文本的源文件寫好了)。為了方便,先點擊File->Save,填入my_try.py。這樣能夠讓編輯器知道在編輯python的源文件,會把你輸入的代碼進行一點上色的處理。

填入下面的代碼:

i=5

n=0

whilei>0:

n=n+i

i=i-1

printn

你會發現輸入:之后,自動會給縮進。而且也沒有在python中發現和C/C++中類似的{}標記也沒有pascal中的beginend;,其實縮進就是python中表示一段代碼的從屬關系的標記方法。表示n=n+1和i=i-1這兩句都是while的。程序的運行邏輯應該不用解釋了吧。就是運行5+4+3+2+1的結果。

運行代碼

按F5,可能提示你沒有存盤,照著辦就是了。

發揮你的能力,計算從1到10的所有偶數的和(提示,可能沒有你想象的那么智能)。

Lesson5Python中的輸入與判斷

健全的程序大凡都需要輸入的功能,所以要學習一下簡單的輸入:

輸入要使用的是raw_input或者input函數,區別是raw_input直接把你的輸入作為字符串返回,而input則在raw_input的基礎上把字符串轉換為數字返回(如果你輸入$@#$$怎么辦?自己試試看)。我們就利用這兩個輸入函數來作一些有趣的事情。

your_name=raw_input("pleaseinputyourname:")

hint="welcome!%s"%your_name

printhint

不簡單吧,還有%呢。%s表示在這個位置插入一個字符串,%表示把后面提供的參數“推”入前面的字符串中,所以推的結果是把%s推出去了,把your_name給填入那個地方了。printf知道吧,C中的printf就是一樣的嘛。

inputed_num=0

while1:

inputed_num=input("inputanumberbetween1and10")

ifinputed_num>=10:

pass

elifinputed_num<1:

pass

else:

break

print"hehe,don'tfollow,won'tout"

pass就是pass了,過了嘛,什么都不干了。break就是跳出這個while1(無窮循環,1總是真的,while總是執行)。是換行,不會全部忘光了吧。

Lesson6Python余興節目

代碼:[復制到剪貼板]

fromTkinterimport*

root=Tk()

w=Label(root,text="Hello,world!")

w.pack()

root.mainloop()

呵呵,一次太超前了一點,不過也不是解釋不清楚。我干脆也不解釋了吧。給大家增進一點興趣。

---------

還是解釋一下

fromtTkinterimport*

是引入一個模塊,這個模塊用來創建GUI(GraphicUserInterface)窗口

Tk()創建了一個主窗口

Label()創建一個標簽

Label的第一個參數是root表明Label是在這個主窗口中的。

w.pack()是指用缺省的方式把Label放置在主窗口中

root.mainloop()開始了一個循環,是等待你的輸入的循環。

Lesson7Python基本語法要素齊動員

現在的目的是盡量想出一個用的東西僅限于內置的變量類型和語句的一個綜合的例子,我想還是那個聯系人表的例子吧

################

#呵呵,還忘記了講注釋

#第一個算是完整的程序

################

contact={}

contact_list=[]

while1:

contact['name']=raw_input("pleaseinputname:")

contact['phone']=raw_input("pleaseinputphonenumber:")

contact_list.append(contact.copy())

go_on=raw_input("continue?")

ifgo_on=="yes":

pass

elifgo_on=="no":

break

else:

print"youdidn'tsayno"

i=1

forcontactincontact_list:

print"%d:name=%s"%(i,contact['name'])

print"%d:phone=%s"%(i,contact['phone'])

i=i+1

首先是回憶一下字符串

字符串既能夠用""也能夠用''。然后是很有特色的%操作,起到格式化字符串的作用,前面僅僅在字符串中有一個%s,現在有%d和%s兩個,分別代表插入十進制數值和字符串于%x標記的位置處。

然后是列表

列表是順序的序列,用append在后面附加,也能構用索引值索引。所以我們完全可以用一個變量保存len(contact_list)得到的長度,然后一個個的遍歷,不過這里展示了另外一種非常方便的方法。而且值得注意的是append()中的參數,我使用了contact.copy(),你可以嘗試著把copy()給去掉,觀察結果你就知道了所謂的append是怎么干的了,特別是你對指針之類的東西很有感覺的話(但是在Python中是沒有指針這個概念的)

再來看看字典

字典是鍵(key)和值(value)的對應組合成的無序的序列。所以你存的時候要指明鍵(name或者phone),而且取的時候也是一樣的。

接下來是判斷

if是很好用的,==表示判斷兩個是否相等,=表示把右邊的賦給左邊的。而且可以直接判斷字符串是否相等,這個太方便了,如果你曾經用過strcpy()的話,就知道了。elif是表示elseif的意思,如果if不滿足就判斷elif的條件是否滿足,最后是到else中去。

循環是個主體

while和for都是循環。不過這里while就沒什么說的了,又是很經典的while1,死循環,然后必須在里面用break來跳出。for和C中的for是不一樣的,forin才是一個完整的語句,指的是從一個能夠逐一取值的序列中(比如list),一個一個的取出值賦給for后面指定的變量中,直到取空,循環結束。其實回想一般用C中的for的經歷,也大體如此。而且你還可以用foriinrange(1,100)來指定一個范圍從多少到多少??梢哉fforin充分體現了python的體貼周到,用起來很直觀,不會繞彎。

接下來就是運行了,大家慢慢調試吧。下次可能是講異常處理,因為我覺得在深入到使用各種高級的要素之前,先要學會怎么去處理異常。最常見的異常應該是input(),然后你給出的輸入是一個無法轉換為數字的字符串了,那么我們就要來處理它。

Lesson8Python中的錯誤檢測

寫程序什么最重要?完成功能最重要。但是程序中難免要有用戶的輸入,對于這些寫的時候未可預知的因素中間可能出現的錯誤,一般稱作異常。對于異常情況的處理,不同語言有不同的做法,比如檢查函數的返回值之類的,但是那種辦法會把代碼弄成一團漿糊。Python在這個方面是比較先進的,我們從一個例子來看看:

printinput()

呵呵,看不同吧。其實input是輸入,print是輸出。也就是把輸入的東西立即輸出。但是這個和

printraw_input()

有什么不同呢?

不同的地方是,input()會在raw_input()接收了“字符串”的輸入之后進行一些處理,比如你是輸入1+2,然后輸出的就是3了,而raw_input就是原原本本的1+2的輸出了。用代碼表示就是

eval(raw_input())

eval是求表達式的值,任何一個簡單的python表達式,就像1+2這樣的作為字符串送入,就能把值從eval處理之后取出來。

現在你實驗一下"sdfsdf”之后,你會發現提示你

引用:

Traceback(mostrecentcalllast):

File"",line1,in-toplevel-

input()

File"",line0,in-toplevel-

NameError:name'sdfsdf'isnotdefined

如果輸入其他稀奇古怪的字符串還可能有其他的出錯提示,我們現在要做的就是捕捉這種由用戶輸入引起的錯誤。這么來作:

try:

printinput()

except:

print'thereisanerrorinyourinput'

這下你無論怎么輸入都不會有什么其他的提示了,就是自己設定的print語句作為提示?,F在把tryexcept的組合去掉,回到printinput()你再嘗試一下:

1/0

這個顯然是一個錯誤,被零除的錯誤。那么專門來捕捉一下這個錯誤:

try:

printinput()

exceptZeroDivisionError:

print'cannotbedividedbyzero'

這下你能夠捕捉到被零除的錯誤了。然后你再嘗試其他的輸入,可能錯誤就沒有被捕捉了。所以再補上:

try:

printinput()

exceptZeroDivisionError:

print'cannotbedividedbyzero'

except:

print'thereisanerrorinyourinput'

注意,捕捉所有錯誤的except必須放在所有的except的最后一位。明白了?OK

還有更多的能夠捕捉的錯誤,自己查手冊吧(暫時看不了手冊沒關系,慢慢來嘛)。以后還能夠自己raise(引發)異常呢。不過那都是比較高級的應用了,對于出錯處理從一開始就有這個印象,并牢記在心中對于以后寫大一些的軟件很有好處。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久中文字幕一区| 国内外成人免费激情在线视频网站| 亚洲第一区第二区| 欧美日韩在线观看视频小说| 国产日韩精品电影| 日韩精品日韩在线观看| 久久久久久久999| 国产精品视频专区| 国产成人精品综合久久久| 欧美一级淫片videoshd| 欧美日韩在线视频一区| 国产日韩欧美在线看| 日韩欧美在线视频日韩欧美在线视频| 91欧美视频网站| 亚洲女同精品视频| 国产成人精彩在线视频九色| 91中文字幕在线观看| 欧美专区福利在线| 亚洲人午夜精品| 国产精品亚发布| 中文字幕亚洲自拍| 亚洲free嫩bbb| 日韩女优人人人人射在线视频| 色先锋资源久久综合5566| 热久久美女精品天天吊色| 国产免费一区二区三区在线能观看| 亚洲人av在线影院| 精品久久久久久中文字幕| 亚洲网站在线看| 国产精品亚洲第一区| 日韩欧美国产网站| 欧美日本国产在线| 亚洲片国产一区一级在线观看| 色婷婷久久一区二区| 日韩亚洲欧美中文高清在线| 一个色综合导航| 亚洲国产精品视频在线观看| 欧美日韩精品在线观看| 欧美在线免费观看| 欧美夫妻性视频| 国产精品亚洲第一区| 欧美一级黑人aaaaaaa做受| 精品magnet| 欧美极品少妇xxxxⅹ喷水| 成人精品福利视频| 国内精久久久久久久久久人| 久久久免费观看视频| 国产性色av一区二区| 综合久久五月天| 国产在线视频2019最新视频| 成人精品网站在线观看| 国产综合在线看| 亚洲欧美日韩精品| 97在线视频精品| 亚洲高清免费观看高清完整版| 久久久久久国产精品三级玉女聊斋| 米奇精品一区二区三区在线观看| 午夜精品久久久久久久99热| 亚洲电影在线观看| 国产精品自拍小视频| 亚洲色图在线观看| 亚洲美女精品成人在线视频| 国产999精品视频| 久久久精品亚洲| 国内精品久久久久久中文字幕| 性欧美xxxx| 中文字幕av一区二区三区谷原希美| 国产美女精品视频| 亚洲国产福利在线| 国产不卡精品视男人的天堂| 国产精品99久久99久久久二8| 色婷婷av一区二区三区久久| 91情侣偷在线精品国产| 国产999在线观看| 国产亚洲美女久久| 日本精品视频在线观看| 在线播放国产一区二区三区| 欧美精品videossex88| 美日韩精品免费观看视频| 日韩av高清不卡| 国产精品毛片a∨一区二区三区|国| 日韩av电影手机在线观看| 国产主播欧美精品| 久久人人爽人人| 奇米四色中文综合久久| 欧美日韩日本国产| 日韩欧美高清视频| 高清日韩电视剧大全免费播放在线观看| 久久乐国产精品| 亚洲欧美日韩中文在线| 在线播放国产一区中文字幕剧情欧美| 国产精品天天狠天天看| 中文字幕久久久| 欧美专区在线播放| 国产精品欧美日韩一区二区| 91精品啪aⅴ在线观看国产| 日韩美女写真福利在线观看| 亚洲视频在线观看视频| 久久精品久久久久电影| 伊人久久久久久久久久久久久| 日韩精品在线观看视频| 国产精品一区二区三区在线播放| 日韩成人在线视频网站| 九九九久久国产免费| 国产精自产拍久久久久久蜜| 色久欧美在线视频观看| 亚洲国产毛片完整版| 中文字幕欧美在线| 亚洲自拍在线观看| 亚洲午夜性刺激影院| 91精品国产高清久久久久久91| 国产精品一久久香蕉国产线看观看| 日韩视频精品在线| 精品福利在线看| 夜夜躁日日躁狠狠久久88av| 国产视频精品久久久| 欧美福利小视频| 大伊人狠狠躁夜夜躁av一区| 欧美影院成年免费版| 一区二区亚洲精品国产| 全球成人中文在线| 成人性教育视频在线观看| 亚洲第一国产精品| 亚洲最新中文字幕| 成人观看高清在线观看免费| 国语自产精品视频在免费| 亚洲精品中文字幕女同| 精品久久久久久久大神国产| 国内偷自视频区视频综合| 91国内揄拍国内精品对白| 97精品一区二区视频在线观看| 在线免费看av不卡| 国产91精品久| 久久精品色欧美aⅴ一区二区| 久久久免费在线观看| 欧美成人sm免费视频| 欧洲s码亚洲m码精品一区| 国产福利精品av综合导导航| 日韩欧美在线国产| 亚洲欧美激情视频| 国产精品国模在线| 国产精品久久在线观看| 久久久国产一区二区| 国产视频久久网| 日韩在线中文字幕| 成人性生交大片免费观看嘿嘿视频| 国产视频在线观看一区二区| 91精品视频在线播放| 91精品国产综合久久香蕉最新版| 欧美影院久久久| 欧美乱大交xxxxx另类电影| 性欧美激情精品| 国产91在线高潮白浆在线观看| 亚洲欧美日韩在线高清直播| 国产精品亚洲片夜色在线| 成人日韩在线电影| 97超级碰在线看视频免费在线看| 欧美大学生性色视频| 久久久久久免费精品| 日韩免费观看高清| 日韩亚洲欧美成人| www.欧美三级电影.com| 欧美一级淫片播放口| xxxx欧美18另类的高清|