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