學習記錄(week1)

學習內容來源于互聯網

Day1

1.理論性內容?

?2.安裝教學

Day 2:基礎語法和number 類型

?一、Python 基礎語法:

1.使用縮進來代替其他語塊聲明,一般建議每個層級用4個空格來縮進

2.聲明單行字串,引用單/雙引號都成,注意對字串中的引號進行逃逸處理(就是在字串中的引號之前加入\)

3.注釋:單行注釋采用 #開頭,多行注釋使用三個單引號(''')或三個雙引號(""")

4.數據類型:python中數有四種類型:整數、長整數、浮點數和復數。

-整數, 如 1

-長整數 是比較大的整數

-浮點數 如 1.23、3E-2

-復數 如 1 + 2j、 1.1 + 2.2j

5.字符串:

python中單引號和雙引號使用完全相同。

使用三引號('''或""")可以指定一個多行字符串。

轉義符 '\'

自然字符串, 通過在字符串前加r或R。 如 r"this is a line with \n" 則\n會顯示,并不是換行。

python允許處理unicode字符串,加前綴u或U, 如 u"this

is an unicode string"。

字符串是不可變的。

按字面意義級聯字符串,如"this " "is "

"string"會被自動轉換為this is string。


二、Python 變量類型 number:

(一)W3C部分學習內容

Python中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創建。

在Python中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內存中對象的類型。

Python 3中有六個標準的數據類型:

Numbers(數字)、String(字符串)、List(列表)、Tuple(元組)、Sets(集合)、Dictionaries(字典)

只看Numbers(數字)

Python 3支持int、float、bool、complex(復數)。

數值類型的賦值和計算都是很直觀的,就像大多數語言一樣。內置的type()函數可以用來查詢變量所指的對象類型。


在Python中,能夠直接處理的數據類型有以下幾種:

整數

Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。

計算機由于使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

浮點數

浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對于很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四舍五入的誤差。

字符串

字符串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。如果'本身也是一個字符,那就可以用""括起來,比如"I'm

OK"包含的字符是I,',m,空格,O,K這6個字符。

如果字符串內部既包含'又包含"怎么辦?可以用轉義字符\來標識。

轉義字符\可以轉義很多字符,比如\n表示換行,\t表示制表符,字符\本身也要轉義,所以\\表示的字符就是\。


布爾值

布爾值和布爾代數的表示完全一致,一個布爾值只有True、False兩種值,要么是True,要么是False,在Python中,可以直接用True、False表示布爾值(請注意大小寫),也可以通過布爾運算計算出來:


布爾值可以用and、or和not運算。

and運算是與運算,只有所有都為True,and運算結果才是True:

or運算是或運算,只要其中有一個為True,or運算結果就是True:

not運算是非運算,它是一個單目運算符,把True變成False,False變成True:

布爾值經常用在條件判斷中,比如:

ifage >=18:

??? print('adult')

else:

??? print('teenager')


空值

空值是Python里一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值。

此外,Python還提供了列表、字典等多種數據類型,還允許創建自定義數據類型,我們后面會繼續講到。


變量

變量的概念基本上和初中代數的方程變量是一致的,只是在計算機程序中,變量不僅可以是數字,還可以是任意數據類型。

變量在程序中就是用一個變量名表示了,變量名必須是大小寫英文、數字和_的組合,且不能用數字開頭,比如:

在Python中,等號=是賦值語句,可以把任意數據類型賦值給變量,同一個變量可以反復賦值,而且可以是不同類型的變量

變量本身類型不固定的語言稱之為動態語言,與之對應的是靜態語言。靜態語言在定義變量時必須指定變量類型,如果賦值的時候類型不匹配,就會報錯。和靜態語言相比,動態語言更靈活,就是這個原因。

請不要把賦值語句的等號等同于數學的等號。比如下面的代碼:

x = 10

x = x + 2

如果從數學上理解x = x + 2那無論如何是不成立的,在程序中,賦值語句先計算右側的表達式x + 2,得到結果12,再賦給變量x。由于x之前的值是10,重新賦值后,x的值變成12。

最后,理解變量在計算機內存中的表示也非常重要。當我們寫:

a = 'ABC'

時,Python解釋器干了兩件事情:

[if !supportLists]1.? [endif]在內存中創建了一個'ABC'的字符串;

[if !supportLists]2.? [endif]在內存中創建了一個名為a的變量,并把它指向'ABC'。

也可以把一個變量a賦值給另一個變量b,這個操作實際上是把變量b指向變量a所指向的數據。


常量

所謂常量就是不能變的變量,比如常用的數學常數π就是一個常量。在Python中,通常用全部大寫的變量名表示常量:

PI = 3.14159265359

但事實上PI仍然是一個變量,Python根本沒有任何機制保證PI不會被改變,所以,用全部大寫的變量名表示常量只是一個習慣上的用法,如果你一定要改變變量PI的值,也沒人能攔住你。

最后解釋一下整數的除法為什么也是精確的。在Python中,有兩種除法,一種除法是/:

>>> 10 / 3

3.3333333333333335

/除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:

>>> 9 / 3

3.0

還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數:

>>> 10// 3

3

你沒有看錯,整數的地板除//永遠是整數,即使除不盡。要做精確的除法,使用/就可以。

因為//除法只取結果的整數部分,所以Python還提供一個余數運算,可以得到兩個整數相除的余數:

>>> 10 % 3

1

無論整數做//除法還是取余數,結果永遠是整數,所以,整數運算結果永遠是精確的。


小結

Python支持多種數據類型,在計算機內部,可以把任何數據都看成一個“對象”,而變量就是在程序中用來指向這些數據對象的,對變量賦值就是把數據和變量給關聯起來。

對變量賦值x = y是把變量x指向真正的對象,該對象是變量y所指向的。隨后對變量y的賦值不影響變量x的指向。

注意:Python的整數沒有大小限制,而某些語言的整數根據其存儲長度是有大小限制的,例如Java對32位整數的范圍限制在-2147483648-2147483647。

Python的浮點數也沒有大小限制,但是超出一定范圍就直接表示為inf(無限大)。


Day3:認識string 類型

Python中的字符串str用單引號(' ')或雙引號(" ")括起來,同時使用反斜杠(\)轉義特殊字符。

如果你不想讓反斜杠發生轉義,可以在字符串前面添加一個r,表示原始字符串

另外,反斜杠可以作為續行符,表示下一行是上一行的延續。還可以使用"""..."""或者'''...'''跨越多行。

字符串可以使用 + 運算符串連接在一起,或者用 * 運算符重復:

Python中的字符串有兩種索引方式,第一種是從左往右,從0開始依次增加;第二種是從右往左,從-1開始依次減少。

注意,沒有單獨的字符類型,一個字符就是長度為1的字符串。

還可以對字符串進行切片,獲取一段子串。用冒號分隔兩個索引,形式為變量[頭下標:尾下標]。

截取的范圍是前閉后開的,并且兩個索引都可以省略:


注:字符串中,最外層的單引號和雙引號里的東西都可以打出來,但是單引號和雙引號本身不會。單引號之內有單個雙引號可以打出來,雙引號之內有單個單引號可以打出來,但是同類型引號就會發生誤解。

如果想在單引號內打單引號,就要用到反斜杠或把外層改成雙引號。

反斜杠會保護其后的單個引號。

如果字符串包含有單引號但不含雙引號,則字符串會用雙引號括起來,否則用單引號括起來。


跨行的字面字符串可用以下幾種方法表示。\n續行符,\n\續行在下一行

1.使用 \n 來添加新行

使用續行符,即在每行最后一個字符后使用反斜線來說明下一行是上一行邏輯上的延續:

2.使用反斜線(\)來續行

其中的換行符仍然要使用 \n 表示——反斜杠后的換行符被丟棄了

3.前方加r

使用"原始"字符串,那么 \n 不會被轉換成換行,行末的的反斜杠、源碼中的換行符,都將作為數據包含在字符串內


切分,有兩種方法

1.從左向右依次是0.1.2.3…

2.從右向左依次是-1.-2.-3….

有一個方法可以讓您記住分切索引的工作方式,想像索引是指向字符之間,第一個字符左邊的數字是 0。接著,有n個字符的字符串最后一個字符的右邊是索引n,例如


純英文的str可以用ASCII編碼為bytes,內容是一樣的,含有中文的str可以用UTF-8編碼為bytes。含有中文的str無法用ASCII編碼,因為中文編碼的范圍超過了ASCII編碼的范圍,Python會報錯。

在bytes中,無法顯示為ASCII字符的字節,用\x##顯示。

反過來,如果我們從網絡或磁盤上讀取了字節流,那么讀到的數據就是bytes。要把bytes變為str,就需要用decode()方法。

?

%運算符就是用來格式化字符串的。在字符串內部,%s表示用字符串替換,%d表示用整數替換,有幾個%?占位符,后面就跟幾個變量或者值,順序要對應好。如果只有一個%?,括號可以省略。

常見的占位符有:

占位符替換內容

%d整數

%f浮點數

%s字符串

%x十六進制整數


Day 4 認識判斷和循環語句

一、條件語句

Python程序語言指定任何非0和非空(null)值為true,0 或者 null為false。

Python 編程中 if 語句用于控制程序的執行。

其中"判斷條件"成立時(非零),則執行后面的語句,而執行內容可以多行,以縮進來區分表示同一范圍。

else 為可選語句,當需要在條件不成立時執行內容則可以執行相關語句。

當if有多個條件時可使用括號來區分判斷的先后順序,括號中的判斷優先執行,此外 and 和 or 的優先級低于>(大于)、<(小于)等判斷符號,即大于和小于在沒有括號的情況下會比與或要優先判斷。

Python中用elif代替了else if,所以if語句的關鍵字為:if– elif – else

注意:

1、每個條件后面要使用冒號(:),表示接下來是滿足條件后要執行的語句塊。

2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。

3、在Python中沒有switch – case語句。

4.判斷時要用雙等號


以下為if中常用的操作運算符:

操作符描述

<小于

<=小于或等于

>大于

>=大于或等于

==等于,比較對象是否相等

!=不等于

輸入1982,結果報錯:

Traceback(most recent call last):

? File "", line 1,in

TypeError: unorderable types: str() > int()

這是因為input()返回的數據類型是str,str不能直接和整數比較,必須先把str轉換成整數。Python提供了int()函數來完成這件事情。

循環

Python提供了for循環和while循環(在Python中沒有do..while循環):

循環類型描述

while 循環在給定的判斷條件為? true 時執行循環體,否則退出循環體。

for 循環重復執行語句

嵌套循環你可以在while循環體中嵌套for循環。


Python中的循環語句有 for 和 while。

Python循環語句的控制結構。

同樣需要注意冒號和縮進。另外,在Python中沒有do..while循環。


for

x in ...循環就是把每個元素代入變量x,然后執行縮進塊的語句。



Day5 作業&答疑?

1.int()和print(),均是函數。函數可以理解為一個“黑盒”,將一個東西放進去,發生一些“魔法”,然后給出一個結果。括號是放需要放進去的東西,print()的魔法是在控制端把結果輸出,int()的魔法是把一個東西轉化成一個“整型”(“整型”是一個數據類型,Python是一個不那么嚴格的編程語言,其他的如Java,C等對number的要求比較嚴格,會有int整型、double-C語言中的、float浮點即小數,例如在Python中給一個1234的字符串,可以用int變成整型,輸入小數文字什么的不可以轉換,會報錯。函數只能盡力將可轉換的轉換為整數)

所以對“int()是限制只能輸入整數的意思嗎”回答為“不是!它是一個函數,作用是將可轉換為整數的東西轉換為整數,輸入的小數、文字不能轉換成整數所以會報錯”。


PS.補充回顧Python中的數據類型

Python有五個標準的數據類型:Numbers(數字)String(字符串)List(列表)Tuple(元組)Dictionary(字典),其中屬于集合類型的數據類型有列表、元組及字典。

數字(Numbers)

數字數據類型用于存儲數值。四種不同的數字類型:int(有符號整型)、long(長整型[也可以代表八進制和十六進制])、float(浮點型)、complex(復數)。

float(浮點型)

浮點數用來處理實數,即帶有小數的數字。類似于C語言中的double類型,占8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。


2.關于兩次判斷:不能省略或者合并,因為根據輾轉相除法的公理,需要a>b(輾轉相除的公理:兩個正整數a和b(a>b),它們的最大公約數等于a除以b的余數c和b之間的最大公約數。),所以需要先進行判斷這樣才能滿足公理。

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

推薦閱讀更多精彩內容

  • 基于《Python語言程序設計基礎(第2版)》 第一部分 初識Python語言 第1章 程序設計基本方法 1.1 ...
    柄志閱讀 27,463評論 4 44
  • 1/75 1認識Python語言 2/75 序言 培訓最終的目標是什么? 衡量一個合格的軟件工程師的標準是什么? ...
    清清子衿木子水心閱讀 4,050評論 0 1
  • 發現春意漾出來
    女王英倫FAN閱讀 252評論 0 1
  • 常聽人說,被貼單子了,那你運氣不好,我在那邊停了很多次都沒被貼! 而后說了這句話沒幾天就被貼了,哈哈這次輪到你點背...
    CURTAI_d2a5閱讀 138評論 0 1
  • 《 學習之道 》第三章里說道:在緊湊的專注模式后,利用發散模式的方式獎勵自己。但是如何用好發散模式也是有學問的。...
    super鵝閱讀 758評論 0 1