python學(xué)習(xí)筆記第一節(jié)-打印和變量賦值


Python學(xué)習(xí)心法

1、語(yǔ)法不是重點(diǎn)

2、算法不是重點(diǎn)

3、數(shù)據(jù)結(jié)構(gòu)及其轉(zhuǎn)化是大多數(shù)算法的核心,是應(yīng)該花大力氣學(xué)習(xí)的知識(shí)。

4 、Python知識(shí)的二八原則

?????20%的知識(shí)比較難 80%的知識(shí)淺顯易懂;

?????80%的知識(shí)在編程中用不到 ,常用的20%左右。

5、在ai時(shí)代,有許多代碼輔助工具可以在學(xué)習(xí)和工作中使用運(yùn)。比如codex(https://beta.openai.com? 基于GTP-3和GPT-C,2022年五月codex內(nèi)測(cè)結(jié)束,開(kāi)始收費(fèi)。), alphacode,? Copilot? tabnine 等等。知識(shí)的細(xì)節(jié)和語(yǔ)法熟練度等方面越來(lái)越不重要。所以學(xué)習(xí)的專(zhuān)注點(diǎn)不要放在語(yǔ)法和編程基本功上,也沒(méi)必要花太多時(shí)間刷很多算法題,應(yīng)該專(zhuān)注于問(wèn)題本身、專(zhuān)注于問(wèn)題所在領(lǐng)域的技術(shù)動(dòng)向。在入門(mén)過(guò)程中我們很難寫(xiě)出高質(zhì)量、有意義的代碼,當(dāng)你在語(yǔ)法和句法方面遇到的困難時(shí),試著跳過(guò)那些微不足道的問(wèn)題,試著用注釋先備注這里遇到的問(wèn)題,先讓程序的骨架搭建起來(lái),再回頭處理細(xì)節(jié)問(wèn)題。

???????關(guān)于幾個(gè)代碼輔助工具的文章https://posts.careerengine.us/p/60dc0202fe56051682946b57

6、專(zhuān)注于數(shù)據(jù)流

7、當(dāng)你對(duì)代碼的表達(dá)沒(méi)有足夠經(jīng)驗(yàn)時(shí),讀10個(gè)別人寫(xiě)的優(yōu)秀的程序、不如一次將自己的簡(jiǎn)單 ? ? 想法用代碼實(shí)現(xiàn)。試著將自己的編程思想表達(dá)出來(lái),每一次完整的編程實(shí)踐都意味著能力的拔高。

8、如果你關(guān)心的領(lǐng)域沒(méi)有充足的庫(kù)和算法有兩個(gè)可能 ,你檢索的范圍和檢索的方法有問(wèn)題,? 這部分知識(shí)被隱藏了起來(lái)。試著投入精力解決你要解決的問(wèn)題,這是我們學(xué)習(xí)編程的最終目的

9、學(xué)編程語(yǔ)言和學(xué)自然語(yǔ)言有很大部分是原理相通的,詞匯量、 表達(dá)習(xí)慣 ,表達(dá)能力,思考能力、閱讀能力,創(chuàng)新能力都可能幫助我們突破阻礙,也都有可能成為障礙。

?10、 當(dāng)我們學(xué)習(xí)編程時(shí),我們是在學(xué)習(xí)一種思考方法,思考工具,我們?cè)谔岣咚枷氲木S度。

編程作為一種語(yǔ)言或許也是有維度的,不同維度的編程用來(lái)解決不同維度的問(wèn)題,從我們運(yùn)用計(jì)算器處理簡(jiǎn)單的數(shù)學(xué)計(jì)算開(kāi)始,或許就注定了計(jì)算機(jī)編程的宏大敘事;我們創(chuàng)造數(shù)據(jù)模型模擬世界,模擬我們身邊的事物,編程和算法的核心目標(biāo)是將問(wèn)題數(shù)據(jù)化可計(jì)算化。

??????什么樣的事物是可以計(jì)算的呢?這個(gè)問(wèn)題的答案一直在被改寫(xiě)。


???????What is? program? What is python?

