国产性爱无码高清视频_台湾av毛片不卡免费_亚洲av美女在线播放啊_久久国产乱子伦免费精品

?
徐州北大青鳥
當(dāng)前位置: 主頁 > 學(xué)在青鳥 > 編程技巧 >

新人學(xué)Python,這些基礎(chǔ)語法必須背下來!

時間:2021-03-12 16:28來源:未知 作者:代碼如詩 點擊:
Python簡單易學(xué),但又博大精深。許多人號稱精通Python,卻不會寫Pythonic的代碼,對很多常用包的使用也并不熟悉。學(xué)海無涯,我們先來了解一些Python中最基本的內(nèi)容。 Python的特點 解釋型
Python簡單易學(xué),但又博大精深。許多人號稱精通Python,卻不會寫Pythonic的代碼,對很多常用包的使用也并不熟悉。學(xué)海無涯,我們先來了解一些Python中最基本的內(nèi)容。
 
 
Python的特點
 
 
解釋型語言,無需編譯即可運(yùn)行
提供了交互式命令行
基于對象的編程思想
跨平臺和良好的兼容性,在Windows、Mac、Linux上都可運(yùn)行
簡單好用而且功能強(qiáng)大
 
 
中文編碼
 
 
很多同學(xué)在打開數(shù)據(jù)時會遇上亂碼問題,其原因是字符集的編碼問題。Linux和Mac默認(rèn)的編碼集是UTF8,而Windows則是ASCII。如果數(shù)據(jù)編碼的字符集,和你使用Python進(jìn)行處理時所用的字符集不同,則會出現(xiàn)亂碼問題。
 
這里是一篇參考文章,http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html,詳細(xì)地介紹了Python中文編碼所涉及的內(nèi)容。
 
另外,我個人的習(xí)慣是在Python代碼的頭部加入以下內(nèi)容,其中第二行聲明了使用UTF8字符集。
 
#!/usr/bin/env python# coding:utf8
 
 
變量
 
 
Python中的變量可以看作是一個個容器,里面存放著我們需要使用到的值。
 
Python對變量名的要求和其他語言一樣:可以包括英文、數(shù)字以及下劃線,但不能以數(shù)字開頭,區(qū)分大小寫。當(dāng)然我推薦,變量名用純英文就很好,并且取一些有意義的名稱,便于自己理解每個變量的作用。
 
Python是一門弱類型的語言,在使用變量時無需聲明其類型。Python中的變量包括以下幾類:數(shù)值、字符串、列表、元組、字典。
 
 
數(shù)值
 
 
數(shù)值包括整型和浮點型,分別對應(yīng)整數(shù)和浮點數(shù),后者精度更高。
 
# 整型a = 1# 浮點型b = 2.1print a, b
 
 
字符串
 
 
字符串也就是我們經(jīng)常接觸到的文本,可以往里面放任意長度的內(nèi)容,用單引號或雙引號括起來。應(yīng)當(dāng)注意,中文以及中文符號只能出現(xiàn)在字符串內(nèi),如果在下面第三行中使用了中文輸入法的逗號 , ,Python將報錯。
 
 
c = 'Hello'd = '你好'print c, d
 
使用 + 可以拼接兩個字符串。
 
print c + d
 
使用 len() 可以得到字符串的長度。
 
print len('Hello World')
 
使用切片可以訪問字符串中的某個字符或某個片段。
 
# 位置下標(biāo)從0開始c = 'Hello World'# 打印結(jié)果為H,
下標(biāo)為0表示第一個字符print c[0]# 打印結(jié)果為d,
下標(biāo)為負(fù)數(shù)表示從后往前數(shù)#
所以-1表示倒數(shù)第一個字符print c[-1]# 使用:返回一個片段,
冒號前后分別為開始下標(biāo)和結(jié)束下標(biāo)# 包括開始下標(biāo),
但不包括結(jié)束下標(biāo)# 因此c[1:5]表示,返回下標(biāo)從1到4的片段,
即第二個到第五個字符print c[1:5]# 冒號前后的下標(biāo)同樣可以使用負(fù)數(shù)#
或者不提供,表示從最左端開始或一直到最右端print c[1:-1], c[:5], c[3:]
 
 
列表
 
 
列表好比一條隊伍,里面依次存放著多個變量。列表和字符串類似,但字符串中的每個元素都是字符,而列表中的每個元素可以是任意類型的變量。
 
 
# 使用[]定義一個空列表,使用append()向列表尾部添加一個元素#
如果要添加到首部,就用prepend()好了
a = []a.append(1)a.append(2.1)a.append('Hello')print a
 
使用 len() 可以獲得列表的長度。
 
print len(a)
 
列表元素的按下標(biāo)訪問和賦值等操作,和字符串都是類似的。
 
print a[1], a[-1]a[1] = 100print a
 
使用 del 刪除列表中的某個元素。
 
