Python3——2019年全國大學生計算二級考試

Python語言程序設計二級重點(2019年版)

第一章 程序設計基本方法

  1. IPO程序編寫方法 :輸入(input),輸出(output),處理(process);
  2. Python程序的特色:
    (1)語法簡介;(2)生態豐富;(3)多語言集成;(4)跨平臺;(5)強制可讀;(6)支持中文;(7)模式多樣;(8)類庫便捷。python

    第二章 Python語言基本語法

  3. 程序的格式框架
    (1)縮進(4個空格);(2)註釋(#);(3)續行符(\);
  4. 語法元素的名稱算法

(1)變量:變量是保存和表示數據值的一種語法元素,變量的值是能夠改變的,可以經過賦值(=)方式被修改例如:編程

>>>a = 99
>>>a = a + 1
>>>print(a)
100

(2)命名:給變量或其餘程序元素關聯名稱或標識符的過程
Python採用大小寫字母、數字、下劃線和漢字等字符及其組合進行命名,但名字的首字符不能是數字,標識符中間不能出現空格數組

(3)保留字:也叫關鍵字共有35個,大小寫敏感。網絡

and 、 as、 assert 、break、 class、 continue、 def、 del、 elif、 else、 except、 False、 Ture、 finally、 for、 from、 global、 if、 import、 in、 is、 lambda、 None、 nonlocal、 not、 or、 pass、 raise、 return、 try、 while、 with、 yield、 async、 await
  1. 數據類型
    (1)數字類型: 整數,浮點數,複數
    整數:一個整數值能夠表示爲十進制(1010)、十六進制(0x3F2)、八進制(0o1762)、二進制(0b001111110010)。
    浮點數:只有科學計數法(1.23456e2)和十進制形式
    (2)字符串類型:在Python語言中採用一對雙引號""或者一對單引號''括起來的一個或多個字符表示。
    ==做爲字符序列,字符串能夠對其中單個字符或字符片斷進行檢索。字符串包括兩種序號體系:正向遞增序號(最左側序號爲0)和反向遞減序列(最右側序號爲-1)==
>>>"對酒當歌,人生幾何?"[1]
酒
>>>"對酒當歌,人生幾何?"[-1]
?
>>>"對酒當歌,人生幾何?"[2:4]
當歌
>>>"對酒當歌,人生幾何?"[5:-2]
人生幾
>>>"對酒當歌,人生幾何?"[2:2]
''
  1. 程序的語句元素
    (1)表達式
>>>1024*32
32768
>>>"對酒當歌,人生幾何?"+"譬如朝露,去日苦多。"
對酒當歌,人生幾何?譬如朝露,去日苦多。
>>>1024>32
True

(2)賦值語句( <變量> = <表達式> )
(3)引用: import <功能庫名稱>
(4)其餘語句:==詳細介紹請看第四章==
分支語句 循環語句
單分支 app

>>>#判斷輸入整數是否在[0,100]之間
>>>num = eval(imput("請輸入一個整數:"))
>>>if 0 <= num <=100:      #判斷[0,100]
>>>    print("輸入的整數在0到100之間")
>>>

二分支框架

>>>num = eval(input("請輸入一個數字:"))
>>>if num > 100:
>>>    print("輸入的數字大於100")
>>>else:
>>>    print("輸入的數字小於等於100。")
>>>

多分支dom

>>>num = eval(imput("請輸入一個整數:"))
 >>>if num > 100:
 >>>   print("輸入的數字大於100")
 >>>elif num = 100:
 >>>   print("輸入的數字等於100")
 >>>else:
 >>>   print("輸入的數字小於100")
  1. 基本輸入輸出函數
    輸入:input()
    轉換:eval(s) #去掉字符串s最外側的引號並執行去掉引號後的字符內容
>>>a = "1+2"
>>>print(a)
'1+2'
>>>b = eval("1+2")
>>>print(b)
3

輸出:print()機器學習

第三章 基本數據類型

  1. 數字類型
    整數類型:十進制、二進制(0b)、八進制(0o)、十六進制(0x)
    浮點數類型:十進制或科學記數法表示 ; ==必須帶有小數部分,小數部分能夠爲0==
    複數類型:基本單位元素爲j,實部和虛部都是浮點類型,可用==z.real==和==z.imag==分別得到它的實部部分和虛部部分scrapy

  2. 數值運算操做符:

操做符及運算 描述
x + y x與y之和
x - y x與y之差
x * y x與y之積
x / y x與y之商,產生結果爲浮點數
x // y x與y之整數商,即:不大於x與y之商的最大整數
x % y x與y的最大餘數,也稱爲模運算
-x x的負值,即:x * (-1)
+x x自己
x ** y x的y次冪

數值運算的基本規則:

整數和浮點數混合運算,輸出的結果是浮點數;
整數之間運算,產生的結果類型與操做符想過,除法運算(/)的結果是浮點數;
整數或浮點數與複數運算,輸出結果是複數;
全部的二元運算操做符(+、- 、* 、/ 、// 、% 、** )均可以與賦值符號(=)相連,造成加強賦值操做符   #加強賦值操做符中的二元運算操做符與賦值符號之間沒有空格。
  1. 數值運算函數
    Pythin內置函數:
函數 描述
abs(x) x的絕對值
divmod(x, y) ( x//y, x%y ),輸出爲二元組形式(也稱爲元組類型)
pow(x, y) 或 pow(x, y, z) x ** y 或 (x ** y) % z, 冪運算
round(x) 或 round(x, d) 對x四捨五入,保留d位小數,無參數d則返回四捨五入的整數值
max(x1 ,x2, ··· ,xn) x1,x2,···,xn的最大值,n沒有限定,能夠任意數量
min(x1 ,x2, ··· ,xn) x1,x2,···,xn的最小值,n沒有限定,能夠任意數量
  1. 字符串類型及格式化
    單行字符串:用一對單引號(')雙引號(")做爲邊界表示;
    多行字符串:用一對三引號(''')三雙引號(""")做爲邊界表示;

字符串的索引方式以下:
<字符串或字符串的變量> [序號]

>>>"青青子衿,悠悠我心。"[-5]      #注意:標點符號也是字符
'悠'
>>>s = "青青子衿,悠悠我心。"
>>>s [5]
'悠'
>>>

字符串的切片:
<字符串或字符串變量> [N:M] ==切片獲取字符串從N到M(不包括M)的子字符串==

>>>"青青子衿,悠悠我心。"[1:4]
'青子衿'
>>>"青青子衿,悠悠我心。"[8:4]
''
>>>"青青子衿,悠悠我心。"[:4]
'青青子衿'
   print("青青子衿,悠悠我心。"[5:])
悠悠我心。

format()方法的基本使用:
<模板字符串> .format( <逗號分隔的參數> ),模板字符串是由字符串和 槽({})組成的字符串,例如:

>>>"{}曰:學而時習之,不亦說乎。".format("孔子")
'孔子曰:學而時習之,不亦說乎。'
>>>"{}曰:學而時習之,不亦{}。".format("孔子","說乎")
'孔子曰:學而時習之,不亦說乎。'
>>>"{1}曰:學而時習之,不亦{0}。".format("說乎","孔子")
'孔子曰:學而時習之,不亦說乎。'
>>>
  1. 字符串類型的操做
    基本的字符串操做符:
操做符 描述
x + y 鏈接兩個字符串 x與y
x * n 或 n * x 複製n次字符串x
x in s 若是x是s的子串,返回True,否者返回False

字符串處理函數:

函數 描述
len(x) 返回字符串x的長度,也能夠返回其餘組合數據類型的元素個數
str(x) 返回任意類型x所對應的字符串形式
chr(x) 返回Unicode編碼x對應的單字符
ord(x) 返回單字符x表示的Unicode編碼
hex(x) 返回整數x對應十六進制數的小寫形式字符串
oct(x) 返回整數x對應八進制數的小寫形式字符串

字符串處理方法:

方法 描述
str.lower() 返回字符串str的副本,所有字符小寫
str.upper() 返回字符串str的副本,所有字符大寫
str.split( sep = None) 返回一個列表,經過指定分隔符對字符串進行切片,省略sep默認以空格分隔
str.count(sub) 返回sub子串出現的次數
str.replace(old, new) 返回字符串str的副本,全部的old子串被替換爲new
str.center(width, fillchar) 字符串居中函數,fillchar參數可選
str.strip(chars) 用於移除字符串頭尾指定的字符(默認爲空格或換行符)或字符序列
str.join(iter) 將iter 變量的每個元素後增長一個str字符串
  1. 類型判斷和類型間轉換
函數 描述
int(x) 將x轉換爲整數,x能夠是浮點數或字符串
float(x) 將x轉換爲浮點數,x能夠是整數或字符串
str(x) 將x轉換爲字符串,x 能夠是整數或浮點數

第四章 程序的控制結構

  1. 程序的三種控制結構
    順序結構、分支結構、循環結構
    分支結構:
    單分支
>>>#判斷輸入整數是否在[0,100]之間
>>>num = eval(imput("請輸入一個整數:"))
>>>if 0 <= num <=100:      #判斷[0,100]
>>>    print("輸入的整數在0到100之間")
>>>

二分支

>>>num = eval(input("請輸入一個數字:"))
>>>if num > 100:
>>>    print("輸入的數字大於100")
>>>else:
>>>    print("輸入的數字小於等於100。")

多分支

>>>num = eval(imput("請輸入一個整數:"))
>>>if num > 100:
       print("輸入的數字大於100")
>>>elif num = 100:
>>>    print("輸入的數字等於100")
>>>else:
>>>    print("輸入的數字小於100")

循環結構:
遍歷循環(for)

for <循環變量> in <遍歷結構>:
    <語句塊>
>>>for c in "Python":
>>>    print(c)
P
y
t
h
o
n
>>>for i in range(5):
>>>    print(i)
0
1
2
3
4
>>>
for <循環變量> in <遍歷結構>:
    <語句塊1>
else:
    <語句塊2>
>>>for s in "PY":
>>>    print("循環執行中:" + s)
>>>else:
>>>    s = "循環正常結束"
>>>print(s)
#執行後
循環執行中:P
循環執行中:Y
循環正常結束
>>>

無限循環(while):

while <條件>:
    <語句塊>
>>>n = 0
>>>while n < 10:
>>>    print(n)
       n = n + 3
0
3
6
9
while <條件>:
    <語句塊1>
else:
    <語句塊2>
>>>s, idx = "PY", 0
>>>while idx < len(s):
>>>    print("循環執行中:" + s[idx])
>>>    idx += 1
>>>else:
>>>    s = "循環正常結束"
>>>print(s)
#執行後
循環執行中:P
循環執行中:Y
循環正常結束

循環控制(break和continue):
break用來跳出最內層for或while循環,脫離該循環後程序繼續執行循環後續代碼。==若是有兩層或多層循環,break退出最內層循環==

>>>while True:
>>>    s = input("請輸入一個名字(按Q退出):")
>>>    if s == "Q":
>>>        break
>>>    print("輸入的名字是:", s)
>>>print("+++程序退出+++")
>>>
#執行後
請輸入一個名字(按Q退出):趙廣健
輸入的名字是:趙廣健
請輸入一個名字(按Q退出):董繼坤
輸入的名字是:董繼坤
請輸入一個名字(按Q退出):Q
+++程序退出+++

continue用來結束當前當次循環,即跳出循環體中下面還沒有執行的語句,但不跳出當前循環。

>>>for s in "PYTHON":
>>>    if s == "Y":
>>>        continue
>>>    print(s,end='')
>>>
#執行
PTHON

==continue語句和break語句的區別是:continue語句只結束本次循環,不終止整個循環的執行。break語句具有結束整個當前循環的能力。==

  1. 程序的異常處理
try:
    <語句塊1>
except:
    <語句塊2>
>>>try:
>>>    for i in range(5):
>>>        print(10/i, end='')
>>>except ZeroDivisionError:
>>>    print("除數爲0,產生了除0錯誤!")
>>>except:
>>>    print("某種緣由,出錯了!")
>>>
#執行
除數爲0,產生了除0錯誤!

第五章 函數和代碼複用

==使用函數的兩個目的:下降編程難度和增長代碼複用==

  1. 函數的基本使用
    定義函數:
def <函數名> (<參數列表>):
      <函數體>
      return <返回值列表>       ==當函數沒有return時,僅表示執行一段代碼功能==
#定義一個對整數n求階乘的函數
>>>def fact(n):
>>>    s = 1
>>>    for i in range(1, n+1):
>>>        s *= i
>>>    return s

函數的調用

>>>def fact(n):
>>>    s = 1
>>>    for i in range(1, n+1):
>>>        s *= i
>>>    return s
 #調用函數
>>>print(fact(100))

函數的使用可分爲4個步驟:
函數定義函數調用函數執行函數返回

  1. 函數的參數傳遞
    ==可選參數傳遞:==
def <函數名>(<非可選參數列表>, <可選參數> = <默認值> ):
    <函數體>
    return <返回值列表>
>>>def multiply(x, y = 10):
>>>    print(x * y)
>>>multiply(99)
990
>>>multiply(99, 2)
198

==參數名稱傳遞:==

>>>def multiply(x, y = 10):
>>>    print(x * y)
>>>multiply(x = 99)
990
>>>multiply(y = 2, x = 99)
198

==函數的返回值(return):==

>>>def multiply(x, y = 10):
>>>    return x * y, x+y
>>>s = multiply(99, 2)
>>>    print(s)
(198, 101)
>>>a,b = multiply(99, 2)
>>>print(a)
198
>>>print(b)
101
  1. 變量的做用域
    局部變量:是指在函數內部定義的變量,僅在函數內部有效,當函數退出時變量將再也不存在。
>>>def multiply(x, y = 10):
>>>    z = x * y     # z是函數內部的局部變量
>>>    return z
>>>s = multiply(99, 2)
>>>print(s)
198
>>>print(z)   #函數外z不存在,因此報錯。
Traceback (most recent call last):
  File "XXX/XXX/XXX", line 6, in <module>
    print(z)
NameError: name 'z' is not defined

全局變量:是指在函數以外定義的變量,在程序執行全過程有效,但在函數內部使用時須要提早用保留字 ==global== 聲明。

>>>n = 2   # n是全局變量 
>>>def multiply(x, y = 10):
>>>    global n
>>>    return x * y * n     #使用全局變量
>>>s = multiply(99, 2)
>>>print(s)
369
  1. 代碼複用
    定義:將函數封裝起來供給其餘代碼或程序調用,從而避免相同功能代碼在被調用處重複編寫。
    模塊化設計:使用函數對程序合理劃分爲功能模塊,並基於模塊設計程序。
    模塊化設計的基本要求:緊耦合、鬆耦合
    緊耦合:儘量合理劃分功能塊,功能塊內部耦合緊密
    鬆耦合:模塊間關係儘量簡單,功能塊之間耦合度低

第六章 組合數據類型

  1. 三大組合數據類型: 集合類型、序列類型、映射類型
    集合類型("{}"): 是一個元素集合(set),元素之間無序,相同元素在集合中惟一存在。
集合中的元素類型只能是不可變數據類型,例如:整數、浮點數、字符串、元組等。列表、字典和集合類型自己都是可變數據類型,不能做爲集合的元素出現。

集合類型的操做符:

操做符及運算 描述
S - T 返回一個新集合,包括在集合S但不在集合T中的元素
S & T 返回一個新集合,包括同時在集合S和T中的元素
S ^ T 返回一個新集合,包括集合S和T中非共同元素
S | T 返回一個新集合,包括集合S和T中全部元素

集合類型經常使用的操做函數或方法:

操做符及運算 描述
S.add(x) 若是數據項x再也不集合 S 中,將 x 增長到 S
S.remove(x) 若是 x 在集合 S 中,移除該元素,再也不則產生KeyError 異常
S.clear() 移除集合 S 中的全部數據項
len(S) 返回集合 S 元素個數
x in S 若是 x 是 S 的元素,返回True;否者返回False
x not in S 若是 x 不是 S 的元素,返回True;否者返回False
set(x) 將其餘組合數據類型變成集合類型, set() 函數也能夠生成空集合變量

序列類型:包括字符串類型、列表類型、元組類型等;序列類型的索引體系與字符串類型同樣,即正向遞增和反向遞減。
序列類型的操做符和函數:

操做符及運算 描述
x in s 若是 x 是 s 的元素,返回True;否者返回False
x not in s 若是 x 不是 s 的元素,返回True;否者返回False
s + t 鏈接 s 和 t
s * n 或 n * s 將序列 s 複製 n 次
s[ i ] 索引,返回序列的第 i 個元素
s[ i : j ] 切片,返回包含序列 s 第 i 到第 j 個元素的子序列(不包含第 j 個元素)
s[ i : j: k ] 步驟切片,返回包含序列 s 第 i 到第 j 個元素以 k 爲步數的子序列
len(S) 返回集合 S 元素個數(長度)
min(s) 序列 s 中最小元素
max(s) 序列 s 中最大元素
s.index(x) 序列 s 第一次出現元素 x 的位置
s.count(x) 序列 s 中出現 x 的總次數

==元組類型==:是序列類型的重要組成之一,在 Python 語言中表示爲 tuple,通常用小括號()和逗號,進行組織。

元組類型一旦定義就不能修改,在編程中不夠靈活,同時元組類型的全部操做均可以由列表類型實現。所以,在通常編程中,若是須要自定義變量,一般以列表類型代替元組類型使用。

映射類型: 映射類型是序列類型的擴展。鍵(key)值(value)對將映射關係結構化,用於存儲和表達。

==列表類型==:列表[] 或 list(x)包含0個或多個元組的有序序列,屬於序列類型(因此序列類型的操做符及運算也適用於列表)。列表能夠進行元素增長、刪除、替換、查找等操做。

列表的操做方法:

方法 描述
ls.append( x ) 在列表 ls 最後增長一個元素 x
ls.insert(i, x) 在列表 ls 第 i 位置增長元素 x
ls.clear() 刪除 ls 中全部元素
ls.pop( i ) 將列表 ls 中第 i 項元素取出並從 ls 中刪除該元素
ls.remove( x ) 將列表中出現的第一個元素 x 刪除
ls.reverse() 列表 ls 元素反轉
ls.copy() 生成一個新列表, 複製 ls 中全部元素

字典類型: 用大括號{}創建,每一個元素是一個鍵(key)值(value)對。

>>>d = ["201901":"小明", "201902":"小紅"]
>>>print(d)
{'201901':'小明', '201902':'小紅'}
字典和集合都用大括號表示,可是若是直接使用大括號`{}`,則生成字典類型,而不是集合類型。
  1. 字典的索引
>>>d = ["201901":"小明", "201902":"小紅"]
>>>print(d["201902"])
小紅
>>>d["201902"] = '新小紅'
>>>print(d)
{'201901':'小明','201902':'新小紅'}
#使用大括號建立字典
>>>t = {}
>>>t["201903"] = "小綠"
>>>print(t)
{'201903':'小綠'}
  1. 字典的操做函數:
操做函數 描述
len(d) 字典 d 的元素個數(長度)
min(d) 字典 d 中鍵的最小值
max(d) 字典 d 中鍵的最大值
dict() 生成一個空字典
  1. 字典的操做方法:
操做方法 描述
d.keys() 返回全部的鍵信息
d.values() 返回全部的值信息
d.items() 返回全部的鍵值對
d.get( key, default) 鍵存在則返回相應值,否者返回默認值 default
d.pop(key, default) 鍵存在則返回相應值,同時刪除該鍵值對,否者返回默認值 default
d.popitem() 隨機從字典中取出一個鍵值對,以元組(key, value)形式返回,同時將該鍵值對從字典中刪除
d.clear() 刪除全部鍵值對,清空字典

第七章 文件和數據格式化

  1. 文件的使用
    ==文件是存儲在輔助存儲器上的一組數據序列,能夠包含任何數據內容。概念上,文件是數據的集合和抽象。文件包括文本文件和二進制文件兩種類型==
    文本文件和二進制文件採用統一的操做步驟,即:打開--->操做--->關閉
    <變量名> = open( <文件路徑及文件名> , <打開模式> )
>>>f = open("路徑/a.txt", "rt")    #文件打開,分別對應文件的位置,文件的打開模式和文件類型
>>>print(f.readline())          #文件的讀取方法
>>>f.close()                  #關閉文件
>>>

open()函數的7種打開模式:

打開模式 含義
'r' 只讀模式,若是文件不存在,返回異常 FileNotFoundError,默認值
'w' 覆蓋寫模式,文件不存在則建立,存在則徹底覆蓋原文件
'x' 建立寫模式,文件不存在則建立,存在則返回異常 FileExistsError
'a' 追加寫模式,文件不存在則建立,存在則在原文件最後追加內容
'b' 二進制文件模式
't' 文本文件模式, 默認值
'+' 與 r/w/x/a 一同使用,在原功能的基礎上增長同時讀寫功能
打開模式中,'r'、'w'、'x'、'b'能夠和'b'、't'、'+' 組合使用,造成即表達讀寫又表達文件模式的方式。
1.以文本方式只讀打開一個文件,讀入後不能對文件進行修改。
<變量名> = open(<文件名>, 'r')     或 <變量名> = open(<文件名>)
2.以文本方式可讀寫地打開一個文件,能夠讀入並修改文件。
<變量名> = open(<文件名>, 'r+')
3.以文本方式打開一個空文件,準備寫入一批內容,並保存爲新文件。
<變量名> = open(<文件名>, 'w')
4.以文本方式打開一個空文件或已有文件,追加形式寫入一批內容,更新原文件。
<變量名> = open(<文件名>, 'a+')
5.以二進制方式只讀打開一個文件,讀入後不能對文件進行修改。
<變量名> = open(<文件名>, 'rb')
6.文件關閉,釋放文件的使用權
<變量名>.close()

文件的讀取方法:

方法 含義
f.read( size = -1) 從文件中讀入整個文件內容。參數可選,若是給出,讀入前 size 長度的字符串或字節流
f.readline( size = -1) 從文件中讀入一行內容。參數可選,若是給出,讀入改行前 size 長度的字符串或字節流
f.readlines( hint = -1) 從文件中讀入全部行,以每行爲元素造成一個列表。參數可選,若是給出,讀入 hint 行
f.seek( offset) 改變當前文件操做指針的位置,offset 的值:0 爲文件開頭,2爲文件結尾
文件打開後,對文件的讀寫有一個讀取指針,當從文件讀入內容後,讀取指針將向前推動,再次讀取的內容將從指針的新位置開始

文件寫入方法:

方法 含義
f.write(s) 向文件寫入一個字符串或字節流
f.writelines(lines) 將一個元素爲字符串的列表總體寫入文件
  1. 數據組織的維度
    定義:
一組數據在被計算機處理前須要進行必定的組織,代表數據之間的基本關係和邏輯,進而造成「數據的維度」。根據數據的關係不一樣,數據組織能夠分爲:一維數據、二維數據和高維數據

一維數據:一維數據由對等關係的有序或無序數據構成,採用線性方式組織,對應於數學中的數組的概念,任何表現爲序列或集合的內容均可以看作是一維數據。

二維數據:也稱表格數據,由關聯關係數據構成,採用二維表格方式組織,對用於數學中的矩陣,常見的表格都屬於二維數據。

高維數據: 由鍵值對類型的數據構成,採用對象方式組織,能夠多層嵌套。

高維數據在 Web 系統中十分經常使用,做爲當今 Internet 組織內容的主要方式,高維數據衍生出 HTML、XML、JSON 等具體數據組織的語法結構。
高維數據相比一維和二維數據能表達更加靈活和更加複雜的數據關係。
  1. 一維數據的處理
    一維數據的表示:在Python語言中主要採用列表[]形式表示。
    一維數據的存儲: (1)採用空格分隔元素、(2)採用逗號分隔元素、(3)採用換行分隔元素、(4)其餘特殊符號分隔,例如分號分隔。==其中用逗號分隔的存儲格式叫做 CSV 格式==
    一維數據的處理:
首先,從 CSV 文件讀入一維數據,並將其表示爲列表對象。因爲從 CSV 文件中得到內容時,最後一個元素後面包含一個換行符( "\n" )。對於數據的表達和使用來講,這個換行符是多餘的,須要採用字符串的 strip() 方法去掉尾部的換行符,進一步使用 split() 方法以逗號進行分割。
>>>f = open("city.csv", "r")
>>>ls = f.read().strip('\n').split(",")
>>>f.close()
>>>print(ls)
  1. 二維數據的處理
    二維數據的表示:二維數據由多個一維數據構成,能夠看做一維數據的組合形式。能夠採用二維列表表示(二維數據通常採用相同的數據類型存儲數據,便於操做)
    二維數據的存儲:由一維數據組成,用 CSV 格式文件存儲。CSV 文件的每一行是一維數據,整個 CSV 文件是一個二維數據。
    二維列表對象輸出爲 CSV 格式文件方法以下:
# ls 表明二維列表,此處省略
>>>f = open("cpi.csv", "w")
>>>for row in ls:
>>>    f.write(",".join(row)+ "\n")
>>>f.close()

二維數據的處理:首先從 CSV 格式文件讀入二維數據,並將其表示爲二維列表對象。

#以列表形式讀取
>>>f = open("cpi.csv", "r")
>>>ls = []
>>>for line in f:
>>>    ls.append(line.strip('\n').split(","))
>>>f.close()
>>>print(ls)


#對二維數據進行格式化輸出,打印成表格形狀
>>>for row in ls:
>>>    line = ""
>>>    for item in row:
>>>        line += "{:10} \t".format(item)
>>>    print(line)

第八章 Python 計算生態

  1. 計算思惟
    計算思惟的本質是 抽象 和 自動化
    計算機思惟是人類科學思惟活動的重要組成部分。人類在認識世界、改造世界的過程當中表現出三種基本的思惟特徵:
    以實驗和驗證爲特徵的實證思惟,以物理學科爲表明;
    以推理和演繹爲特徵的邏輯思惟,以數學學科爲表明;
    以設計和構造爲特徵的計算思惟,以計算機學科爲表明。計算思惟主要反映在理解問題的計算特性,將計算特性抽象爲計算問題、經過程序設計語言實現問題的自動求解等幾個方面。

  2. 程序設計方法論

自頂向下的設計方法 和 自底向上的執行過程

自頂向下的設計方法最重要的就是頂層設計,整個過程能夠歸納爲4個步驟:
步驟 1 : 將算法表達爲一系列小問題;
步驟 2 : 爲每一個小問題設計接口;
步驟 3 : 經過將算法表達爲接口關聯的多個小問題來細化算法;
步驟 4 :爲每一個小問題重複上述過程。

自底向上執行來調試程序,將程序分紅小部分自下而上逐個測試,有助於定位錯誤。

  1. 基本的 Python 內置函數
函數名稱 函數說明
abs( x ) x 的絕對值,若是 x 是複數,返回複數的模
all( x ) 組合類型變量 x 中全部元素都爲真是返回 True,不然返回False;若 x 爲空,返回 True
any( x ) 組合類型變量 x 中任意一元素都爲真是返回 True,不然返回False;若 x 爲空,返回 False
bin( x ) 將整數 x 裝換爲等值的二進制字符串,如 bin(1010) 的結果是 '0b1111110010'
bool( x ) 將 x 裝換爲 Boolean 類型。 即 True 或 False。 如 bool('') 的結果是 False
chr( i ) 返回 Unicode 爲 i 的字符。 如chr(9996) 的結果是 ’‘
complex( r, i) 建立一個複數。如 complex( 10, 10) 的結果是 10 + 10j
dict() 建立字典類型。如 dict() 的結果是一個空字典 {}
divmod(a, b) 返回 a 和 b 的商及餘數。如 divmod(10, 3) 的結果是一個(3, 1)
eval( s ) 計算字符串 s 做爲Python 表達式的值
exec( s ) 計算字符串 s 做爲 Python 語句的值。如exec(' a = 1+999') 運行後,變量 a 的值爲 1000
float( x ) 將 x 轉換成浮點數。如float(1010) 的結果是1010.0
hex( x ) 用於將一個指定數字轉換爲 16 進制數
input( s ) 獲取用戶輸入,其中 s 是字符串,做爲提示信息,s 可選。
int( x ) int() 函數用於將一個字符串或數字轉換爲整數
len( x ) 返回對象(字符、列表、元組等)長度或項目個數
list( x ) 建立或將變量 x 轉換成一個列表類型
max(a1, a2, ...) 返回參數的最大值
min(a1, a2 , ...) 返回參數的最小值
oct( x ) 將整數 x 轉換爲等值的八進制字符串形式
open(fname, m) 打開文件,包括文本方式和二進制方式等。
ord( c ) 返回一個字符的 Unicode 編碼值。
pow(x ,y) 返回 x 的 y 次冪。如pow(2, 3) 的結果是8
print( x ) 打印變量或字符串 x
range(a, b, s) 從 a 到 b(不含) 以 s 爲步長產生一個序列。如 list(range(1, 10, 3)) 的結果是[1, 4, 7]
reversed( r ) 返回組合類型 r 的逆序迭代類型。
round( n ) 四捨五入方式計算 n 。如 round(10.6)的結果是 11
set( x ) 將組合數據類型 x 轉換爲集合類型。
sorted( x ) 對組合數據類型 x 進行排序默認從小到大。
str( x ) 將 x 轉換爲等值的字符串類型。如 str(0x1010) 的結果是 '4112'
sum( x ) 對組合數據類型 x 計算求和結果
type( x ) 返回變量 x 的數據類型。

第九章 Python標準庫

  1. turtle 庫(必選)
    turtle 庫的引入
#第一種
>>>import turtle
>>>turtle.circle(200)

     #第二種
>>>from turtle import *
>>>circle(200)
    
    #第三種
>>>import turtle as t
>>>t.circle(200)

turtle庫的窗體函數:做用:設置主窗體的大小和位置
turtle.setup(width, height, startx, starty)

width :窗口寬度,若是值是整數,表示的像素值;若是值 是小數,表示窗口寬度與屏幕的比例; height::窗口高度,若是值是整數,表示的像素值;若是 值是小數,表示窗口高度與屏幕的比例; startx:窗口左側與屏幕左側的像素距離,若是值是None ,窗口位於屏幕水平中央;
starty:窗口頂部與屏幕頂部的像素距離,若是值是None ,窗口位於屏幕垂直中央;

畫筆狀態函數:

函數 描述
pendown() 放下畫筆
penup() 提起畫筆,與pendown()配對使用
pensize(width) 設置畫筆線條的粗細爲指定大小
pencolor() 設置畫筆的顏色
color() 設置畫筆和填充顏色
begin_fill() 填充圖形前,調用該方法
end_fill() 填充圖形結束
filling() 返回填充的狀態,True爲填充,False爲未填充
clear() 清空當前窗口,但不改變當前畫筆的位置
reset() 清空當前窗口,並重置位置等狀態爲默認值
screensize() 設置畫布的長,寬和背景顏色
hideturtle() 隱藏畫筆的turtle形狀
showturtle() 顯示畫筆的turtle形狀
isvisible() 若是turtle可見,則返回True
write(str, font = None) 輸出 font 字體的字符串

畫筆運動函數:

函數 描述
forward( distance ) 沿着當前方向前進指定距離
backward( distance ) 沿着當前相反方向後退指定距離
right( angle ) 向右旋轉angle角度
left( angle ) 向左旋轉angle角度
goto( x,y ) 移動到絕對座標(x,y)處
setx( x ) 將當前x軸移動到指定位置
sety( y ) 將當前y軸移動到指定位置
setheading(angle) 設置當前朝向爲angle角度
home() 設置當前畫筆位置爲原點,朝向東。
circle(radius, e) 繪製一個指定半徑r和角度e的圓或弧形
dot(r, color) 繪製一個指定半徑r和顏色color的圓點
undo() 撤銷畫筆最後一步動做
speed() 設置畫筆的繪製速度,參數爲0-10之間
  1. random 庫:主要目的是生成隨機數
    random 庫採用梅森旋轉算法生成僞隨機數序列。可用於除隨機性要求更高的加解密算法外的大多數工程應用。
    基本函數: random.random() 他生成一個[0.0, 1.0 ]之間的隨機小數,其餘隨機函數都是基於這個函數擴展而來。

random 庫的經常使用函數:

函數 描述
seed( a = None) 初始化隨機數種子,默認值爲當前系統時間
random() 生成一個[0.0, 1.0 ]之間的隨機小數
randint(a, b) 生成一個[ a, b] 之間的整數
getrandbits( k ) 生成一個 k 比特長度的隨機整數
randrange(start, stop[, step]) 生成一個[start, stop)之間以step爲步數的隨機整數
uniform(a, b) 生成一個[a, b]之間的隨機小數
choice(seq) 從序列類型(例如:列表)中隨機返回一個元素
shuffle(seq) 將序列類型中元素隨機排列,返回打亂後的序列
sample(pop, k) 從pop類型中隨機選取k個元素,以列表類型返回
  1. time 庫

第十章 Python第三方庫概覽

  1. 第三方庫的獲取和安裝
    pip 工具安裝自定義安裝文件安裝

  2. PyInstaller 庫(必選)
  3. jieba 庫(必選)
  4. wordcloud 庫(可選)

第十一章 Python 第三方庫縱覽

只要求瞭解第三方庫的名稱、分類
網絡爬蟲
request 、 scrapy
數據分析
numpy、scipy、pandas
Web開發
Django、 Pyramid、Flask
文本處理
pdfminer、 penpyxl、python-docx、beautifulsoup4
遊戲開發
Pygame、Panda3D、cocos2d
用戶圖形界面
PyQt五、wxPython、PyGTK
數據可視化
matplotlib、TVTK、mayavi
機器學習
scikit-learn、TensorFlow、Theano
更多第三方庫 PIL、SymPy、NLTK、WeRoBot、MyQR

相關文章
相關標籤/搜索