??????編程是符號(hào)的學(xué)問(wèn),它既包含數(shù)學(xué)、哲學(xué)、語(yǔ)言學(xué),與我們以往的知識(shí)大有不同, 數(shù)學(xué)用函數(shù)和模型來(lái)描述事物,而編程即延襲了這些方法和思想、又開(kāi)創(chuàng)性的提出了很多運(yùn)算的概念, 神經(jīng)網(wǎng)絡(luò)、機(jī)器學(xué)習(xí)這樣的算法既是數(shù)學(xué)又突破了數(shù)學(xué) ,不要急著回答諸如What is program這樣的問(wèn)題 ,也不要急著去回答編程能干什么這樣的問(wèn)題,計(jì)算科學(xué)才剛剛起步就改變了世界, 編程是智慧的飛躍 ,更是是智慧的進(jìn)化,是新時(shí)代的生產(chǎn)工具、思考工具。

???????豐富的代碼組合可以解決許多問(wèn)題,怎么用編程來(lái)解決你的問(wèn)題才是問(wèn)題的核心,你要首先了解你的問(wèn)題,其次你要了解編程.?

????????一直以來(lái)自然語(yǔ)言和文字被用作交流、思考、創(chuàng)造和傳承的工具, 自從有了計(jì)算機(jī)科學(xué)、我們的一切都被改變了,而且這種改變的速度在逐步的加快 ,編程語(yǔ)言不只是一門(mén)技術(shù),而是將來(lái)人們必須掌握的生存技能 .

????????人們因使用而學(xué)習(xí)。而使用是最好的學(xué)習(xí)方法。學(xué)習(xí)Python可以有很多的動(dòng)機(jī),因?yàn)镻ython可以完成太多的工作,初學(xué)者應(yīng)該帶著怎樣的目標(biāo)來(lái)學(xué)習(xí)呢?

????????太多的概念太多的應(yīng)用和場(chǎng)景都在使用Python,這讓初學(xué)者很容易迷失方向,但如果你帶著目標(biāo)來(lái)學(xué)習(xí)將起到事半功倍的效果.

????????為什么要專(zhuān)注于目標(biāo)?當(dāng)我們專(zhuān)注于目標(biāo)來(lái)學(xué)習(xí)Python時(shí)我們可以忽略掉目標(biāo)無(wú)關(guān)的知識(shí)忽略掉學(xué)習(xí)上的選擇困難,.

???????編程已經(jīng)擴(kuò)展到生活和生產(chǎn)的方方面面:網(wǎng)絡(luò),娛樂(lè),藝術(shù),社交App, ai教育,小程序,ERP,財(cái)務(wù),設(shè)計(jì),游戲,物聯(lián)網(wǎng),工控,自動(dòng)化,,智能家居,智能交通,智能穿戴,服務(wù)機(jī)器人,機(jī)器視覺(jué),語(yǔ)音識(shí)別,翻譯,tts語(yǔ)音轉(zhuǎn)換,聲紋技術(shù),生物傳感器,腦機(jī)接口,鑲?cè)胧皆O(shè)備,爬蟲(chóng),云,人工智能,大數(shù)據(jù),區(qū)塊鏈,數(shù)字貨幣,科學(xué)計(jì)算, 這些或成熟或稚嫩的應(yīng)用場(chǎng)景, 都在被硬軟件技術(shù)改造著。未來(lái)越來(lái)越數(shù)字化,越來(lái)越虛擬化。

?????如果你清楚的知道你要用Python去做什么事,那么學(xué)習(xí)就變得簡(jiǎn)單了,Python可以做很多事情。 你需要掌握一門(mén)編程語(yǔ)言,python 是不錯(cuò)的入門(mén)語(yǔ)言。.

????????Python本身并不有趣,但那些人們正在用python所作的事情太有趣了。

python 知識(shí)體系如下表:


入門(mén)第1課

print語(yǔ)句

1, print語(yǔ)句是一個(gè)Python內(nèi)置函數(shù),作用是將括號(hào)中的東西顯示出來(lái),這個(gè)函數(shù)可以顯示幾乎所有的數(shù)據(jù),數(shù)字,字符串,變量,表達(dá)式。

暫停思考:什么是數(shù)據(jù)?什么是數(shù)據(jù)結(jié)構(gòu)?什么是數(shù)據(jù)類(lèi)型?可計(jì)算的東西都可以是數(shù)據(jù),數(shù)據(jù)可以是簡(jiǎn)單結(jié)構(gòu),沒(méi)有結(jié)構(gòu),也可能結(jié)構(gòu)復(fù)雜:比如課表、棋類(lèi)棋譜、圖片、視頻音頻、波形、樂(lè)譜、思維導(dǎo)圖等等.