del a[0]print a
 
 
元組
 
 
元組和列表類似,唯一的不同是元組中的元素在初始化之后不能再更改,因此可以理解成一個只讀的變量。
 
 
# 使用()定義一個元組a = (1, 2.1, 'Hello')# 嘗試修改元組中的元素會報錯a[0] = 100
 
 
字典
 
 
字典是一種極為重要的變量類型,使用一個key來訪問相應(yīng)的value,即一種鍵值對的數(shù)據(jù)形式。
 
 
# 使用{}定義一個字典a = {}# 使用key來賦值
valuea['k1'] = 1a['k2'] = 2.1a['k3'] = 'Hello'
 
所以能夠總結(jié)出字典和列表的不同。列表中的元素是有序?qū)Φ鹊?,所以是用下?biāo)來賦值和訪問,而字典中的元素是無序的,所以是用key來操作相應(yīng)的value。
 
 
# 也可以在定義字典和列表的同時進(jìn)行賦值
li = [1, 2.1, 'Hello']di = {'k1': 1, 'k2': 2.1, 'k3': 'Hello'}
 
使用 has_key() 判斷字典中是否有某個key。
 
print di.has_key('k4')
 
如果訪問不存在的key,Python將會報錯。在賦值的時候,如果key已經(jīng)存在,則會用新的value覆蓋已有的value。
 
 
注釋
 
 
被注釋的代碼將不會運(yùn)行,可以看作是寫給自己和其他程序猿閱讀的一些筆記和說明,提高代碼可讀性。
 
 
# 這里是單行注釋'''這里是很多行注釋'''
 
在Sublime中,選中需要注釋的內(nèi)容,按Ctrl+/即可完成注釋。
 
 
保留字符
 
 
在Python中,有一些字符串具有某些特定功能,如 import 、 class 等。我們在選擇變量名時,應(yīng)注意避開這些保留字符。
 
 
# 以下變量賦值將報錯import = 1
 
 
行和縮進(jìn)
 
 
在Python中,代碼塊的邊界不是通過大括號等符號進(jìn)行顯式劃分,而是通過行的縮進(jìn)實現(xiàn)的。連續(xù)相同縮進(jìn)水平的代碼處于同一個代碼塊,在使用 for 、while 、 if 、 try 等語法時需要注意每行代碼的縮進(jìn)。
 
 
運(yùn)算符
 
 
運(yùn)算符的作用是根據(jù)已有的變量生成新的變量,主要有以下幾種:
 
算術(shù)運(yùn)算符:+,-,*,/,%,即加、減、乘、除、取余
比較運(yùn)算符:==,!=,>,<,>=,<=,即等于、不等于、大于、小于、大于等于、小于等于
賦值運(yùn)算符:=,+=,-=,*=,/=,%=,即賦值、加賦值、減賦值、乘賦值、除賦值、取余賦值
邏輯運(yùn)算符:and,or,not,即與、或、非
 
a = 1b = 2print a + bprint a == b#
等價于 a = a + 3a += 3print ac = Trued = Falseprint c and d
 
 
條件
 
 
在寫代碼的時候,往往需要根據(jù)某些條件進(jìn)行判斷,并根據(jù)判斷結(jié)果執(zhí)行不同的分支代碼。
 
a = 1# 單個條件if a == 1:    print 11111# 處理條件不成立的分支
if a == 2:    print 22222else:    print 33333# 多個條件,
加多少個都可以if a == 1:    print 11111el
if a == 2:    print 22222else:    print 33333
 
需要注意的是,但凡出現(xiàn)了 if 和 elif ,就需要加上相應(yīng)的條件判斷,并且注意代碼的縮進(jìn)。
 
在Sublime中輸入 if 會出現(xiàn)相應(yīng)的提示,可以方便地補(bǔ)全代碼,在換行時光標(biāo)也會自動跳到合適的縮進(jìn)處。
 
 
循環(huán)
 
 
如果需要打印從1到100的100個數(shù),肯定不會傻傻地寫100行print代碼,而是會用循環(huán)來處理類似的重復(fù)性工作。
 
while 循環(huán)
 
while 循環(huán)的思想是,只要某一條件成立,就不斷執(zhí)行循環(huán)體里的代碼,直到條件不再成立。
 
flag = 1while flag < 10:    print flag    # 一定要記得在循環(huán)體里修改條件變量    #
否則可能導(dǎo)致死循環(huán)    flag += 1
 
for 循環(huán)
 
for 循環(huán)的循環(huán)次數(shù)一般是事先預(yù)知的,將一個標(biāo)志變量從某個起始值迭代到某個終止值后即結(jié)束。
 
 
# x從0開始,一直到9結(jié)束for x in xrange(0, 10):    print x
 
可以用 for 循環(huán)方便地遍歷列表和字典。
 
