天天看點

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

Python簡單易學,但又博大精深。許多人号稱精通Python,卻不會寫Pythonic的代碼,對很多常用包的使用也并不熟悉。學海無涯,我們先來了解一些Python中最基本的内容。

Python的特點

1.解釋型語言,無需編譯即可運作

2.提供了互動式指令行

3.基于對象的程式設計思想

4.跨平台和良好的相容性,在Windows、Mac、Linux上都可運作

5.簡單好用而且功能強大

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

NO.1中 文 編 碼

很多同學在打開資料時會遇上亂碼問題,其原因是字元集的編碼問題。Linux和Mac預設的編碼集是UTF8,而Windows則是ASCII。如果資料編碼的字元集,和你使用Python進行處理時所用的字元集不同,則會出現亂碼問題。

另外,我個人的習慣是在Python代碼的頭部加入以下内容,其中第二行聲明了使用UTF8字元集。

#!/usr/bin/env python# coding:utf8

python 循環指派_要打牢Python基礎,先學會這12個基本文法!
NO.2變  量

Python中的變量可以看作是一個個容器,裡面存放着我們需要使用到的值。

Python對變量名的要求和其他語言一樣:可以包括英文、數字以及下劃線,但不能以數字開頭,區分大小寫。當然我推薦,變量名用純英文就很好,并且取一些有意義的名稱,便于自己了解每個變量的作用。

Python是一門弱類型的語言,在使用變量時無需聲明其類型。

Python中的變量包括以下幾類:數值、字元串、清單、元組、字典。

數值

數值包括整型和浮點型,分别對應整數和浮點數,後者精度更高。

# 整型 a = 1# 浮點型 b = 2.1print a, b

字元串

字元串也就是我們經常接觸到的文本,可以往裡面放任意長度的内容,用單引号或雙引号括起來。應當注意,中文以及中文符号隻能出現在字元串內,如果在下面第三行中使用了中文輸入法的逗号  ,Python将報錯。

c = 'Hello' d = '你好'print c, d

使用 + 可以拼接兩個字元串。

print c + d

使用 len() 可以得到字元串的長度。

print len('Hello World')

使用切片可以通路字元串中的某個字元或某個片段。

# 位置下标從0開始 c = 'Hello World'# 列印結果為H,下标為0表示第一個字元print c[0]# 列印結果為d,下标為負數表示從後往前數# 是以-1表示倒數第一個字元print c[-1]# 使用:傳回一個片段,冒号前後分别為開始下标和結束下标# 包括開始下标,但不包括結束下标# 是以c[1:5]表示,傳回下标從1到4的片段,即第二個到第五個字元print c[1:5]# 冒号前後的下标同樣可以使用負數# 或者不提供,表示從最左端開始或一直到最右端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)

清單元素的按下标通路和指派等操作,和字元串都是類似的。

print a[1], a[-1] a[1] = 100print a

使用 del 删除清單中的某個元素。

del a[0]print a

元組

元組和清單類似,唯一的不同是元組中的元素在初始化之後不能再更改,是以可以了解成一個隻讀的變量。

# 使用()定義一個元組 a = (1, 2.1, 'Hello')# 嘗試修改元組中的元素會報錯 a[0] = 100

字典

字典是一種極為重要的變量類型,使用一個key來通路相應的value,即一種鍵值對的資料形式。

# 使用{}定義一個字典 a = {}# 使用key來指派value a['k1'] = 1 a['k2'] = 2.1 a['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。

python 循環指派_要打牢Python基礎,先學會這12個基本文法!
NO.3  注    釋

被注釋的代碼将不會運作,可以看作是寫給自己和其他程式猿閱讀的一些筆記和說明,提高代碼可讀性。

# 這裡是單行注釋 ''' 這裡是 很多行 注釋 '''

在Sublime中,選中需要注釋的内容,按Ctrl+/即可完成注釋。

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

No.4保 留 字 符

在Python中,有一些字元串具有某些特定功能,如 import 、 class 等。我們在選擇變量名時,應注意避開這些保留字元。

# 以下變量指派将報錯import = 1

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

No.5行和縮進

在Python中,代碼塊的邊界不是通過大括号等符号進行顯式劃分,而是通過行的縮進實作的。連續相同縮進水準的代碼處于同一個代碼塊,在使用 for 、 while 、 if 、 try 等文法時需要注意每行代碼的縮進。

python 循環指派_要打牢Python基礎,先學會這12個基本文法!
No.6運算符