數(shù)據(jù)類(lèi)型:我們將需要計(jì)算的東西規(guī)范化統(tǒng)一化以便計(jì)算機(jī)能夠存儲(chǔ)計(jì)算。如:int, 布爾,列表、字典,就是我們?cè)O(shè)計(jì)的數(shù)據(jù)類(lèi)型。用type()函數(shù)可以查詢(xún)數(shù)據(jù)的類(lèi)型。

????print語(yǔ)句可以打印很多東西

print(‘money’)

pyint(‘money’*100)

a = range(10)

print(a)

注意:print 既然是一個(gè)函數(shù),函數(shù)后面的括號(hào)自然少不了

x = 558

y = 557

print(x+y)

print 打印布爾表達(dá)式

a = 2

b = 3

print(a>b)? ? #a>b是一個(gè)布爾表達(dá)式,這里的結(jié)果是假False

#是一個(gè)注釋符號(hào),是代碼的解釋?zhuān)?后面的語(yǔ)句不執(zhí)行,只是幫助代碼的閱讀

三個(gè)單引號(hào)和三個(gè)雙引號(hào)常用來(lái)注釋一段代碼,二者效果一樣。

單引號(hào)注釋代碼塊

‘’’

dshskjhkj

jjkjkkjklk

‘’’

雙引號(hào)注釋代碼塊

”“

hjhkj

kljklj?

klkjkljk

”“

在調(diào)試代碼是也會(huì)經(jīng)常使用ctrl + /? 快捷鍵來(lái)注釋掉整塊代碼,再次按ctrl + /? 可以取消注釋

特別要注意:在錄入代碼時(shí),務(wù)必將電腦輸入法切換到英文輸入模式,Python不認(rèn)識(shí)中文標(biāo)點(diǎn)符號(hào)

注意:print函數(shù)默認(rèn)是換行的如果不換行可以在輸出內(nèi)容后加end=' ’用逗號(hào)隔開(kāi)。

????????????????end=‘\n ‘是默認(rèn)參數(shù),默認(rèn)情況換行。

????????????????print ()函數(shù)還有很多參數(shù),在深入學(xué)習(xí)中會(huì)遇到

a = 2

b = 3

print(a>b)

print(a*b)

print(a-b,end='? ')

print(a+b,end='? ')

print(a,a,b,b,)

print('結(jié)束打印')

輸出

False

6

-1? 5? 2 2 3 3

結(jié)束打印

這里的end=’‘之間加了一個(gè)空格

???實(shí)際上我們可以把end 參數(shù)換成很多樣式,以達(dá)到輸出效果,我估計(jì)它的性質(zhì)和關(guān)鍵字參數(shù)類(lèi)似,有興趣可以作些實(shí)驗(yàn)

a = 2

b = 3

print(a>b,end='___\n')

print(a*b,end='7,6,8,7,6,\n')

print(a-b,end='&&\n')

print(a+b,end='1,2,3\n')

print(a,a,b,b)

print(end=' *************? ? ****** ? ? *****? ? *****\n')

print('結(jié)束打印')

輸出

False___

67,6,8,7,6,

-1&&

51,2,3

2 2 3 3

?*************? ? ****** ? ? *****? ? *****

結(jié)束打印

注意”print函數(shù)的兩種格式化輸出%和format。也不是多難,初學(xué)者了解便好。

先來(lái)了解下%后面接不同字母代表的轉(zhuǎn)換意義,%s 表示轉(zhuǎn)換成字符,%o轉(zhuǎn)換成8進(jìn)制

%d轉(zhuǎn)換成10進(jìn)制,%x轉(zhuǎn)換成16進(jìn)制,%o轉(zhuǎn)換成8進(jìn)制,%接f,e,g表示保留不同的有效位,以及小數(shù)點(diǎn)后位數(shù)。%%文字,%i 轉(zhuǎn)換成整數(shù)

例:a = 88,print('a 的大小為:%s'% a) 輸出:a 的大小為:88

%S也被解釋為占位符,先在輸出內(nèi)容中展占位,最后補(bǔ)充說(shuō)明該位置應(yīng)該替換的數(shù)據(jù)

a = 88

b = 99

print('a 的大小為:%s,b 的大小為%s,兩者相差%s'% (a,b,b-a))

輸出:a 的大小為:88,b 的大小為99,兩者相差11

? format 和%差不多

zidian = {'name':'張三','age':'40','tixing':'球型'}

