python入門基礎:數(shù)據(jù)類型+循環(huán)語句+函數(shù)+遞歸

目錄


1.python3數(shù)據(jù)類型介紹

2.python3中數(shù)字

3.python3的字符串

4.python3 的列表

5.python3 的元組

6.python3 的字典

7.python3 的集合

8.while循環(huán)

9.for循環(huán)

10.函數(shù)以及參數(shù)

11.遞歸

12.匿名函數(shù)lambda





1.Python3有六個標準的數(shù)據(jù)類型

Numbers(數(shù)字)

String(字符串)

List(列表)

Tuple(元組)

Dictionary(字典)

set(集合)



2.number 數(shù)字類型:

int(有符號整型)

long(長整型[也可以代表八進制和十六進制])

float(浮點型)

complex(復數(shù))


2.1 數(shù)字類型的數(shù)學函數(shù)


2.2 數(shù)字類型:隨機數(shù)函數(shù)

此表格為random模塊中的函數(shù)

import random

2.3math 計算包

math — 數(shù)學函數(shù) | 《Python 3 標準庫實例教程》 | 高品質的 Python 開發(fā)者社區(qū)


好難?? 暴風哭泣

單獨開一個==



3.string 字符串


字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。

‘’? ?“” 表示

如果你要實現(xiàn)從字符串中獲取一段子字符串的話,可以使用 [頭下標:尾下標] 來截取相應的字符串,其中下標是從 0 開始算起,可以是正數(shù)或負數(shù),下標可以為空表示取到頭或尾。

[頭下標:尾下標] 獲取的子字符串包含頭下標的字符,但不包含尾下標的字符。

不包含第五個字符!!!!!!!!

[1:5] 只要4個


3.1 字符串和運算符


3.2 字符串:轉義字符

\n 換行

我們可以對字符串進行換行,事實上,python還為我們提供了多行換行, 使用'''...'''或者"""..."""都可以進行多行換行,...代表的是提示符

ps:... 是在終端使用

