Python是一種解釋型、面向?qū)ο?、動態(tài)數(shù)據(jù)類型的高級程序設計語言。Python可以用于很多的領(lǐng)域,從科學計算到游戲開發(fā)。同樣Python是一種腳本語言,而且對于初學編程的人來說這是一條康莊大道。下面小跡就介紹一下初學時,應該做哪些事。以下是小編為你整理的python學習教程 ?
首先是版本的選擇,Python2和Python3兩個版本各有優(yōu)缺,Python2由于是比較早的版本,因此資料相對多;而Python3是以后的發(fā)展趨勢,一般企業(yè)久而久之都會轉(zhuǎn)成使用P3。根據(jù)自己的實際情況選擇,雖然是兩個版本,但差異也不大,通常一個學會以后另一個版本花些時間就可以。
?
所有初學者面臨的*個問題便是:如何選擇教材,好的開始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學?;蚪逃龣C構(gòu)通常會指定一本不是特別好的Python課本,因此我們需要去百度或者知乎等平臺看看大家是如何選購學習教程的; ?
書本的選購完成后,我們需要查看是否有配套的視頻教程,可以通過百度或者去某些平臺購買實時授課,這樣在學習過程中遇到的問題就可以得以解答,而不是無頭蒼蠅,浪費了過多時間; ?
書和視頻已搞定,那就是環(huán)境配置了,PC平臺的環(huán)境配置以及庫的安裝,對于能否成功運行Python文件,有著關(guān)鍵的作用。不懂事要學會自己百度搜索相關(guān)的資源,一般你遇到的問題許多人也遇到過; ?
就是仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,*將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。 ?
怎么打開path1路徑
# path1路徑 w:只寫打開文件 utf-8:以怎樣的編碼打開文件 as f:打開后接口存為fwith open(path1, 'w', encoding='utf-8') as f: pass ?
with open(path1, 'w', encoding='utf-8') as f: s = 'good.123.love.456.make' f.write(s) f.flush() # 刷新緩沖區(qū),類似于word中點擊保存 f.seek(0) f.write('dog') # 代碼執(zhí)行后,會自動關(guān)閉文件。 ?
with open(path, 'a', encoding='utf-8') as f: f.write('ying') f.flush() f.seek(0) f.write('love') ?
path = r'D:desk4.txt'with open(path, 'wb') as f: s = 'good morning 水立方' code = s.encode(encoding='utf-8') f.write(code) ?
# 查看4.txtpath = r'D:desk4.txt'with open(path, 'r', encoding='utf-8') as f: print(f.read()) ?
如何設置生成器
from collections import Iterable, Iterator # 引入包# 將列表生成式的方括號改成圓括號,返回結(jié)果就不是列表了,而是一個生成器。g = (i for i in range(10))print(g) ?
print(isinstance(g, Iterator)) # 生成器屬于迭代器。print(isinstance(g, Iterable)) # 生成器屬于可迭代對象。print(isinstance('good', Iterator)) # 字符串等容器屬于可迭代對象,但是不屬于迭代器。 ?
# 生成器每次被訪問都會記錄自己被訪問的位置next(g) # 通過next()訪問生成器中的下一個元素print(next(g))
?
# for-in遍歷生成器會直接從記錄的位置訪問到*for i in g: print(i, end=' ')print() ?
# next(g) # 訪問到*一個,就不能在訪問了,否則崩潰g = (i for i in range(10))# 使用next()訪問生成器中特定數(shù)量的數(shù)據(jù)# 生成器,訪問一個加載一個,不訪問不加載:俗稱懶加載或惰性加載。for i in range(6): print(next(g)) ?
# 利用函數(shù)創(chuàng)建生成器def back_genarator(n): print(111111) for i in range(n+1): print(2222222) yield i print(3333333) ?
# 生成器記錄的是算法規(guī)則,依次加載# 調(diào)用next()才開始執(zhí)行生成器內(nèi)部的代碼,每調(diào)用一次next,代碼會走到y(tǒng)ield,將結(jié)果拋出,然后代碼暫停# 如果已經(jīng)訪問到*一個yield,就代碼生成器結(jié)束了,不能再次調(diào)用next()g = back_genarator(3)print(next(g))print(next(g)) ?
python常用的元素
舉個例子如果我們要生產(chǎn)一個list [1,2,3,4,5,6,7,8,9,10] 我們可以使用range(1,11)來表示,如果直接寫range(11) 是從0開始,我們可以演示一下。print range(11)print range(1,11)print range(8,11) ?
然后我們想一下 如果要表示[1*1,2*2,3*3,4*4.....100*100]要怎么做呢?好肯定是要利用到循環(huán)的概念,正常的寫法是這樣的: ?
a = [] #定義一個空的列表for x in range(1,101): #假設X在從1開始循環(huán)到100 a.append(x * x) # 進行一次添加操作 x* xprint a ?
作為一個程序員,就要是使用最短的代碼*效的完成程序表達的功能,如果使用循環(huán)寫的話會感覺比較繁瑣,特別是邏輯能力不太強的朋友,我們可以使用一行語句代替循環(huán),我們測試看看
print [x * x for x in range(1,101)] ?
當然除了計算之外,我們還可以做一些比較特殊的字符串操作,比如: ?
print [m + n for m in 'ABC' for n in 'XYZ'] ?
我們可以看到我們把A B C 都加了一遍XYZ 如果要用正常的循環(huán)也是可以完成的就是了,這樣的操作更加簡單便捷。 ?
之前有一道練習題 列出當前目錄下的所有文件名和目錄名,我們可以表示成: ?
import os #導入OS模塊print [d for d in os.listdir('.')] #os.listdir 列出文件和目錄 ?
由于pycharm 解析器有一些異常出了一個錯誤,我們回到原始的python測試,可以看到完成列表目錄的輸出過程。