運算符的作用是根據已有的變量生成新的變量,主要有以下幾種:

  • 算術運算符:+,-,*,/,%,即加、減、乘、除、取餘
  • 比較運算符:==,!=,>,=,<=,即等于、不等于、大于、小于、大于等于、小于等于
  • 指派運算符:=,+=,-=,*=,/=,%=,即指派、加指派、減指派、乘指派、除指派、取餘指派
  • 邏輯運算符:and,or,not,即與、或、非

a = 1 b = 2print a + bprint a == b# 等價于 a = a + 3 a += 3print a c = True d = Falseprint c and d

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

No.7條  件

在寫代碼的時候,往往需要根據某些條件進行判斷,并根據判斷結果執行不同的分支代碼。

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 會出現相應的提示,可以友善地補全代碼,在換行時光标也會自動跳到合适的縮進處。

python 循環指派_要打牢Python基礎,先學會這12個基本文法!
No.8循    環

如果需要列印從1到100的100個數,肯定不會傻傻地寫100行print代碼,而是會用循環來處理類似的重複性工作。

 while 循環

while 循環的思想是,隻要某一條件成立,就不斷執行循環體裡的代碼,直到條件不再成立。

flag = 1while flag < 10:print flag  # 一定要記得在循環體裡修改條件變量# 否則可能導緻死循環    flag += 1

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

循環控制

循環控制主要包括三種:

 pass 、 continue 、 break 。

pass 表示什麼也不做,隻是占一行代碼的位置;continue 表示立即退出本輪循環,繼續執行後續輪循環;

break 表示立即推出循環,後續循環也不再執行。

for x in xrange(0, 10):if x == 5:passelse:print xfor x in xrange(0, 10):if x == 5:continueprint xfor x in xrange(0, 10):if x == 5:breakprint x

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

No.9時    間

在處理資料時,很多地方都會涉及到時間,例如資料産生的時間。先介紹一下時間戳的概念,時間戳指的是從1970年1月1日0時0分0秒開始,到某一時刻所經曆的秒數,可以是整數或者小數,後者的精度更高。

為什麼需要時間戳這樣的一個概念?因為對于同一個時刻,不同人的描述可能不同,畢竟文本的形式千變萬化,而時間戳使得時間的表達得到了統一,每個時刻隻能用唯一的整數或浮點數來表示,同時也便于計算時間差這樣的處理。

# 來看一下目前時刻的時間戳吧import time t = 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 等都是時間字段,前者表示四位的年份,後者表示兩位的月份。

python 循環指派_要打牢Python基礎,先學會這12個基本文法!
No.10文    件

檔案操作包括向檔案中寫内容,以及從檔案中讀内容,使用 open() 打開一個檔案。

# 寫檔案# 重新寫模式,打開檔案時會将檔案内容清空 fw = open('data.txt', 'w')# 追加寫模式,打開檔案後保留原始内容,繼續寫入for x in xrange(0, 10): # 将整數轉成文本再寫入    fw.write(str(x))  # 也可以每次寫入之後換行,\n為轉義字元,表示換行# fw.write(str(x) + '\n') fw.close()# 讀檔案 fr = open('data.txt', 'r')# 一行一行地讀,line隻是個臨時變量,取别的名稱也行for line in fr:print line    # 如果每行後面有換行,可以将換行符去掉,使内容更緊湊# strip()可以去掉字元串兩端的空白字元# print line.strip() fr.close()

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

No.11異    常

。如果不加處理,發生問題的時候Python便會報錯并退出,可能之前跑了很久又要重頭再來。是以,我們需要對可能出現的異常進行捕捉和處理。異常的結構由 try 、 except 、 else 、 finally 四部分組成。

try:# 嘗試執行這些代碼print 1 / 0except Exception, e:   # 如果出現異常就進行處理# e為出現的異常類型print eelse:    # try裡的代碼沒有出錯# 可以執行後續工作了print '沒有出錯'finally:# 無論是否出錯,都會執行的代碼print '一定會執行'

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

No.12函   數

函數的作用是代碼子產品化,将可重用的代碼封裝成一個函數,這樣在需要使用的時候就隻需調用寫好的函數即可,而不用重新寫一遍代碼。

函數的使用包括兩個部分,函數的定義和函數的調用。除此之外,函數可以有一個或多個參數,參數之間以逗号分開,為函數的功能提供更多的靈活性。

# 定義函數def hello(name1, name2):print 'Hello ' + name1 + ' ' + name2# 調用函數 hello('Python', 'JavaScript')

以上所介紹的,都是Python中最基礎和最常用的内容.

 — END — 歡迎觀看這篇文章,喜歡就轉發分享一下吧,讓更多機器人教育者看到。

python 循環指派_要打牢Python基礎,先學會這12個基本文法!

點選 “在看” , 和更多有視野的老師一起看! ⬇️