豆豆寫于19.6.3 明天(2019.6.5)事情會(huì)很多,,當(dāng)日后看到今天的推送,肯定會(huì)有很多回憶吧~雖然明天交畢業(yè)論文定稿,,但還是選擇先把它放一遍,,先寫推送,因?yàn)闊釔?/span> 編程練習(xí)是一個(gè)重點(diǎn),,尤其后期需要個(gè)人根據(jù)自己需求去處理文本數(shù)據(jù)時(shí),,好的編程能力可以大大提高效率,Python的重要性不用多說,,最近在看簡明Python教程:https://legacy./book/lenkimo/byte-of-python-chinese-edition/details,,感興趣的小伙伴可以看一看
值得思考的一句話 構(gòu)建一項(xiàng)軟件設(shè)計(jì)有兩種方式:一種是將軟件設(shè)計(jì)得足夠簡單以至于明顯找不到缺陷;另一種是軟件設(shè)計(jì)得足夠復(fù)雜以至于找不到明顯的缺陷 ——查爾斯·安東尼·理查德·霍爾爵士
Python重要的特性 專注于解決問題的方案,,而不是語言本身
FLOSS(自由/開放源代碼軟件)成員之一,,分享自由開放
不需要編譯成二進(jìn)制,直接從源代碼運(yùn)行,。不必?fù)?dān)心如何進(jìn)行編譯,,或者如何保證適當(dāng)?shù)膸毂徽_的鏈接、加載等步驟,,這一切都在內(nèi)部完成
面向?qū)ο?程序結(jié)合了數(shù)據(jù)與功能的對(duì)象)
嵌入/擴(kuò)展:可以將C,、C++嵌入,保證程序快速運(yùn)行,,或者希望算法某部分不公開
豐富的庫:http://pypi./pypi
安裝 mac直接brew install python3
即可,,安裝成功后利用python3 -V
檢測(cè)版本;
windows的稍微復(fù)雜一下,這里不再贅述,,可以看書中的介紹
第一步 入門 關(guān)于運(yùn)行python程序 有兩種方式:交互式解釋器,、直接運(yùn)行源代碼
解釋器如下:
python3 Python 3.6 .3 (v3.6 .3 :2 c5fed86e0, Oct 3 2017 , 00 :32 :08 ) [GCC 4.2 .1 (Apple Inc. build 5666 ) (dot 3 )] on darwin Type 'help' , 'copyright' , 'credits' or 'license' for more information. >>> print('Hello World' ) Hello World
退出的話用ctrl/cmd + D
或者exit()
但是,不能每次都一行一行地從解釋器中敲,,多數(shù)情況需要編輯好,,然后保存為文件直接運(yùn)行
選擇一款編輯器 這個(gè)就像Harry Potter中選擇魔杖一樣,一款好的編輯器可以幫助我們更輕松地進(jìn)行python程序的編寫,。
最基本的要求就是語法高亮,,利用不同顏色來區(qū)分Python程序中的不同部分
書中推薦:新手可以從PyCharm教育版開始,專注于學(xué)習(xí)Python而不是編輯器
最簡單的步驟:
創(chuàng)建項(xiàng)目=》新建Python腳本=》輸入代碼=》右鍵'Run'運(yùn)行
之后找到這個(gè)腳本的路徑,,就可以直接運(yùn)行了
python3 ~/Library/Preferences/PyCharmEdu2019.1 /scratches/scratch.py Hello World
寫代碼要注意 Python區(qū)分大小寫,例如這里的print
和Print
,;
另外要確保每一行的第一個(gè)字符前面都沒空格或制表符
獲得幫助 利用內(nèi)置的help
在解釋器中可以查詢?nèi)魏魏瘮?shù)或語句信息,,只需要將它們放在引號(hào)中查詢,比如help('len')
,,退出再按q
基礎(chǔ)內(nèi)容 Python可以利用變量與常量來實(shí)現(xiàn)輸出更多內(nèi)容
注釋 #
這個(gè)東西是需要盡可能使用的,,比如說明重要的決定、解釋重要細(xì)節(jié),、說明要解決的問題等,,可以讓自己在未來幾個(gè)月還能明白這個(gè)代碼做了什么。保證代碼能讓六個(gè)月后的自己看懂,!
字面常量 意思就是'字面意義上的值或者內(nèi)容',,并且這些內(nèi)容是不能改變的
數(shù)字 兩種類型:整數(shù)和浮點(diǎn)數(shù),其中浮點(diǎn)數(shù)例如:3.23或者52.3E-4,,其中E表示10的冪
字符串 string 它是字符(character)的序列(sequence)
單引號(hào) 用來指定字符串,,其中包含的空格和制表符都會(huì)按原樣保留
雙引號(hào) 與單引號(hào)一樣的作用,其中可以包含單引號(hào),,例如:'what's your name?'
三引號(hào) 更厲害,,可以自由包含單引號(hào)、雙引號(hào),,用來指定多行字符串
格式化 這個(gè)有點(diǎn)像linux中shell腳本的$1,、$2
等等,用于替換每個(gè)參數(shù)值到格式所在的位置,,例如:
age = 20 name = 'haha' print('{0} was {1} years old' .format(name, age)) print('who is {0}?' .format(name))# 結(jié)果會(huì)看到 # haha was 20 years old
它將{0}
對(duì)應(yīng)到了變量name
,,也就是format
的第一個(gè)參數(shù),并且format會(huì)自動(dòng)完成字符串轉(zhuǎn)換的工作
這里注意:python的索引第一位是0
其實(shí),,{}
中的數(shù)字只是一個(gè)可選選項(xiàng),,其實(shí)還可以這樣:
print('{} was {} years old' .format(name, age)) print('who is {}?' .format(name))
關(guān)于打印 print一般會(huì)在打印的字符結(jié)尾加換行符\n
,如果不想換行,可以自己指定結(jié)尾是''
表示空白,,或者用' '
表示空格
# 以空白結(jié)尾 print('a' ,end='' ) print('b' ,end='' )# 結(jié)果是ab # 以空格結(jié)尾 print('a' ,end=' ' ) print('b' ,end=' ' ) print('c' )# 結(jié)果是a b c
關(guān)于轉(zhuǎn)義 例如:想要生成一個(gè)包含單引號(hào)的字符串,,是不能用'what's your name'
這樣的書寫方式的,因?yàn)閜ython看到三個(gè)單引號(hào),,不知道從哪里開始到哪里結(jié)束
于是可以用反斜杠\
將第二個(gè)單引號(hào)轉(zhuǎn)義
如果對(duì)反斜杠本身進(jìn)行轉(zhuǎn)義,,要使用\\
以上內(nèi)容均與linux有相似之處
原始字符串 如果存在大量的需要轉(zhuǎn)義的字符,每個(gè)都加\
有點(diǎn)冗余,,于是可以在字符串前加一個(gè)r
或者R
,,例如:r'Newlines are indicated by \n'
標(biāo)識(shí)符命名 第一個(gè)字符必須是字母或者下劃線;另外區(qū)分大小寫