Python打牢基礎,從19個語法開始!
掃描上方二維碼 關注:七月線上實驗室
後臺回覆:100 免費領取【機器學習面試100題】PDF版一份
Python簡單易學,但又博大精深。許多人號稱精通Python,卻不會寫Pythonic的程式碼,對很多常用包的使用也並不熟悉。學海無涯,我們先來了解一些Python中最基本的內容。
Python的特點
解釋型語言,無需編譯即可執行
提供了互動式命令列
基於物件的程式設計思想
跨平臺和良好的相容性,在Windows、Mac、Linux上都可執行
簡單好用而且功能強大
01 中文編碼
很多同學在開啟資料時會遇上亂碼問題,其原因是字符集的編碼問題。Linux和Mac預設的編碼集是UTF8,而Windows則是ASCII。如果資料編碼的字符集,和你使用Python進行處理時所用的字符集不同,則會出現亂碼問題。
另外,我個人的習慣是在Python程式碼的頭部加入以下內容,其中第二行宣告瞭使用UTF8字符集。
#!/usr/bin/env python# coding:utf8
02 變數
Python中的變數可以看作是一個個容器,裡面存放著我們需要使用到的值。
Python對變數名的要求和其他語言一樣:可以包括英文、數字以及下劃線,但不能以數字開頭,區分大小寫。當然我推薦,變數名用純英文就很好,並且取一些有意義的名稱,便於自己理解每個變數的作用。
Python是一門弱型別的語言,在使用變數時無需宣告其型別。Python中的變數包括以下幾類:數值、字串、列表、元組、字典。
03 數值
數值包括整型和浮點型,分別對應整數和浮點數,後者精度更高。
# 整型a = 1# 浮點型b = 2.1print a, b
04 字串
字串也就是我們經常接觸到的文字,可以往裡面放任意長度的內容,用單引號或雙引號括起來。應當注意,中文以及中文符號只能出現在字串內,如果在下面第三行中使用了中文輸入法的逗號 ,Python將報錯。
c = 'Hello'd = '你好'print c, d
使用 + 可以拼接兩個字串。
print c + d
使用 len() 可以得到字串的長度。
print len('Hello World')
使用切片可以訪問字串中的某個字元或某個片段。
05 列表
列表好比一條隊伍,裡面依次存放著多個變數。列表和字串類似,但字串中的每個元素都是字元,而列表中的每個元素可以是任意型別的變數。
# 使用[]定義一個空列表,使用append()向列表尾部新增一個元素
# 如果要新增到首部,就用prepend()好了a = []a.append(1)a.append(2.1)a.append('Hello')print a
使用 len() 可以獲得列表的長度。
print len(a)
列表元素的按下標訪問和賦值等操作,和字串都是類似的。
print a[1], a[-1]a[1] = 100print a
使用 del 刪除列表中的某個元素。
del a[0]print a
06 元組
元組和列表類似,唯一的不同是元組中的元素在初始化之後不能再更改,因此可以理解成一個只讀的變數。
# 使用()定義一個元組a = (1, 2.1, 'Hello')# 嘗試修改元組中的元素會報錯a[0] = 100
07 字典
字典是一種極為重要的變數型別,使用一個key來訪問相應的value,即一種鍵值對的資料形式。
# 使用{}定義一個字典a = {}# 使用key來賦值valuea['k1'] = 1a['k2'] = 2.1a['k3'] = 'Hello'
所以能夠總結出字典和列表的不同。列表中的元素是有序對等的,所以是用下標來賦值和訪問,而字典中的元素是無序的,所以是用key來操作相應的value。
# 也可以在定義字典和列表的同時進行賦值li = [1, 2.1, 'Hello']di = {'k1': 1, 'k2': 2.1, 'k3': 'Hello'}
使用 has_key() 判斷字典中是否有某個key。
print di.has_key('k4')
如果訪問不存在的key,Python將會報錯。在賦值的時候,如果key已經存在,則會用新的value覆蓋已有的value。
08 註釋
被註釋的程式碼將不會執行,可以看作是寫給自己和其他程式猿閱讀的一些筆記和說明,提高程式碼可讀性。
# 這裡是單行註釋'''這裡是很多行註釋'''
在Sublime中,選中需要註釋的內容,按Ctrl+/即可完成註釋。
09 保留字元
在Python中,有一些字串具有某些特定功能,如 import 、 class 等。我們在選擇變數名時,應注意避開這些保留字元。
# 以下變數賦值將報錯import = 1
10 行和縮排
在Python中,程式碼塊的邊界不是通過大括號等符號進行顯式劃分,而是通過行的縮排實現的。連續相同縮排水平的程式碼處於同一個程式碼塊,在使用 for 、 while 、 if 、 try 等語法時需要注意每行程式碼的縮排。
11 運算子
運算子的作用是根據已有的變數生成新的變數,主要有以下幾種:
算術運算子:+,-,*,/,%,即加、減、乘、除、取餘
比較運算子:==,!=,>,<,>=,<=,即等於、不等於、大於、小於、大於等於、小於等於
賦值運算子:=,+=,-=,*=,/=,%=,即賦值、加賦值、減賦值、乘賦值、除賦值、取餘賦值
邏輯運算子:and,or,not,即與、或、非
a = 1b = 2print a + bprint a == b# 等價於 a = a + 3a += 3print ac = Trued = Falseprint c and d
12 條件
在寫程式碼的時候,往往需要根據某些條件進行判斷,並根據判斷結果執行不同的分支程式碼。
a = 1# 單個條件if a == 1: print 11111# 處理條件不成立的分支if
a == 2: print 22222else: print 33333# 多個條件,加多少個都可以if
a == 1: print 11111elif a == 2: print 22222else: print 33333
需要注意的是,但凡出現了 if 和 elif ,就需要加上相應的條件判斷,並且注意程式碼的縮排。在Sublime中輸入 if 會出現相應的提示,可以方便地補全程式碼,在換行時游標也會自動跳到合適的縮排處。
13 迴圈
如果需要列印從1到100的100個數,肯定不會傻傻地寫100行print程式碼,而是會用迴圈來處理類似的重複性工作。
14 while 迴圈
while 迴圈的思想是,只要某一條件成立,就不斷執行迴圈體裡的程式碼,直到條件不再成立。
flag = 1while flag < 10: print flag
# 一定要記得在迴圈體裡修改條件變數
# 否則可能導致死迴圈 flag += 1
15 for 迴圈
for 迴圈的迴圈次數一般是事先預知的,將一個標誌變數從某個起始值迭代到某個終止值後即結束。
# x從0開始,一直到9結束for x in xrange(0, 10): print x
可以用 for 迴圈方便地遍歷列表和字典。
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
16 迴圈控制
迴圈控制主要包括三種: pass 、 continue 、 break 。
pass 表示什麼也不做,只是佔一行程式碼的位置;continue 表示立即退出本輪迴圈,繼續執行後續輪迴圈;break 表示立即推出迴圈,後續迴圈也不再執行。
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
17 時間
在處理資料時,很多地方都會涉及到時間,例如資料產生的時間。先介紹一下時間戳的概念,時間戳指的是從1970年1月1日0時0分0秒開始,到某一時刻所經歷的秒數,可以是整數或者小數,後者的精度更高。
為什麼需要時間戳這樣的一個概念?因為對於同一個時刻,不同人的描述可能不同,畢竟文字的形式千變萬化,而時間戳使得時間的表達得到了統一,每個時刻只能用唯一的整數或浮點數來表示,同時也便於計算時間差這樣的處理。
# 來看一下當前時刻的時間戳吧import timet = time.time()print t, type(t)
關於時間戳,最常用的處理便是時間戳和時間文字之間的轉換,例如將 2016年10月1日 10時0分0秒 轉為時間戳。
import time# 時間文字轉時間戳,精確到秒a = '2016-10-01 10:00:00'a = int(time.mktime(time.strptime(a,'%Y-%m-%d %H:%M:%S')))print a# 時間戳轉時間文字b = int(time.time())b = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(b))print b
其中, %Y 、 %m 等都是時間欄位,前者表示四位的年份,後者表示兩位的月份。
檔案
檔案操作包括向檔案中寫內容,以及從檔案中讀內容,使用 open() 開啟一個檔案。
# 寫檔案# 重新寫模式,開啟檔案時會將檔案內容清空fw = open('data.txt', 'w')# 追加寫模式,開啟檔案後保留原始內容,繼續寫入for x in xrange(0, 10): # 將整數轉成文字再寫入 fw.write(str(x)) # 也可以每次寫入之後換行,
為轉義字元,表示換行 # fw.write(str(x) + '
')fw.close()# 讀檔案fr = open('data.txt', 'r')# 一行一行地讀,line只是個臨時變數,取別的名稱也行for line in fr: print line # 如果每行後面有換行,可以將換行符去掉,使內容更緊湊 # strip()可以去掉字串兩端的空白字元 # print line.strip()fr.close()
18 異常
Python程式碼中可能會出現一些可以預知的問題,例如字典訪問的key不存在。如果不加處理,發生問題的時候Python便會報錯並退出,可能之前跑了很久又要重頭再來。因此,我們需要對可能出現的異常進行捕捉和處理。異常的結構由 try 、 except 、 else 、 finally 四部分組成。
try: # 嘗試執行這些程式碼 print 1 / 0except Exception, e: # 如果出現異常就進行處理 # e為出現的異常型別 print eelse: # try裡的程式碼沒有出錯 # 可以執行後續工作了 print '沒有出錯'finally: # 無論是否出錯,都會執行的程式碼 print '一定會執行'
19 函式
函式的作用是程式碼模組化,將可重用的程式碼封裝成一個函式,這樣在需要使用的時候就只需呼叫寫好的函式即可,而不用重新寫一遍程式碼。
函式的使用包括兩個部分,函式的定義和函式的呼叫。除此之外,函式可以有一個或多個引數,引數之間以逗號分開,為函式的功能提供更多的靈活性。
# 定義函式def hello(name1, name2): print 'Hello ' + name1 + ' ' + name2# 呼叫函式hello('Python', 'JavaScript')
作者:巨集倫工作室
今日學習推薦
【機器學習集訓營第八期】
火熱報名中
2019年4月15日開課
前50人特惠價:14399
報名加送18VIP[包2018全年線上課程和全年GPU]
且兩人及兩人以上組團還能各減500元
有意的親們抓緊時間嘍
諮詢/報名/組團可新增微信客服
julyedukefu_02
掃描下方二維碼
免費試聽
☟
長按識別二維碼
●一文詳解機器學習中最好用的提升方法:Boosting 與 AdaBoost
點
諮詢,檢視課程,請點選“閱讀原文”
「 在看的,麻煩點一下再走~ 」相關文章
- Python開發打牢基礎,從這些個語法開始!Python
- 從零開始學 Python 之基礎語法Python
- 從零開始——GO語言基礎語法Go
- 【PYTHON】語法基礎 | 開始使用PythonPython
- Python基礎語法:開始你的Python之旅Python
- javaSE從零開始04_java的基礎語法Java
- 從0開始寫一個基於Flutter的開源中國客戶端(2)——Dart語法基礎Flutter客戶端Dart
- Python基礎:語法基礎(3)Python
- Python 基礎語法Python
- Python基礎語法Python
- python基礎語法—語句Python
- 【Python零基礎】19天從零開始學Python——第一天Python
- 從零開始React:一檔 React環境搭建,語法規則,基礎使用React
- Python爬蟲學習之旅-從基礎開始Python爬蟲
- [打牢基礎系列]JavaScript的類與繼承JavaScript繼承
- Python的基礎語法Python
- Python基礎(06):if語法Python
- Python基礎語法(二)Python
- Python基礎語法(一)Python
- python 基礎語法(三)Python
- 【由淺入深_打牢基礎】HOST頭攻擊
- 0基礎學GUI,先從基礎開始1GUI
- Python基礎語法資料Python
- Python3 基礎語法Python
- python 基礎習題1--基礎語法Python
- 演算法基礎 --- 從swap開始演算法
- 鞏固Python基礎必學的22個語法Python
- 零基礎如何快速掌握Python基礎語法?Python
- 快速掌握Python基礎語法(下)Python
- python 基礎語法 - 函式(一)Python函式
- 初學Python(1)基礎語法Python
- 第二課 Python基礎語法Python
- Python基礎語法及應用Python
- Java基礎-語法基礎Java
- [打牢基礎系列]JavaScript的變數和資料型別JavaScript變數資料型別
- 基礎語法
- 從Babel開始認識AST抽象語法樹BabelAST抽象語法樹
- 英語語法基礎