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

任我行

一天一個腳印......
每日一句:
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私拍在线观看 | 欧美成人有码| 免费视频最近日韩| 欧美激情综合色| 亚洲精品免费看| 亚洲理论在线观看| 亚洲精品在线观看免费| 亚洲性感美女99在线| 久久成人国产| 欧美精品一区二区精品网 | 国产精品久久久久一区二区三区共 | 一本色道久久综合狠狠躁篇怎么玩| 亚洲欧洲综合另类| 一区二区国产日产| 欧美有码在线观看视频| 另类尿喷潮videofree| 欧美精品一区在线播放| 国产精品日韩一区二区三区| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 久久久久久一区| 欧美精品激情| 韩国美女久久| 亚洲一区激情| 欧美激情欧美激情在线五月| 中日韩男男gay无套| 久久亚洲精品欧美| 国产精品午夜久久| 最新国产拍偷乱拍精品| 久久精品五月| 亚洲七七久久综合桃花剧情介绍| 亚洲免费人成在线视频观看| 欧美激情一区二区三区不卡| 激情综合五月天| 久久久国产精品一区| 国产精品久久久久久一区二区三区| 韩日欧美一区| 午夜精品福利在线观看| 亚洲国产精品一区二区第四页av | 免费久久久一本精品久久区| 国产精品入口| 一本一本大道香蕉久在线精品| 久久青草福利网站| 午夜精品久久久久久久久久久| 欧美福利视频在线| 在线欧美小视频| 久久国产精品久久精品国产| 在线综合+亚洲+欧美中文字幕| 猛男gaygay欧美视频| 国内精品久久久久影院优| 久久99伊人| 亚洲欧美成aⅴ人在线观看| 欧美日韩一区二区高清| 日韩午夜免费视频| 欧美激情女人20p| 男人的天堂亚洲| 亚洲国产一成人久久精品| 美女精品在线| 可以免费看不卡的av网站| 尹人成人综合网| 美女福利精品视频| 老司机午夜精品| **性色生活片久久毛片| 老色鬼精品视频在线观看播放| 久久久久久久一区二区| 亚洲欧美在线免费| 亚洲私人黄色宅男| 欧美日韩在线一区二区三区| 亚洲无线观看| 亚洲一区二区精品| 国产精品自在线| 久久天天躁夜夜躁狠狠躁2022| 香蕉久久a毛片| 精品9999| 99国内精品久久久久久久软件| 欧美午夜在线一二页| 欧美一乱一性一交一视频| 久久国产精品一区二区三区| 在线国产欧美| 亚洲日本成人| 国产精品私拍pans大尺度在线| 久久超碰97人人做人人爱| 久久理论片午夜琪琪电影网| 亚洲精品免费一二三区| 一区二区三区四区国产精品| 国产欧美一区二区色老头| 免费高清在线一区| 欧美人在线视频| 久久精品视频免费播放| 欧美freesex交免费视频| 亚洲午夜女主播在线直播| 欧美一二三视频| 欧美一区二区精品| 在线不卡中文字幕| 99在线精品视频在线观看| 国产综合在线视频| 亚洲精品国产系列| 国产一区二区三区日韩| 亚洲国产你懂的| 国产精品资源在线观看| 亚洲激情小视频| 韩国三级在线一区| 中国日韩欧美久久久久久久久| 136国产福利精品导航网址| 一区二区三区你懂的| 亚洲第一精品在线| 亚洲女同在线| 亚洲婷婷综合久久一本伊一区| 久久国产主播| 午夜日韩在线观看| 欧美精品久久久久久久久老牛影院 | 亚洲大片免费看| 国产日本欧美视频| 亚洲精品久久久一区二区三区| 狠狠色丁香婷婷综合影院| 99在线精品观看| 亚洲精品在线观| 久久久噜噜噜久久久| 香蕉国产精品偷在线观看不卡| 欧美韩日一区二区三区| 欧美mv日韩mv国产网站| 韩国在线视频一区| 久久国产精品电影| 欧美三级黄美女| 亚洲午夜激情网站| 男人的天堂成人在线| 欧美成人午夜激情在线| 国产欧美亚洲日本| 亚洲图片欧美一区| 在线视频亚洲| 欧美激情中文字幕一区二区| 蜜臀91精品一区二区三区| 国产欧美日韩一区| 午夜精品久久久久久久久久久久久| 亚洲色图制服丝袜| 欧美日韩国产黄| 亚洲精品美女久久7777777| 亚洲精品免费电影| 欧美伦理91i| 一本色道久久综合亚洲精品不卡| 中文国产一区| 国产精品久久久久久久7电影| 一区二区黄色| 欧美在线免费观看亚洲| 国产亚洲午夜| 久久精品夜色噜噜亚洲aⅴ| 久久影视精品| 亚洲欧美国产精品专区久久| 亚洲一区二区视频| 国产欧美精品一区二区色综合| 亚洲主播在线观看| 久久久久久欧美| 亚洲国产一区二区在线| 欧美精品三级| 亚洲欧美日韩国产成人精品影院| 久久av二区| 激情欧美日韩一区| 欧美暴力喷水在线| 一区二区欧美在线观看| 性视频1819p久久| 精品动漫一区| 欧美精品免费在线| 午夜日韩在线观看| 欧美大片国产精品| 亚洲一级黄色av| 国内成人自拍视频| 欧美国产视频在线观看| 亚洲午夜精品一区二区| 欧美本精品男人aⅴ天堂| 在线视频你懂得一区二区三区| 国产精品视频一区二区三区 | 欧美一区二区三区在线视频| 欧美不卡一区| 亚洲欧美成人网| 伊人成年综合电影网| 欧美日韩免费精品| 久久国产精品电影| 夜夜嗨一区二区| 美女诱惑一区| 欧美一区二区三区视频在线观看| 亚洲国产另类 国产精品国产免费| 国产精品白丝黑袜喷水久久久| 欧美一区二区高清| 亚洲精品网站在线播放gif| 久久国产主播精品| 中文欧美在线视频| 亚洲激情另类| 国产日韩欧美精品综合| 欧美日本国产一区| 美女精品视频一区| 欧美在线观看视频在线| 一区二区三区精密机械公司| 欧美国产专区| 久久本道综合色狠狠五月| 日韩午夜一区| 欧美高清视频一区二区| 久久久久一区| 欧美一区二区三区在线| 这里只有精品丝袜| 亚洲精品激情|