1. 程式人生 > >python基礎教程(第二版)

python基礎教程(第二版)

第十章 自帶電池

  1. 匯入模組:

    import sys
    sys.path.append('c:/python27')//告訴程式到這裡找模組
    

1.1. 若模組是一個程式,則在匯入時只執行一次,後面匯入不在執行,修改後可以用reload函式重新匯入,這時會重新執行。

#hello2.py
def hello():
    print 'Hello,World!'
>>>import hello2
>>>hello2.hello()
hello,world!

#hello3.py
def hello():
    print "Hello,world!"
#A test 測試模組
hello()
>>>import hello3
**Hello,World!**#這不是想要的結果
>>>hello3.hello()
Hello,World!
#解決方法:使用__name__變數
#hello4.py
def hello():
    print 'Hello,World!'
def test():
    hello()
if __name__ == '__main__':test()
>>>import hello4#達到預期效果
>>>hello4.hello()

2.把模組放進目錄的幾種方法:
2.1 把模組放進sys中的path路徑中找。

    >>>import sys 

2.2 編輯sys.path,還得在環境變數中實現PYTHONPATH,它包含模組所在的目錄。

2.3 命名模組。
包含程式碼的檔案的名字和模組相同。

    • 包含一個命名為__init__.py的檔案。
  1. 模組包含的內容:
    dir函式: 列出模組包含內容: dir.copy()
    all變數:從模組匯入所有名字包括什麼含義: copy.__all__:['Error','copy','deepcopy']
    help:獲取幫助
    doc

    :檢視文件 : range.__doc__
    file: 使用原始碼: copy.__file__

  2. 標準庫
    3.1sys模組

函式 作用 例子
argv 命令列引數,包括指令碼名稱
exit([arg]) 退出當前程式,可選的引數為給定的返回值或者錯誤資訊
modules 對映模組名字到載入模組的字典
path 查詢模組所在目錄的目錄名列表
platform 類似sunos或win32的平臺識別符號
stdin 標準輸入流
stdout 標準輸出流
stderr 標準錯誤流

3.2 os模組:提供訪問多個作業系統服務的功能。

3.3 fileinput模組:讀寫檔案。

函式 作用
input(file[,inplace[,backup]]) 用於遍歷多個輸入流的行
filename() 返回當前檔案的名稱
lineno() 返回當前累計的行號
isfirstline() 檢查當前行是否是檔案的第一行
isstdin() 檢查最後一行是否來自sys.stdin
nextfile() 關閉當前檔案,移動到下一個檔案
close() 關閉序列

4. 集合,堆和雙端佇列
4.1

set(range(10))
set([0,1,2,3,4,5,6,7,8,9])
4.2 集合
集合是可變的不能用作字典中的鍵。
4.3 堆

函式 作用
heappush(heap,x) 將x入堆
heappop(heap) 將最小的元素彈出
heaoify(heap) 將heap屬性強制應用到另一個表
heaprepalce(heap,x) 將堆中最小元素彈出,同時x入棧
nlargest(n,iter) 返回iter中第n大元素
nsmallest(n,iter) 返回iter中第n小元素

4.4 雙端佇列

  1. time模組
    功能:獲得當前時間,操作時間和日期,從字串讀取時間及格式化時間為字串。
函式 作用
asctime([tuple]) 將時間元組轉化為字串
localtime([secs]) 將秒數轉化為日期,以本地時間為準
mktime(tuple) 將時間元組轉為本地時間
sleep(secs) 休眠secs秒
strptime(string[,format]) 將字串解析為時間元組
time() 列印當前時間

4.5 random模組
返回隨機數的函式

4.6 shelve模組
儲存資料。

4.6.1 使用shelve模組修改臨時變數時,要將臨時變數繫結到副本上,並且在它被修改後重新儲存這個副本。

import shelve
s = shelv.open('test.dat')
s['x'] = ['a','b','c']
s['x'].append('d')
>>>s['x']
['a','b','c']
#解決方法,臨時變數
temp = s['x']
temp.append('d')
s['x'] = temp
>>>s['x']
['a','b','c','d']

4.7 re模組
4.7.1
萬用字元(.):匹配任何字元
轉義():對特殊字元轉義
字符集([]):[^abc]反轉字元,除了abc以外的任意字元。
選擇字元或子模式(|):’p(ython|er)’
4.7.2 re模組的一些重要函式