li = [1, 2.1, 'Hello']dict = {'k1': 1, 'k2': 2.1, 'k3': 'Hello'}# 遍歷列表,
這里的item只是一個臨時變量,取別的名稱也行for item in li:    print item
# 遍歷字典的全部key,這里的key也只是一個臨時變量,
名稱不重要for key in dict.keys():    print key# 遍歷字典的全部value,
這里的value也只是一個臨時變量,名稱不重要
for value in dict.values():    print value#
同時遍歷key和valuefor key, value in dict.items():    print key, value
 
 
循環(huán)控制
 
 
循環(huán)控制主要包括三種:pass 、 continue 、 break 。
 
pass 表示什么也不做,只是占一行代碼的位置;continue 表示立即退出本輪循環(huán),繼續(xù)執(zhí)行后續(xù)輪循環(huán);break 表示立即推出循環(huán),后續(xù)循環(huán)也不再執(zhí)行。
 
for x in xrange(0, 10):    if x == 5:        pass    else:        print xfor x in xrange(0, 10):    if x == 5:        continue    print xfor x in xrange(0, 10):    if x == 5:        break    print x
 
 
時間
 
 
在處理數(shù)據(jù)時,很多地方都會涉及到時間,例如數(shù)據(jù)產(chǎn)生的時間。
 
先介紹一下時間戳的概念,時間戳指的是從1970年1月1日0時0分0秒開始,到某一時刻所經(jīng)歷的秒數(shù),可以是整數(shù)或者小數(shù),后者的精度更高。
 
為什么需要時間戳這樣的一個概念?因為對于同一個時刻,不同人的描述可能不同,畢竟文本的形式千變?nèi)f化,而時間戳使得時間的表達(dá)得到了統(tǒng)一,每個時刻只能用唯一的整數(shù)或浮點數(shù)來表示,同時也便于計算時間差這樣的處理。
 
 
# 來看一下當(dāng)前時刻的時間戳吧import timet = time.time()print t, type(t)
 
關(guān)于時間戳,最常用的處理便是時間戳和時間文本之間的轉(zhuǎn)換,例如將 2016年10月1日 10時0分0秒 轉(zhuǎn)為時間戳。
 
 
import time# 時間文本轉(zhuǎn)時間戳,
精確到秒a = '2016-10-01 10:00:00'
a = int(time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S')))print a#
時間戳轉(zhuǎn)時間文本b = int(time.time())
b = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(b))print b
 
其中, %Y 、 %m 等都是時間字段,前者表示四位的年份,后者表示兩位的月份。
 
 
文件
 
 
文件操作包括向文件中寫內(nèi)容,以及從文件中讀內(nèi)容,使用 open() 打開一個文件。
 
# 寫文件# 重新寫模式,打開文件時會將文件內(nèi)容清空fw = open('data.txt', 'w')#
追加寫模式,打開文件后保留原始內(nèi)容,繼續(xù)寫入for x in xrange(0, 10):    #
將整數(shù)轉(zhuǎn)成文本再寫入    fw.write(str(x))    # 也可以每次寫入之后換行,
為轉(zhuǎn)義字符,表示換行    # fw.write(str(x) + '')fw.close()#
讀文件fr = open('data.txt', 'r')# 一行一行地讀,line只是個臨時變量,
取別的名稱也行for line in fr:    print line    # 如果每行后面有換行,
可以將換行符去掉,使內(nèi)容更緊湊    
# strip()可以去掉字符串兩端的空白字符    # print line.strip()fr.close()
 
 
異常
 
 
Python代碼中可能會出現(xiàn)一些可以預(yù)知的問題,例如字典訪問的key不存在。如果不加處理,發(fā)生問題的時候Python便會報錯并退出,可能之前跑了很久又要重頭再來。因此,我們需要對可能出現(xiàn)的異常進(jìn)行捕捉和處理。異常的結(jié)構(gòu)由try 、 except 、 else 、 finally 四部分組成。
 
try:    # 嘗試執(zhí)行這些代碼    print 1 / 0except Exception, e:    #
如果出現(xiàn)異常就進(jìn)行處理    # e為出現(xiàn)的異常類型    print eelse:    #
try里的代碼沒有出錯    # 可以執(zhí)行后續(xù)工作了    print '沒有出錯'finally:  
 # 無論是否出錯,都會執(zhí)行的代碼    print '一定會執(zhí)行'
 
 
函數(shù)
 
 
函數(shù)的作用是代碼模塊化,將可重用的代碼封裝成一個函數(shù),這樣在需要使用的時候就只需調(diào)用寫好的函數(shù)即可,而不用重新寫一遍代碼。
 
函數(shù)的使用包括兩個部分,函數(shù)的定義和函數(shù)的調(diào)用。除此之外,函數(shù)可以有一個或多個參數(shù),參數(shù)之間以逗號分開,為函數(shù)的功能提供更多的靈活性。
 
# 定義函數(shù)def hello(name1, name2):    print 'Hello ' + name1 + ' ' + name2#
調(diào)用函數(shù)hello('Python', 'JavaScript')
試聽課
(責(zé)任編輯:代碼如詩)
------分隔線----------------------------
欄目列表
推薦內(nèi)容