變量與字符串
- 變量的定義與賦值
answer = 42
file = open(' Users/yourname/Desktop/file','w') file.write('hello world!')
上面代碼的意思是:在桌面上打開一個文件(路徑得看個人具體情況),
w
的意思是及舍,如果有則在文件里寫入hello world
丑罪,如果沒有則創(chuàng)建一個文件会宪。Mac可以通過把一個文件拖入到終端里來看文件路徑撬陵。
字符串用單引號跟雙引號括起來都可以舟铜,特別注意:三個單引號是可以跨行的超長字符串
-
不同數(shù)據(jù)類型不可以直接合并寸齐,合并不同數(shù)據(jù)類型弛随,需要使用數(shù)據(jù)類型轉(zhuǎn)換
e.g
-
需要使用中文注釋的時候屯曹,記得在開始處加
#utf-8
-
字符串相乘狱庇,其實就是幾個字符串相加合并
-
一個更復雜的例子
-
字符串的分片與索引
字符串可以通過string[x]的方式進行索引寄疏、分片,也就是加一個[]僵井。字符串的分片實際上是可以看作是從字符串中找出來你要截取的東西陕截,復制出來一小段你要的長度,存儲在另一個地方批什,而不會對字符串這個源文件改動农曲。分片獲得的每個字符串可以看作是原字符串的一個副本
e.g.
-
字符串的方法
-
字符串格式化符
函數(shù)
-
python的內(nèi)建函數(shù)
Python官網(wǎng)中各個函數(shù)的介紹: https://docs.Python.org/3/library/functions.html
-
創(chuàng)建函數(shù)
def function (arg1, arg2): return 'Something'
注意語句塊要縮進!不要漏掉冒號驻债!
-
函數(shù)調(diào)用
-
兩個小練習
練習一:設計一個重量轉(zhuǎn)換器维费,輸入以“g”為單位的數(shù)字后返回換算成“kg”的結(jié)果
當輸入為1000時造壮,
練習二:設計一個求直角三角形斜邊長的函數(shù) (兩條直角邊為參數(shù),求最長邊)
-
傳遞參數(shù)與參數(shù)類型
參數(shù)有兩種類型: 位置參數(shù) (position argument)
關鍵詞參數(shù) (keyword argument)
求梯形面積
混合方式傳入?yún)?shù)
-
默認參數(shù)
-
設計自己的函數(shù)
設計一個函數(shù),需求是:傳入?yún)?shù)name與msg就可以控制在桌面寫入的文件名稱和內(nèi)容的函數(shù)text_create,并且如果當桌面上沒有這個可以寫入的文件時夜涕,那么就創(chuàng)建一個之后再寫入。(敏感詞過濾器的第一部分)
敏感詞過濾函數(shù):定義一個函數(shù)text_filter,傳入?yún)?shù) word, censored_word和changed_word實現(xiàn)過濾募逞,敏感詞censored_word默認為lame越败,替換詞changed_word默認為Awesome。
把兩個函數(shù)合并:創(chuàng)建一個名為text_censorded_create的函數(shù)拆祈,功能是在桌面上創(chuàng)建一個文件恨闪,在其中輸入文字,但如果信息中包含敏感詞的話就會被默認過濾后寫入文件放坏。
-
一些數(shù)學上的操作符
循環(huán)與判斷
-
布爾表達式
-
比較運算
python的比較運算符跟C語言基本一致
一些復雜的運算
-
成員運算符與身份運算符 (Membership&Identify Operators)
列表
成員運算符和身份運算符的關鍵詞是 in
和is
咙咽。
布爾值
python的布爾運算符是直接用英文的and ,or,not 邏輯內(nèi)涵還是基本的與或非不變淤年。
-
條件控制
python中的if else 跟C語言一個用法
用布爾變量優(yōu)化條件表達式
多條件判斷跟C語言寫法略有不同钧敞,主要是中間的部分用的是elif, 用法上沒區(qū)別
-
循環(huán)
for循環(huán)
for循環(huán)與if結(jié)合的例子
嵌套循環(huán)
while循環(huán)
注意:這里的while可以理解為是if循環(huán)版,可以使用while-else結(jié)構(gòu)麸粮。
-
練習題
練習一:
練習二:
練習三:
打印一到一百內(nèi)的偶數(shù)
綜合練習:
數(shù)據(jù)結(jié)構(gòu)
存儲大量數(shù)據(jù)的容器溉苛,在python中稱之為內(nèi)置數(shù)據(jù)結(jié)構(gòu)(Built-in Data
Structure)。
我們?nèi)粘J褂玫木W(wǎng)站豹休,移動應用炊昆,甚至是手機短信都依賴于數(shù)據(jù)結(jié)構(gòu)來進行存儲,其中的數(shù)據(jù)以一種特定的形式存儲在數(shù)據(jù)結(jié)構(gòu)中威根,在用戶需要時被拿出來展現(xiàn)凤巨。
python中有四種數(shù)據(jù)結(jié)構(gòu),分別是:列表洛搀、字典敢茁、元組、集合留美。
-
列表
列表有點像C語言里的數(shù)組彰檬,只不過伸刃,它里面可以放所有python類型,不需要都是同一種類型逢倍,這點和數(shù)組不同
在列表中插入元素
刪除列表中的元素
列表元素的替換
列表的索引
-
字典
添加字典元素
刪除字典元素
查找字典元素
-
元組
-
集合
因為集合是無序的捧颅,所以邏輯上當然是不可以索引的。
-
數(shù)據(jù)結(jié)構(gòu)的一些技巧
關于zip函數(shù)
注意:
在python 3.0中zip()是可迭代對象较雕,使用時必須將其包含在一個list中碉哑,方便一次性顯示出所有結(jié)果
list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]
zip()參數(shù)可以接受任何類型的序列,同時也可以有兩個以上的參數(shù);當傳入?yún)?shù)的長度不同時亮蒋,zip能自動以最短序列長度為準進行截取扣典,獲得元組。
推導式
推導式慎玖,其實就是在一定范圍/條件 內(nèi) 按照一定格式來生成新的數(shù)據(jù)結(jié)構(gòu)
**遍歷列表時獲取元素的索引
-
綜合項目
解決問題后的最終版本
類
-
定義一個類
-
類的實例化
-
類屬性的引用
-
實例屬性
-
實例方法
-
初始化方法
-
類的繼承
-
類屬性和實例屬性
-
內(nèi)建類