函式 作用
compile(pattern[,flags]) 包含正則表示式的字串建立模式物件
search(pattern,string[,flags]) 在字串中尋找模式
match(pattern,string[,flags]) 在字串的開始處匹配模式
split(pattern,string[,maxsplit=0]) 根據模式的匹配項分割字串
findall(pattern,string) 列出字串中模式的而所有匹配項
sub(pat,repl,string[,count=0]) 將字串中所有pat的匹配用repl替換
escape(string) 將字串中所有特殊正則表示式字元轉義

4.7.3匹配物件和組
group(0):表示整個字串。
group(m):表示左邊有m個左括號的m組

4.7.4貪婪和非貪婪模式
加上(?):是非貪婪的,即最少匹配原則
(.+)(.+?)

#貪婪模式
>>>emphasis_pattern = r'\*(.+)\*'
>>>re.sub(emphasis_pattern,r'<em>\1</em>','*This* is *it*!')
'<em>This* is *it</em>!'
#非貪婪模式
>>>emphasis_pattern = r'\*(.+?)\*'
>>>re.sub(emphasis_pattern,r'<em>\1</em>','*This* is *it*!')
'<em>This</em> is <em>it</em>!'

4.7.5 模板系統
模板是通過放入具體值從而得到某種已完成的檔案。

#template.py
import fileinput,re
field_pat = re.compile(r'\[(.+?)\]')
scope = {}
def replacement(match):
    code = match.group(1)
    try:
        return str(eval(code,scope))
    except SyntaxError:
        exec code in scope
        return ''
lines = []
for line in fileinput.input():
    lines.append(line)
    text = ''.join(lines)
print field_pat.sub(replacement, text)
#data.txt
[x=2]
[y=3]
The sum of [x] and [y] is [x+y]
#執行
python template.py data.txt
#結果
The sum of x and y is 5

相關推薦

python基礎教程第二---1.4數字和表達式

pan com -1 一行 img 分享 cnblogs 第二版 輸出結果 一、除法 二、取余運算 對於整數: 對於浮點數: 2.75/0.5是為了說明除法結果是5.5 取余的時候(2.75-5*0.5)==0.25就得到了第一行的輸出結果0.25啦 這

python基礎教程第二

第十章 自帶電池 匯入模組: import sys sys.path.append('c:/python27')//告訴程式到這裡找模組 1.1. 若模組是一個程式,則在匯入時只執行一次,後面匯入不在執行,修改後可以用reload函式重新匯入,這

嵌入式linux基礎教程第二第一章

       linux已經成為很多裝置的作業系統,手機、DVD播放器、電子遊戲機、數碼相機、網路交換機和無線網路裝置、機頂盒、高清電視、藍光DVD播放器、汽車的資訊娛樂中心和很多日常使用的電器等都在使用linux作業系統。linux已經成為很多裝置的嵌入式作業系統 一.為

python基礎教程十一

list repeat stop row lis flatten ror 教程 [1] 叠代器 本節進行叠代器的討論。只討論一個特殊方法---- __iter__ ,這個方法是叠代器規則的基礎。 叠代器規則 叠代的意思是重復做一些事很多次---就像在循環中做的

Python核心程式設計第二第六章部分習題程式碼

6-2字串識別符號.修改例 6-1 的 idcheck.py 指令碼,使之可以檢測長度為一的識別符號,並且可以識別 Python 關鍵字,對後一個要求,你可以使用 keyword 模組(特別是 keyword.kelist)來輔助 #!/usr/bin/env python

oracle基礎教程第二

一、oracle表的管理 表名和列的命名規範 1.必須以字母開頭 2.長度不能超過30字元 3.不能使用oracle的保留字(關鍵字) 4.只能使用如下字元 A-Z,a-z,0-9,$,#等 oracle支援的資料型別 1.字元型     char    定長  最大2

cs231n---Python Numpy教程第二

Numpy庫:它提供了高效能的多維陣列物件,以及相關工具。陣列array一個numpy陣列是一個由不同數值組成的網格。網格中的資料都是同一種資料型別,可以通過非負整型數的元組來訪問。維度的數量成為陣列的階。陣列大小是一個由整型數構成的元組,可以描述陣列不同維度上的大小。從列表

Python核心程式設計第二課後習題部分答案

2-11:借鑑了一位博主的稿子,但關鍵部分做了改動。# !/usr/bin/env python # -*- coding:utf-8 -*- print ('Please input corresponding number to run different functi

Python基礎教程第二章:列表和元組2

