青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

任我行

一天一個腳印......
每日一句:
posts - 54, comments - 218, trackbacks - 1, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Python完全新手教程(lesson5-lesson10)

Posted on 2005-10-11 16:34 任我行 閱讀(990) 評論(0)  編輯 收藏 引用 所屬分類: Python
Lesson 5 Python中的輸入與判斷

健全的程序大凡都需要輸入的功能,所以要學習一下簡單的輸入:
輸入要使用的是raw_input或者input函數,區別是raw_input直接把你的輸入作為字符串返回,而input則在raw_input的基礎上把字符串轉換為數字返回(如果你輸入$@#$$怎么辦?自己試試看)。我們就利用這兩個輸入函數來作一些有趣的事情。

代碼:
your_name = raw_input("please input your name:")
hint = "welcome! %s" % your_name
print hint
不簡單吧,還有%呢。%s表示在這個位置插入一個字符串,%表示把后面提供的參數“推”入前面的字符串中,所以推的結果是把%s推出去了,把your_name給填入那個地方了。printf知道吧,C中的printf就是一樣的嘛。

代碼:
inputed_num = 0
while 1:
? ? inputed_num = input("input a number between 1 and 10\n")
? ? if inputed_num >= 10:
? ?? ???pass
? ? elif inputed_num < 1:
? ?? ???pass
? ? else:
? ?? ???break
print "hehe, don't follow, won't out"

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


Lesson 6 Python余興節目

from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()

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

---------
還是解釋一下
fromt Tkinter import *
是引入一個模塊,這個模塊用來創建GUI(Graphic User Interface)窗口
Tk()創建了一個主窗口
Label()創建一個標簽
Label的第一個參數是root表明Label是在這個主窗口中的。
w.pack()是指用缺省的方式把Label放置在主窗口中
root.mainloop()開始了一個循環,是等待你的輸入的循環。


Lesson 7 Python基本語法要素齊動員

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

################
#呵呵,還忘記了講注釋
#第一個算是完整的程序
################
contact = {}
contact_list = []
while 1:
? ? contact['name'] = raw_input("please input name: ")
? ? contact['phone'] = raw_input("please input phone number: ")
? ? contact_list.append(contact.copy())
? ? go_on = raw_input("continue?\n")
? ? if go_on == "yes":
? ?? ???pass
? ? elif go_on == "no":
? ?? ???break
? ? else:
? ?? ???print "you didn't say no\n"
i = 1
for contact in contact_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是表示else if的意思,如果if不滿足就判斷elif的條件是否滿足,最后是到else中去。

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

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

Lesson 8 Python中的錯誤檢測

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

代碼:
print input()

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

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

代碼:
eval(raw_input())

eval是求表達式的值,任何一個簡單的python表達式,就像1+2這樣的作為字符串送入,就能把值從eval處理之后取出來。
現在你實驗一下"sdfsdf”之后,你會發現提示你

提示:
Traceback (most recent call last):
??File "", line 1, in -toplevel-
? ? input()
??File "", line 0, in -toplevel-
NameError: name 'sdfsdf' is not defined

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

try:
? ? print input()
except:
? ? print 'there is an error in your input'

這下你無論怎么輸入都不會有什么其他的提示了,就是自己設定的print語句作為提示。現在把try except的組合去掉,回到print input()你再嘗試一下:
1/0
這個顯然是一個錯誤,被零除的錯誤。那么專門來捕捉一下這個錯誤:
try:
? ? print input()
except ZeroDivisionError:
? ? print 'can not be divided by zero'

這下你能夠捕捉到被零除的錯誤了。然后你再嘗試其他的輸入,可能錯誤就沒有被捕捉了。所以再補上:
try:
? ? print input()
except ZeroDivisionError:
? ? print 'can not be divided by zero'
except:
? ? print 'there is an error in your input'

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

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

Lesson 9 走向模塊化的第一步

大規模的程序設計需要你把一個大的程序拆分成n個模塊。然后把模塊進行組合,交互成為一個完整的程序。你不可能像現在這樣,從頂寫到尾。。。
那么我們從函數開始。
def square(x):
? ? return x**2

print square(5)

簡單吧,這個是我看過的函數定義中最簡潔的。def表示這個開始定義一個函數,x是參數,參數是不需要類型的,因為python是不需要明確指出類型的。return是返回值,返回的值插入到調用函數的地方。再復雜一些
def multiply(a, b):
? ? return a*b

print multiply(1,2)

這是兩個參數的函數。那么返回兩個值呢?
def swap(a, b):
? ? return (b,a)
print swap(1,2)

呵呵,其實這里返回的并不是兩個值,而是一個值。怎么說呢。(b, a)就是一個東西,是一個元組(turple),你可以用這樣的方式成生一個元組,并使用它。元組是基本的變量類型:
my_turple = (1, 2, 3)
my_list = []
for i in my_turple:
? ? my_list.append(i)
print my_list

其實元組和列表非常像,但是列表的長度是可以變化的,而且成員是可以改變的。但是元組是什么都不能變的,是只讀的。

對于高級一點的話題:傳遞進來的參數是否可以被修改,這個問題取決于你傳遞了什么近來。如果是數字或者字符串,是不能夠改變的,但是如果是這樣的:

def test_func(list_be_passed):
? ? list_be_passed[0] = 'towin'
my_list = ['taowen']
print my_list
test_func(my_list)
print my_list

就能夠改變傳遞近來的參數了,所以處理的時候要小心,必要的時候copy一下再傳遞。

函數簡單吧,但是很好用的。想起C中的函數那么那么多麻煩,真是感慨萬千啊。下面是應該講GUI編程呢,還是面向對象呢?思考一下

Lesson 10 Python的文件操作

文件操作....是一個語言和外界聯系的主要方法....現在以txt為例簡單的講一下...

首先是建立關聯...假設在存在以下文件 c:\a.txt
This is line #1
This is line #2
This is line #3
END


>>> xxx = file('c:\\a.txt', 'r')

關鍵字的第一部分,是文件路徑及名稱。注意這里面,路徑需要用\\
第二部分,是對文件的模式或者叫權限,一般有以下3種 "r" (read), "w" (write)和 "a"(append).

之后,就可以利用
xxx_content = infile.read()
xxx_content = infile.readlines()
來讀取文件內容了
>>> xxx = file('c:\\a.txt', 'r')
>>> xxx_content = xxx.read()
>>> print xxx_content
This is line #1
This is line #2
This is line #3
END
>>> xxx.close()
>>>

>>> infile = file('c:\\a.txt', 'r')
>>> xxx = file('c:\\a.txt', 'r')
>>> for xxx_line in xxx.readlines():
? ? ? ? print 'Line:', xxx_line
???????
Line: This is line #1

Line: This is line #2

Line: This is line #3

Line: END
>>> xxx.close()
>>>

然后是文件的寫入
>>> xxx=file('c:\\test.txt','w')
>>> xxx.write('billrice')
>>> xxx.write('testtest')
>>> xxx.write('enter\n')
>>> xxx.writelines(['billrice','ricerice'])
>>> xxx.close()
>>>
>>> xxx=file('c:\\test.txt','r')
>>> content=xxx.read()
>>> print content
billricetesttestenter
billricericerice
>>>

需要注意的是...在xxx.close()之前,c盤下面只有一個空空的test.txt,xxx.close()的作用相當于最后的存盤。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品日日摸夜夜摸av| 久久久夜精品| 欧美午夜国产| 亚洲欧美日本伦理| 欧美一区二区精品| 永久免费毛片在线播放不卡| 欧美成人xxx| 欧美精品一区二区三区很污很色的| 一本大道久久精品懂色aⅴ| 亚洲无人区一区| 国产亚洲精品久久久久动| 久久噜噜亚洲综合| 欧美精品首页| 久久精品视频网| 欧美精品v日韩精品v国产精品| 亚洲男人的天堂在线观看| 亚洲国产高清一区二区三区| 中文亚洲免费| 欧美在线播放一区| 一区二区91| 久久精品卡一| 亚洲新中文字幕| 久久人人爽人人爽爽久久| 99在线视频精品| 久久久久国产精品一区三寸| 中国女人久久久| 巨胸喷奶水www久久久免费动漫| 一区二区冒白浆视频| 久久久久成人精品免费播放动漫| 亚洲最新视频在线| 久久免费偷拍视频| 久久精品国产96久久久香蕉| 欧美日韩91| 欧美国产在线观看| 国产美女一区| 99国产精品国产精品毛片| 亚洲第一精品在线| 欧美中文字幕视频| 欧美一级成年大片在线观看| 欧美电影免费观看高清| 久久精品中文| 国产欧美日韩另类视频免费观看| 亚洲三级色网| 在线观看欧美日本| 欧美一区二区在线观看| 香蕉av777xxx色综合一区| 欧美激情中文不卡| 亚洲国产成人精品久久久国产成人一区| 国产精品一区二区a| 99日韩精品| 亚洲图片在区色| 欧美成人激情视频免费观看| 老司机久久99久久精品播放免费| 国产欧美一区二区色老头| 在线亚洲欧美| 亚洲一区二区在| 欧美日韩一区二区在线观看视频| 亚洲国内自拍| 一本大道久久a久久综合婷婷| 欧美成人国产一区二区| 亚洲电影免费在线| 亚洲激情综合| 欧美激情bt| 99国产精品国产精品久久| 一区二区三区导航| 国产精品久久久久久一区二区三区 | 亚洲国产一区在线| 久久综合久久综合久久| 欧美高清不卡| 日韩视频不卡中文| 欧美日韩中文字幕日韩欧美| 在线一区二区三区四区五区| 欧美一区二区在线看| 国产日韩一区二区三区在线| 久久精品1区| 欧美二区在线播放| 一区二区三区高清| 国产日韩av在线播放| 欧美一区影院| 久久尤物电影视频在线观看| 99re6热在线精品视频播放速度 | 亚洲一二三区在线观看| 午夜精品视频在线观看| 国产在线不卡| 欧美国产日韩在线| 中文一区在线| 久久一区二区三区四区五区| 亚洲精品乱码久久久久久黑人| 欧美日韩不卡合集视频| 亚洲欧美日韩综合一区| 久久一二三四| 亚洲午夜久久久久久久久电影网| 国产一级久久| 欧美国产日韩一区二区在线观看| 亚洲午夜精品网| 欧美高清hd18日本| 欧美一区二区成人6969| 亚洲国产日韩在线| 国产精品日韩欧美一区二区| 久久夜精品va视频免费观看| 一本色道久久综合亚洲91| 久久影视精品| 亚洲一区bb| 亚洲国产裸拍裸体视频在线观看乱了中文 | 99riav久久精品riav| 久久精品日产第一区二区三区| 91久久在线播放| 国产日韩精品一区二区| 欧美金8天国| 久久看片网站| 欧美一区2区视频在线观看| 亚洲精品视频中文字幕| 免费影视亚洲| 久久久久久亚洲精品中文字幕 | 狠狠久久亚洲欧美专区| 国产精品不卡在线| 欧美激情一区| 美女主播一区| 久久久国产精品一区| 亚洲视频精品在线| 亚洲激情综合| 欧美激情导航| 麻豆国产va免费精品高清在线| 性18欧美另类| 亚洲欧美国产毛片在线| 一本色道久久综合亚洲精品婷婷| 在线成人亚洲| 悠悠资源网久久精品| 国内精品视频久久| 国产女主播一区| 国产精品久久国产三级国电话系列| 欧美freesex交免费视频| 久久综合久久综合九色| 久久精品1区| 久久精品日产第一区二区三区| 亚洲欧美日韩一区二区三区在线观看| 亚洲免费观看高清完整版在线观看| 亚洲国产综合视频在线观看| 亚洲高清不卡在线| 亚洲国产精品久久久| 亚洲激情视频网| 日韩亚洲欧美高清| 一个人看的www久久| 一本色道久久综合亚洲精品小说| 麻豆国产va免费精品高清在线| 欧美日韩国产精品| 欧美激情一区| 欧美日韩在线播放三区| 国产精品v欧美精品∨日韩| 国产精品成人v| 国产欧美视频一区二区三区| 国产情侣一区| 亚洲福利视频二区| 一区二区av| 欧美在线免费观看亚洲| 久久夜色撩人精品| 亚洲黄色免费网站| 亚洲精品久久久一区二区三区| 一本色道久久综合亚洲精品不卡| 午夜精品久久久久久| 久久国产色av| 欧美理论电影网| 国产精品入口夜色视频大尺度 | 欧美本精品男人aⅴ天堂| 欧美国产日韩二区| 国产精品日韩电影| 亚洲第一精品久久忘忧草社区| 亚洲精品乱码久久久久久久久| 亚洲天堂免费在线观看视频| 久久久久久穴| 亚洲精品看片| 欧美在线免费观看| 欧美国产一区二区在线观看| 国产精品毛片在线| 亚洲国产精品视频| 午夜视频在线观看一区二区| 久久亚洲图片| 亚洲深夜福利视频| 麻豆精品视频在线观看视频| 欧美无乱码久久久免费午夜一区| 国外成人免费视频| 亚洲图片你懂的| 牛牛影视久久网| 亚洲欧美在线高清| 欧美日本亚洲| 亚洲国产精品专区久久| 午夜精品婷婷| 日韩视频在线一区| 久久久噜噜噜久久狠狠50岁| 国产精品久久国产愉拍| 亚洲精品在线免费| 免费国产一区二区| 亚洲图片欧美日产| 欧美激情一二区| 在线观看亚洲视频| 久久不射电影网| 中文精品视频| 欧美日韩亚洲成人| 日韩网站在线观看| 欧美国产欧美亚州国产日韩mv天天看完整|