print('大肥豬{name},今年{age}歲,體型已經(jīng)變成{tixing}了'.format(**zidian))

輸出:大肥豬張三,今年40歲,體型已經(jīng)變成球型了

? ? print()函數(shù)還有一個(gè)重要的參數(shù)sep=,用來(lái)設(shè)置分隔符

a = '你好:'

b = '先生'

c = '王'

d = '李'

e = '趙'

f = '小姐'

print(a,c,b,sep='? ? |? ? ? ',end='? -------- ? ---- ? ? ? --\n')

print(a,d,b,sep='? ? |? ? ? ',end='? -------- ? ---- ? ? ? --\n')

print(a,e,f,sep='? ? |? ? ? ',end='? -------- ? ---- ? ? ? --\n')

輸出

你好:? ? |? ? ? 王? ? |? ? ? 先生? -------- ? ---- ? ? ? --

你好:? ? |? ? ? 李? ? |? ? ? 先生? -------- ? ---- ? ? ? --

你好:? ? |? ? ? 趙? ? |? ? ? 小姐? -------- ? ---- ? ? ? --

入門(mén)第2課? 變量及變量賦值

????計(jì)算機(jī)可以存儲(chǔ)數(shù)據(jù),這是馮諾依曼結(jié)構(gòu)的特點(diǎn),我們不用知道數(shù)據(jù)存在硬盤(pán)的和內(nèi)存的什么地方,Python編程要做的,只是給這塊存儲(chǔ)空間起一個(gè)名字。

Python變量命名只有簡(jiǎn)單的幾條規(guī)則:


???????1、變量名[空間的名字]由字母和數(shù)字以及下劃線組成。

???????2、但不能以數(shù)字開(kāi)頭

???????3、下劃線是可以開(kāi)頭的,但這種情況是極特殊:__init__,__main___,__item__

???????4、有一些字母組合是保留關(guān)鍵字,而這些保留關(guān)鍵字是python執(zhí)行器判斷程序結(jié)構(gòu)的依據(jù),在變量命名時(shí)不能使用。

>>> import keyword? ? #導(dǎo)入keywork外置模塊

>>> keyword.kwlist ? ? #用kwlist方法打印python保留關(guān)鍵字

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

注意:以上四條不僅是變量名命名的規(guī)則,同時(shí)也是函數(shù)和類(lèi)的命名規(guī)則.

變量賦值

Python賦值語(yǔ)句的設(shè)計(jì)十分自由簡(jiǎn)潔:例如

a = ’你好世界‘

不需要提前申明變量,約束變量的類(lèi)型,在賦值的一瞬間完成了許多工作。

第1句a = ’你好世界‘就是一條賦值語(yǔ)句,變量a被賦值為’你好世界’,前邊不需要加上數(shù)據(jù)類(lèi)型,Python根據(jù)后面的內(nèi)容自動(dòng)判斷數(shù)據(jù)類(lèi)型

??????變量的賦值也意味著被分配存儲(chǔ)空間 (實(shí)際上只是指向)

???(擴(kuò)展知識(shí):Python的內(nèi)存分配機(jī)制有共用、駐留、銷(xiāo)毀等機(jī)制,可以用is方法判斷兩個(gè)變量是不是被分配到了同一空間,可以用==判斷兩個(gè)變量中存儲(chǔ)的值是否相等,可以用id()的方法查詢(xún)變量存儲(chǔ)的內(nèi)存位置,(地址)。變量被賦值后,可以的隨時(shí)隨地給他賦另外一個(gè)類(lèi)型的值.

??????一個(gè)變量被賦值后編程者要清楚的掌控此時(shí)這個(gè)變量的類(lèi)型,這點(diǎn)很重要。因?yàn)椴煌?lèi)型的數(shù)據(jù)有不同的計(jì)算特性和方法特性。

??????變量對(duì)應(yīng)著存儲(chǔ)空間,你可以先給變量賦予一個(gè)字符,然后過(guò)一陣子再用它來(lái)存儲(chǔ)其他的東西,這是可以的。變量的類(lèi)型type,由它存儲(chǔ)的數(shù)據(jù)決定。

a = 'hj'

print(a)

print(type(a))? ? ? #打印變量a的數(shù)據(jù)類(lèi)型

a = 1

print(a)

print(type(a))? ? ? #再次打印變量a的類(lèi)型

輸出

hj

<class 'str'>

1

