初級階段 (簡單實踐)
tmp_storage = ""
welcome = "hello!"
tmp_storage = welcome
print tmp_storage
結果:hello!
-------------------------------------------------
radius = 10
pi = 3.14
area = pi*radius**2
print "the area is", area
結果:the area is 314.0
---------------------------------------------------
my_list = []
my_list = [1,2]
print my_list
my_list.append(3)
print my_list
結果:[1, 2, 3]
list是可以索引的:
print my_list[1]
不過你或許會不明白為什麼是2,而不是顯示的是1。因為索引從0開始,要輸出第一個元素:
print my_list[0]
----------------------------------------------------
contact_list=[]
contact1={}
contact1['name']='taowen'
contact1['phone']=68942443
contact_list.append(contact1)
contact2={}
contact2['name']='god'
contact2['phone']=44448888
contact_list.append(contact2)
print contact_list
結果:[{'phone': 68942443, 'name': 'taowen'}, {'phone': 44448888, 'name': 'god'}]
---------------縮排就是python中表示一段代碼的從屬關係的標記方法-----------------------------------------
i = 5
n = 0
while i>0:
n = n + i
i = i - 1
print n
結果:15
i = 5
n = 0
while i>0:
n = n + i
i = i - 1
print n
結果:
5
9
12
14
15
你會發現輸入:之後,自動會給縮排。而且也沒有在python中發現和C/C++中類似的{}標記也沒有pascal中的begin end;,
其實縮排就是python中表示一段代碼的從屬關係的標記方法。表示n=n+1和i=i-1這兩句都是while的。
程式的運行邏輯應該不用解釋了吧。就是運行5+4+3+2+1的結果。
---------------------------------------------------
輸入要使用的是raw_input或者input函數,區別是raw_input直接把你的輸入作為字串返回,
而input則在raw_input的基礎上把字串轉換為數字返回(如果你輸入$@#$$怎麼辦?自己試試看)。
我們就利用這兩個輸入函數來作一些有趣的事情。
your_name = raw_input("please input your name:")
輸入:qiaochao
hint = "welcome! %s" % your_name
print hint
結果:welcome! qiaochao
%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是換行
----------------------------------------------------------------------------------------------
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
執行:python wanzheng.py
please input name: qiaochao
please input phone number: 18701376272
continue?
no
1: name=qiaochao
1: phone=18701376272
很有特色的%操作,起到格式化字串的作用,前面僅僅在字串中有一個%s,現在有%d和%s兩個,分別代表插入十進位數值和字串於%x標記的位置處。
列表
列表是順序的序列,用append在後面附加,也能構用索引值索引。所以我們完全可以用一個變數儲存len(contact_list)得到的長度,
然後一個個的遍曆,不過這裡展示了另外一種非常方便的方法。而且值得注意的是append()中的參數,我使用了contact.copy(),
你可以嘗試著把copy()給去掉,觀察結果你就知道了所謂的append是怎麼乾的了,特別是你對指標之類的東西很有感覺的話(但是在Python中是沒有指標這個概念的)
判斷
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(),然後你給出的輸入是一個無法轉換為數位字串了,那麼我們就要來處理它。