"""這種在jupyter notebook中 就可以實現(xiàn)換行


字符串前加r,使得字符串中的\用作普通字符


3.3 字符串與unicode的區(qū)別

pass?

留個坑


3.4 字符串的更改?

字符串不能更改里面的內容。

只能通過.replace()更改,然后賦值給另一個變量


3.5 創(chuàng)建字符串時,* 可以頂替missing letter


3.6 字符串的strip()用法

Python strip() 方法用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。

str.strip([chars])



4.列表list

List(列表) 是 Python 中使用最頻繁的數(shù)據(jù)類型。

列表可以完成大多數(shù)集合類的數(shù)據(jù)結構實現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 標識,是 python 最通用的復合數(shù)據(jù)類型。

4.1 創(chuàng)建列表

4.1.1 通過變量創(chuàng)建


4.1.2 通過字符串split


4.1.3 通過list()



4.2 給列表中添加元素

append( ) :只能在最后加元素進去,item類型可以是任意的

extend():加多個元素,也是在最后加?只接受列表參數(shù),并把列表中的item分解,然后添加到原有的列表

如果指定在第幾個index加入,用insert()

4.3 刪除列表中的元素

del刪除。它按item的索引值或切片進行刪除

del a_list[0]?? //刪除列表的第一個值

del a_list[:2]?? //刪除列表的前兩個值。(為什么不是前三個呢?因為python的列表切片,包含前一個索引,但不包括后一個索引)


remove方法刪除。它不按item索引,而是按照item的值進行刪除:

a_list.remove('a')? //把a從列表中刪除

pop方法刪除。它按item索引值進行刪除,同時返回被刪除的item值;若不指定索引,默認刪除最后一個item:

a_list.pop(1)? //刪除列表的第二個值,并返回被刪除的值

a_list.pop()?? //刪除列表的最后一個值,并返回被刪除的值


4.5 重新賦值

對指定索引使用assignment符號進行賦值

a_list = ['a','b','c','hello']:

a_list[1] = 'bbb'

4.6 檢索列表的值

四種方式:in、not in、count、index,后兩種方式是列表的方法。

示例列表:a_list = ['a','b','c','hello']:


判斷值是否在列表中,in操作符:

'a' in a_list? //判斷值a是否在列表中,并返回True或False


判斷值是否不在列表,not in操作符:

'a' not in a_list?? //判斷a是否不在列表中,并返回True或False


統(tǒng)計指定值在列表中出現(xiàn)的次數(shù),count方法:

a_list.count('a')? //返回a在列表中的出現(xiàn)的次數(shù)


查看指定值在列表中的位置,index方法:

a_list.index('a')?? //返回a在列表中每一次出現(xiàn)的位置,默認搜索整個列表

a_list.index('a',0,3)? //返回a在指定切片內第一次出現(xiàn)的位置

https://blog.csdn.net/wudiyi815/article/details/7775549

4.7列表的method


4.




5.元組 tuple

元組是另一個數(shù)據(jù)類型,類似于 List(列表)。

元組用 () 標識。內部元素用逗號隔開。但是元組不能二次賦值,相當于只讀列表。

A tuple is a collection which is ordered and unchangeable. In Python tuples are written with round brackets.

jiaocheng


所以 元組的添加是這樣的:

要有逗號


5.1 元組只可以只讀,所以要查詢元組,用for loop語句。


5.2 You can access tuple items by referring to the index number, inside square bracket

也可以用index 查詢元組

5.3 檢查某個字符串或別的在不在元組里,用in

5.3 求元組的長度

len()

5.4 與字符串同樣,元組也是不可變對象 所以不能直接修改他們的值

如果需要修改,直接在同一個元組上更新是不可行的,但是可以通過拷貝現(xiàn)有的元組片段構造一個新的元組的方式解決。

通過分片的方法讓元組拆分成兩部分,然后再使用連接操作符(+)合并成一個新元組,最后將原來的變量名(temp)指向連接好的新元組。



5.5? 兩個元組之間 + 可以組成新的元組

5.6 元組的刪除 用del



6.字典 dictionary

字典(dictionary)是除列表以外python之中最靈活的內置數(shù)據(jù)結構類型。列表是有序的對象集合,字典是無序的對象集合。

兩者之間的區(qū)別在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

字典用"{ }"標識。字典由索引(key)和它對應的值value組成。


6.1 查找字典


()得到key

[ ]得到value? ? ?

.get("key") 也能得到value?


6.2給字典里添加item

直接添加就行了

集合要用add 或者update()

Adding an item to the dictionary is done by using a new index key and assigning a value to it:



6.3 字典 多種刪除方法

pop( )? 括號中寫入指定的key

del() 括號中寫入指定的key?

del 還能直接刪除整個字典

clear() 清除字典中的內容,保留結構

popitem( ) 只刪除最新的那一列字典


6.4 創(chuàng)建字典 dict( )



ps: 為什么用= 比用冒號要好??????


6.5 復制另一個字典

copy( )

dict( )


6.6 字典的method





7.集合 set

A set is a collection which is unordered and unindexed. In Python sets are written with curly brackets.

集合是用{ }表示的

Sets are unordered, so the items will appear in a random order.

7.1 集合是無序的,沒有index

7.2 給集合添加元素 用 add()

7.3給集合添加多個元素,用update()


7.4 集合的刪除 remove() 和 discard()

區(qū)別: 如果刪除一個不在該集合中的元素,remove()會報錯。discard()不會



7.5 pop()

pop()也能刪除,但是只能刪除最后一個元素

但是集合是無序的,你也不知道刪的是哪個


7.6 刪除整個set

clear()只能把集合中清空

del()是全部刪除,直接報錯的那種


7.7 把元組轉成集合

set()

注意是圓括號,不是大括號


7.8 集合中的method


i




8. while循環(huán)

while 語句時還有另外兩個重要的命令 continue,break 來跳過循環(huán),continue 用于跳過該次循環(huán),break 則是用于退出循環(huán),此外"判斷條件"還可以是個常值,表示循環(huán)必定成立


在i=3的時候跳過該次循環(huán)

8.1 while... else

在 python 中,while … else 在循環(huán)條件為 false 時執(zhí)行 else 語句塊:




9.for 循環(huán)語句

9.1 break語句



在for語句同樣,continue 用來跳過該次循環(huán)


9.2 for...? ? else 語句

The?else?keyword in a?for?loop specifies a block of code to be executed when the loop is finished

else后面執(zhí)行當循環(huán)結束之后的語句



10.函數(shù)function

函數(shù)代碼塊以?def?關鍵詞開頭,后接函數(shù)標識符名稱和圓括號()

任何傳入?yún)?shù)和自變量必須放在圓括號中間。圓括號之間可以用于定義參數(shù)。

函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。

函數(shù)內容以冒號起始,并且縮進。

return [表達式]?結束函數(shù),選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。


10.1 Parameters 參數(shù)

Information can be passed to functions as parameter.

Parameters are specified after the function name, inside the parentheses. You can add as many parameters as you want, just separate them with a comma.


10.2?Default Parameter Value 默認參數(shù)

The following example shows how to use a default parameter value.


10.3?Passing a List as a Parameter

You can send any data types of parameter to a function (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function.


10.4 可更改(mutable)與不可更改(immutable)對象

在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

不可變類型:變量賦值?a=5?后再賦值?a=10,這里實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當于新生成了a。

可變類型:變量賦值?la=[1,2,3,4]?后再賦值?la[2]=5?則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函數(shù)的參數(shù)傳遞:

不可變類型:類似 c++ 的值傳遞,如 整數(shù)、字符串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個復制的對象,不會影響 a 本身。

可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改后fun外部的la也會受影響

python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。

Python3 函數(shù) | 菜鳥教程

10.5?不定長參數(shù)


你可能需要一個函數(shù)能處理比當初聲明時更多的參數(shù)。這些參數(shù)叫做不定長參數(shù),和上述 2 種參數(shù)不同,聲明時不會命名。


加了星號?*?的參數(shù)會以元組(tuple)的形式導入,存放所有未命名的變量參數(shù)。


如果在函數(shù)調用時沒有指定參數(shù),它就是一個空元組。我們也可以不向函數(shù)傳遞未命名的變量


加了兩個星號?**?的參數(shù)會以字典的形式導入。

i



11. Recursion 遞歸

Python also accepts function recursion, which means a defined function can call itself.

Recursion is a common mathematical and programming concept. It means that a function calls itself. This has the benefit of meaning that you can loop through data to reach a result.

The developer should be very careful with recursion as it can be quite easy to slip into writing a function which never terminates, or one that uses excess amounts of memory or processor power. However, when written correctly recursion can be a very efficient and mathematically-elegant approach to programming.

In this example,?tri_recursion()?is a function that we have defined to call itself ("recurse"). We use the?k?variable as the data, which decrements (-1) every time we recurse. The recursion ends when the condition is not greater than 0 (i.e. when it is 0).

To a new developer it can take some time to work out how exactly this works, best way to find out is by testing and modifying it.





11.1 應用場景

遞歸算法一般用于解決三類問題:

(1)數(shù)據(jù)的定義是按遞歸定義的。(比如Fibonacci函數(shù))

(2)問題解法按遞歸算法實現(xiàn)。(回溯)

(3)數(shù)據(jù)的結構形式是按遞歸定義的。(比如樹的遍歷,圖的搜索)?


11.2?默認的Python有一個可用的遞歸深度的限制,以避免耗盡計算機中的內存。默認是1000。 


11.3 遞歸的優(yōu)缺點

優(yōu)點:

遞歸使代碼看起來更加整潔、優(yōu)雅

可以用遞歸將復雜任務分解成更簡單的子問題

使用遞歸比使用一些嵌套迭代更容易

缺點:

遞歸的邏輯很難調試、跟進

遞歸算法解題的運行效率較低。在遞歸調用的過程當中系統(tǒng)為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數(shù)過多容易造成棧溢出等。

Python遞歸算法詳解





12.匿名函數(shù) lambda


12.1 lambda表達式

lambda?arguments?:?expression





13.字符編碼

python3中的字符編碼 - 簡書

14.numpy入門

numpy入門到放棄 - 簡書

15.pandas入門

pandas 從入門到放棄 - 簡書

16.利用pandas進行數(shù)據(jù)分析

python 利用pandas進行數(shù)據(jù)分析 - 簡書

17.可視化

python中的可視化 - 簡書

18.python中的io

python中的io - 簡書

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,885評論 6 541
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,312評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,993評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,667評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,410評論 6 411
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,778評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,775評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,955評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,521評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,266評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,468評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,998評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,696評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,095評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,385評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,193評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,431評論 2 378

推薦閱讀更多精彩內容