<class 'int'> ? ? ? #因?yàn)樽兞縜被重新賦值,所以它的類(lèi)型變了

??????不要糾結(jié)變量的名字,關(guān)注變量中的值才是重點(diǎn),簡(jiǎn)單的一對(duì)一變量賦值一般不會(huì)出錯(cuò),容易出錯(cuò)的地方是,我們?cè)谟米兞拷邮蘸瘮?shù)返回值時(shí)、容易把數(shù)量搞錯(cuò),這時(shí)需要注意,函數(shù)有幾個(gè)輸出就用幾個(gè)變量來(lái)接收,數(shù)量上要匹配否則會(huì)報(bào)錯(cuò).?

??????很多時(shí)候我們的賦值語(yǔ)句不是給變量一個(gè)給定的值而是一個(gè)表達(dá)式 ,甚至是一個(gè)隨著程序運(yùn)行而不斷變化的一個(gè)表達(dá)式 ,這里我們舉幾個(gè)相對(duì)簡(jiǎn)單的例子:

a = 1

b = 2

c = a*b+a/b

print(c)

輸出:2.5

為了追求語(yǔ)句簡(jiǎn)潔,Python還可以批量賦值

a, b, c, d = 1,3,5,9 ? ? #賦值符號(hào)=兩邊個(gè)數(shù)匹配就行,這里同時(shí)給四個(gè)變量賦四個(gè)值

print(a, b, c, d)

輸出

1? 3? 5? 9


???賦值語(yǔ)句還往往將函數(shù)的返回值賦給變量

def just(lst=[1,2,3,4]):

????a, b, c, d = lst[0], lst[1], lst[2], lst[3]

????return a,b,c,d

e,f,g,h = just(lst=[5,6,7,8])

print(e,f,g,h)

輸出

>>> 5 6 7 8

????????函數(shù)的相關(guān)知識(shí)將在后邊學(xué)習(xí),這里只需了解有這樣的賦值形式

?locals()函數(shù),動(dòng)態(tài)變量(難點(diǎn)初學(xué)者可忽略):

如果變量名比較多而這些變量名又是有一定規(guī)律時(shí)可以使用動(dòng)態(tài)賦值?


names =? locals()? ? ? ? ? ? ? ? ? ? ? ? ? #告訴編譯器我要定一個(gè)動(dòng)態(tài)變量names

for i in range(5):

??????names[‘n’+str(i)]=i? ? ? ? ? ? ? ? ? ? #動(dòng)態(tài)生成變量名

print(n0 n1 n2 n3 n4) ? ? ? ? ? ? ? #n0 n1 n2 n3 n4是動(dòng)態(tài)生成的變量

輸出

?01234

???在閱讀代碼時(shí),了解賦值符號(hào)兩邊東西是理解代碼的關(guān)鍵。賦值語(yǔ)句是最簡(jiǎn)單的python知識(shí),但賦值語(yǔ)句又最基礎(chǔ)最普遍最重要的語(yǔ)句,有時(shí)=右邊的結(jié)構(gòu)比較復(fù)雜,要細(xì)心分析表達(dá)式的最終結(jié)果,隨著學(xué)習(xí)的深入,你會(huì)發(fā)現(xiàn),所有的數(shù)據(jù)類(lèi)型都可以賦值給變量,除此之外圖片,視頻,聲音,文件,設(shè)備,網(wǎng)絡(luò)端口等等太多的事物都可以用賦值語(yǔ)句賦值給變量,你會(huì)越來(lái)越了解,變量的意義,賦值的意義,數(shù)據(jù)的意義,計(jì)算的意義。

???????總結(jié):這里我們大概了解了python的知識(shí)體系,了解了print函數(shù),了解了變量的命名規(guī)則,以及變量的賦值,我們可以嘗試給變量賦不同的值并打印出來(lái)。

???????如何作實(shí)驗(yàn):下一節(jié)我們將介紹python的編程平臺(tái)pycharm,在此之前可以使用菜鳥(niǎo)工具的python在線工具https://c.runoob.com/compile/9/ 對(duì)本節(jié)類(lèi)容進(jìn)行練習(xí),手機(jī)瀏覽器也是可以的。代碼寫(xiě)點(diǎn)擊運(yùn)行就可以在下免得輸出框看到結(jié)果。下一節(jié)進(jìn)行數(shù)據(jù)類(lèi)型的學(xué)習(xí)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容