ber 次數 eve sorted 反向 bsp del 對象 復制 list函數可以將字符串轉換為列表 ‘ ‘.join(somelist)可以將列表轉換為字符串 從列表中刪除元素可以使用del語句來實現 方法是與對象有緊密聯系的函數:對象.方法(參數) append方

Python基礎教程第3pdf

屬性 ria AS 設計 back sof 基礎教程 主題 splay 下載地址:網盤下載 本書包括Python程序設計的方方面面:首先從Python的安裝開始,隨後介紹了Python的基礎知識和基本概念,包括列表、元組、字符串、字典以及各種語句;然後循序漸進地介紹了一些相

分享《Python基礎教程第3高清中文版PDF+高清英文版PDF+源代碼

oss python 51cto 下載 baidu 中英文 ofo https water 下載:https://pan.baidu.com/s/112w57moG7UGLuLzKomYuAA 其他資料請見:http://blog.51cto.com/3215120 《Py

python基礎教程第三)學習筆記

第六章 抽象(函式) 6.1 懶惰是一種美德 6.2 抽象和結構 6.3 自定義函式 判斷某個物件是否可呼叫,可使用內建函式callable。格式是callable(物件)。 函式是結構化程式設計的核心。使用def(表示定義函式)語句。 '''   def fun(str_s): #

python基礎教程第三)學習筆記

第四章 字典 字典一種可通過名稱來訪問其各個值的資料結構。這種資料結構稱為對映。字典是Python中唯一的內建對映型別,其中的值不按順序排列,而是儲存在鍵下。鍵可能是數、字串或元組。 4.1 字典的用途 i表示棋盤的狀態,其中每個鍵都是由座標組成的元組; ii儲存檔案修改時間,其中的鍵為檔名; ii

python基礎教程第三)學習筆記

第三章 使用字串 3.1 字串基本操作 所有標準序列操作(索引、切片、乘法、成員資格檢查、長度、最小值和最大值)都適用於字串,但別忘了字串是不可變的,因此所有的元素賦值和切片賦值都是非法的。 3.2設定字串的格式 3.2.1% 使用字串格式設定運算子——百分號。這個運算子的行為類似於C語言中的經典函

python基礎教程第三)學習筆記

第二章 列表和元組 2.1序列概述 Python內建的序列包括列表、元組、字串、Unicode字串、buffer物件和xrange物件等,本章僅介紹列表和元組。 列表和元組的主要不同在於,列表的元素是可以修改的,而元組不可以單獨更改其中的單個元素,但可以更改元組的整體內容。 在序列中,每個元素都有編

python基礎教程第三)學習筆記十二

第十二章 圖形使用者介面 12.1 建立 GUI 示例應用程式 編寫一個簡 單的程式,讓使用者能夠編輯文字檔案 這個微型文字編輯器的需求如下。 1、 讓使用者能夠開啟指定的文字檔案。 2、 讓使用者能夠編輯文字檔案。 3、 讓使用者能夠儲存文字檔案。 4、讓使用者

python基礎教程第三)學習筆記十一

第十一章 檔案 11.1 開啟檔案 要開啟檔案,可使用函式open,它位於自動匯入的模組io中。函式open將檔名作為唯一必不可少的引數,並返回一個檔案物件。 from contextlib import contextmanager import sys,pprint f=open('xx.

python基礎教程第三)學習筆記

第十章 開箱即用 本章簡要介紹模組的工作原理以及如何探索模組以獲悉其提供的功能,然後概述標準庫,重點是幾個很有用的模組。 10.1 模組 使用import將函式從外部模組匯入到程式中。 ''' import math as ma Pi=3.1415926 v=ma.sin(Pi/6) pri

python基礎教程第三)學習筆記

第九章 魔法方法、特性和迭代器 9.1 如果你使用的不是python3 在Python 2.2中,Python物件的工作方式有了很大的變化。這種變化帶來了多個方面的影響。這些影響對Python程式設計新手來說大都不重要,但有一點需要注意:即便你使用的是較新的Python 2版本,有些功能(如特性

python基礎教程第三)學習筆記

第八章異常 異常事件可能是錯誤(如試圖除以零),也可能是通常不會發生的事情。為處理這些異常事件,可在每個可能發生這些事件的地方都使用異常處理機制。 8.1 異常是什麼 Python使用異常物件來表示異常狀態,並在遇到錯誤時引發異常。異常物件未被處理(或捕獲)時,程式將終止並顯示一條錯誤訊息(trac