有趣的世界
在這一章里我不打算講太多理論性的東西,甚至在之后的日子里,我也盡量以輕松平常的風(fēng)格來寫這一個(gè)系列的課程,為了讓你們能看懂以及我自己寫著輕松。
我最近問了不少朋友學(xué)python的目的,有人說為了趕上潮流,為了提高工作效率,甚至小孩子都要學(xué)python,不由得讓我想起來之前SOHO老板的一條微博。
開始我以為是開個(gè)玩笑,沒想到現(xiàn)在學(xué)這個(gè)的人越來越多,python越來越受到關(guān)注和喜歡對我來說是一件很高興的事情,畢竟很早以前用python搞開發(fā)時(shí)老被同行嘲諷:“你們那玩意性能不行,是個(gè)玩具”
玩具不玩具暫且不提,既然有人說這是個(gè)玩具,那么我們就用python干一點(diǎn)好玩的事情。
我所理解的python是一門上手比較容易的語言,容易的地方在于它的設(shè)計(jì)思想或者說作者的思想,用簡單點(diǎn)的話說就是用說人話的方式寫代碼。
怎么理解呢,我寫代碼舉個(gè)例子。
以下是一段go語言在屏幕終端打印helloword的例子
package main
import "fmt"func main() {
fmt.Println("hello world")
}
對于初學(xué)者來說,恐怕他對于以上代碼會(huì)產(chǎn)生各種迷惑,什么是package main?干嘛用的, 為main后面這個(gè)又是什么,為什么不能直接用print打印字符串,要加fmt。諸如此類等等,對于專業(yè)的程序員,理解以上代碼毫不費(fèi)力,但是對于沒有任何編程基礎(chǔ)的人,恐怕還是下面的例子更容易打動(dòng)人。
以下是pythn的例子
print("hello world")
好吧,這個(gè)例子我覺得一點(diǎn)都不極端,python基本是就是用說人話的方式去構(gòu)建代碼,大大解放了人們因?yàn)檎Z言特性帶來思想上的束縛,從而把精力花在如何構(gòu)建一個(gè)自己想要的功能實(shí)現(xiàn)上,而不是去思考這個(gè)語言該怎么寫,語法是怎么樣的,到不是說python就沒有語法,而是python到語法已經(jīng)足夠簡單,簡單到是個(gè)正常人稍加培訓(xùn)就能寫一些代碼的地步,否則也不會(huì)有今天這么多非計(jì)算機(jī)行業(yè)的人士來學(xué)它了。
我們接著從剛才那個(gè)hello word的例子講起吧。
hello world這個(gè)字符串的由來是因?yàn)楫?dāng)年貝爾實(shí)驗(yàn)室的一位程序員。于1972年,貝爾實(shí)驗(yàn)室成員布萊恩·柯林漢撰寫的內(nèi)部技術(shù)文件《A Tutorial Introduction to the Language B》首次提到了Hello World這字符串
兩年后,布萊恩·柯林漢和丹尼斯·里奇基于B語言寫成C語言后,在他們撰寫的《C程序設(shè)計(jì)語言》使用更簡單的方式展示Hello World:
#include <stdio.h>
main()
{
printf("hello, world\n");
}
自此,Hello World成為了電腦程序員學(xué)習(xí)新的編程語言的傳統(tǒng)。
由 布萊恩·柯林漢 撰寫的“Hello, world”程序 (1978年)
其實(shí)我們通過helloworld這個(gè)例子可以了解到 字符串 這個(gè)概念,簡單點(diǎn)說就是它可以是中文,英文,數(shù)字或者其他你能想到的任意能在屏幕上顯示的內(nèi)容都可以稱為字符串。
當(dāng)然我這個(gè)話不夠嚴(yán)謹(jǐn),除了字符串,編程語言還有很多別的數(shù)據(jù)類型。比如整型,浮點(diǎn)數(shù),布爾值等等。但是這不重要,以后我會(huì)提到。
現(xiàn)在我們只需要知道,字符串在python當(dāng)中由引號(hào)包裹起來,可以是雙引號(hào),也可以是單引號(hào)。
a = '我是一個(gè)字符串123456'
b = " 我也是一個(gè)字符串12345678"
這里我定義了兩個(gè)變量,分別是a和b,并且給他們賦予了不同的內(nèi)容,這個(gè)過程用計(jì)算機(jī)的術(shù)語來講叫做賦值,分別存儲(chǔ)在內(nèi)存不同的空間隨時(shí)等待著被召喚(例如使用print函數(shù)打印它)
以上這樣定義字符串都可以,單引號(hào)和雙引號(hào)的區(qū)別回頭詳細(xì)講,反正別用全角的引號(hào)即可,您要是來個(gè)
a = “我是字符串”
那計(jì)算機(jī)就得報(bào)錯(cuò)了
記住這個(gè)錯(cuò)誤提示,字面意思是 語法錯(cuò)誤,字符驗(yàn)證失敗,每當(dāng)出現(xiàn)這種錯(cuò)誤時(shí),仔細(xì)檢查你的字符串里是不是有中文空格,引號(hào),tab鍵之類的。
剛才我們除了用到了print打印一段文字外,還用到了變量定義
就是 a = "我是一個(gè)字符串123456"
變量這個(gè)概念我想很多朋友應(yīng)該都有一定的認(rèn)識(shí),簡單的說是在計(jì)算機(jī)內(nèi)存中開辟了一塊空間存儲(chǔ),哎不對,我說復(fù)雜了。
大家暫且理解為變量就是一個(gè)代號(hào)或者人名吧。比如鋼鐵俠,如果我們每次描述一個(gè)人的時(shí)候,總要說他是,出生美國幼年喪父母身高170體重70公斤三圍XXX有錢多金帥氣全身盔甲高科技無敵打怪能手拯救地球等等。估計(jì)說完他的特點(diǎn)后,就該喝水了,沒別的,太渴。要是老師上課點(diǎn)名來這么一出估計(jì)點(diǎn)完名就該下課了。
于是我們通過人名來定位到某個(gè)具體到人,至于這個(gè)人的具體特點(diǎn),那是以后的事情,我們叫人名的那一刻不關(guān)心,同樣的,我們在程序里使用變量時(shí)也是一樣,定義變量的時(shí)候,它的內(nèi)容是什么玩意都行,用到的時(shí)候再說。
我只需要在用到的時(shí)叫它的名字就是了。
同時(shí)變量還有一個(gè)特點(diǎn)就是它的內(nèi)容是可以隨時(shí)變化的,這玩意人名就做不到了,人可以改名,但是身體內(nèi)容沒法換。變量可以做到。呃,讓我想想,其實(shí)人多身體也可以換,變性嘛。
前天天你是a="直男",去了趟東南亞,今天你是a="少女"
比如我上一刻是
a = "2019快要過去了,我不懷念它"
print(a)
下一刻就是
a = "2020年快要來了,我滿18歲了"
print(a)
那么之前的那句 "2019快要過去了,我不懷念它"去哪里了呢?
它被內(nèi)存丟掉了,內(nèi)存你們知道吧?所有程序運(yùn)行時(shí)都需要內(nèi)存,所有數(shù)據(jù)的呈現(xiàn)都需要在內(nèi)存中開辟一塊空間(哎,我開始說到這個(gè)了吧),內(nèi)存的特點(diǎn)就是速度快,用完就丟,像極了渣男。
a這個(gè)變量先后被賦值了兩次,第二次的賦值直接將第一次的賦值更改了,第一次的內(nèi)容也就被內(nèi)存所丟棄掉了,我們想想,如果它不被丟掉會(huì)產(chǎn)生什么情況?
沒錯(cuò),內(nèi)存被慢慢被這種不釋放的變量撐滿,機(jī)器速度變慢。
大家能理解游戲或者繪圖軟件為什么耗資源了嗎?因?yàn)樽鰣D像處理時(shí)會(huì)涉及到大量的數(shù)據(jù)運(yùn)算,除了CPU之外還需要向內(nèi)存申請大量的資源。
關(guān)于變量的概念這一塊我們暫時(shí)講到這里,變量的命名規(guī)則也很簡單,不用能系統(tǒng)關(guān)鍵字作為變量名。比如我們開始用到的print,首字母不能是數(shù)字,可以是下劃線,python也支持中文變量名,其他語言不一定,不要一概而論。
個(gè)人建議給變量取名時(shí)要言之有物,不要用aa,bb,cc之類的(教學(xué)除外)
以下是一些變量命名正確和錯(cuò)誤示范
好了,下一章我們正式開始講Python的基礎(chǔ)
聯(lián)系客服