安裝Python
安裝文本編輯器
編寫程序前應(yīng)該知道
- 輸出
print() - 輸入
input() - 變量
簡(jiǎn)單理解為一個(gè)存放東西的箱子 - 注釋 用
#來寫注釋,#所在行計(jì)算機(jī)直接忽視. 注釋是給人看的,而不是給機(jī)器看的. - 代碼塊 編輯器中的每一行都是一個(gè)語句,當(dāng)語句以冒號(hào)
:結(jié)尾時(shí),縮進(jìn)的語句視為代碼塊。 - 縮進(jìn) 堅(jiān)持使用4個(gè)空格的縮進(jìn), 便于閱讀和理解.sublimes編輯器已經(jīng)默認(rèn)設(shè)置一個(gè)tab等于4個(gè)空格.
數(shù)據(jù)類型
- 整數(shù)
- 浮點(diǎn)數(shù)
- 字符串
字符串是以單引號(hào)'或雙引號(hào)"括起來的任意文本
轉(zhuǎn)義字符\可以轉(zhuǎn)義很多字符,比如\n表示換行,\t表示制表符,字符\本身也要轉(zhuǎn)義,所以\\\表示的字符就是\
為了簡(jiǎn)化,Python還允許用r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義 - 布爾值
Ture跟False(大小寫需要完全一樣)
可以用and,or,not來運(yùn)算布爾值(與或非)
and與運(yùn)算, 只有全都Ture才輸出Ture
or或運(yùn)算,只有有Ture就輸出Ture
not非運(yùn)算, 把True變成False,False變成True - 空值 用
None表示。None不能理解為0,因?yàn)?code>0是有意義的,而None是一個(gè)特殊的空值。 - 變量
簡(jiǎn)單理解為一個(gè)存放東西的箱子.
變量在程序中就是用一個(gè)變量名表示.
變量名必須是大小寫英文、數(shù)字和_的組合,且不能用數(shù)字開頭. -
=賦值語句 把=右邊的值賦給左邊. - 常量 就是不變的變量. 在Python中, 通常用全部大寫的變量名表示常量, 如PI.
- 三種除法
/無論怎么除都是浮點(diǎn)數(shù)
//結(jié)果取整
%結(jié)果取余
字符編碼
- 請(qǐng)讀者自己搞清楚ASCII、 Unicode和UTF-8的關(guān)系
- 簡(jiǎn)單說就是從最簡(jiǎn)單的ASCII開始發(fā)展, 各國(guó)為自身需要制定自己語言的編碼. 導(dǎo)致在多語言混合的文本里, 會(huì)出現(xiàn)亂碼.
- 為解決亂碼問題, 于是制定了Unicode.
Unicode是所有語言都統(tǒng)一到一套編碼里.
ASCII編碼是1個(gè)字節(jié), 而Unicode編碼通常是2個(gè)字節(jié).
但如果你寫的文本基本上全部是英文的話,用Unicode編碼比ASCII編碼需要多一倍的存儲(chǔ)空間, 這在存儲(chǔ)和傳輸上就十分不劃算. - 為了解決浪費(fèi)的問題, 于是制定了UTF-8編碼.
UTF-8編碼簡(jiǎn)單理解就是Unicode的精簡(jiǎn), 只保留最常用的字符.
Python的字符串
- Python3中, 字符是以Unicode編碼的,這意味著它支持多語言.
- 可以利用
ord()函數(shù) 跟chr()函數(shù) 進(jìn)行字符和編碼的轉(zhuǎn)換.
在編寫程序時(shí), 最開頭加上
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注釋是為了告訴Linux/OS X系統(tǒng),這是一個(gè)Python可執(zhí)行程序,Windows系統(tǒng)會(huì)忽略這個(gè)注釋;
第二行注釋是為了告訴Python解釋器,按照UTF-8編碼讀取源代碼,否則,你在源代碼中寫的中文輸出可能會(huì)有亂碼。 - 格式化
%
這里的格式化不是指硬盤的格式化, 而是可以理解為模版.
例如 我們經(jīng)常會(huì)輸出類似親愛的xxx你好!你xx月的話費(fèi)是xx,余額是xx之類的字符串,而xxx的內(nèi)容都是根據(jù)變量變化的,所以,需要一種能夠簡(jiǎn)便地表達(dá)格式化字符串的方式。
有%d 整數(shù),%f 浮點(diǎn)數(shù),%s 字符串,%x 十六進(jìn)制整數(shù)這四種常見的占位符.
使用范例:'Hi, %s, you have $%d.' % ('Michael', 1000000)
輸出為'Hi, Michael, you have $1000000.'
%.2f表示保留小數(shù)點(diǎn)2位顯示.
當(dāng)字符串里%是表達(dá)一個(gè)普通字符時(shí), 需要編寫為%%.
list和tuple
- list
- list是一種有序的集合. 比如,列出班里所有同學(xué)的名字,就可以用一個(gè)list表示:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates ['Michael', 'Bob', 'Tracy']
這個(gè)變量classmates就是一個(gè)list。 - 用
len()函數(shù)可以獲得list元素的個(gè)數(shù).如輸入len(classmates),得到3. - 輸入
classmates[0],classmates[1],classmates[2]可分別獲得Michael,Bob,Tracy.值得留意的是, 里邊的元素是從0開始數(shù)的. - 輸入
classmates[-1],classmates[-2],classmates[-3], 則分別獲得Tracy,Bob,Michael,值得注意的是里邊的數(shù)字.表示從最后一個(gè)元素?cái)?shù)起. - 使用
classmates.append('Adam')往listclassmates的最后添加一個(gè)元素Adam - 使用
classmates.insert(2, 'Jack')把Jack這個(gè)元素插到classmates這個(gè)list的第三個(gè)位置.其它元素往后退一位. - 使用
classmates.pop()刪除list的最后一個(gè)元素.輸入classmates.pop()后,list的最后一個(gè)位置的元素被刪除. - 使用
classmates.pop(i)來刪除list的特定位置元素. 輸入classmates.pop(2), 則list的第三個(gè)位置的元素被刪除 - 使用直接賦值可以直接替換list里的某個(gè)元素.如
classmates[2] = 'Adam', 則這個(gè)list里的第三個(gè)元素被替換為'Adam'. - list里元素的類型可以是不同的, 比如
L = ['apple', 13213, bb]表明字符串, 數(shù)字, 變量 都可以是list的元素. - 一個(gè)list可以是另一個(gè)list的元素,如
A = ['apple', 'banana', ['mouse', 'keyboard'], 'orange'], 值得留意的是如果輸入len(A)的話, 得到的結(jié)果是4, 因?yàn)榇藭r(shí)子list是被當(dāng)作一個(gè)元素處理. - 把list拆開寫比較好理解.
A = ['apple', 'banana']
B = ['mouse', 'keyboard', A]
如果想要取得banana這個(gè)元素, 可以寫A[1]或者B[2][1]. 你可以把B這個(gè)list當(dāng)成二維數(shù)組,以此類推有三維, 四維....
- list是一種有序的集合. 比如,列出班里所有同學(xué)的名字,就可以用一個(gè)list表示:
- tuple
- tuple稱為
元組, 跟list非常類似, 區(qū)別在于tuple后使用()來囊括元素, 而list是使用[]; 其次在于list的元素可重新賦值, tuple的元素不可變換. - tuple一旦初始化就不能修改.
- tuple因?yàn)椴豢勺? 所以代碼更加穩(wěn)定, 可控, 安全.
- 只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號(hào)
,,來消除歧義.
例:t = (1,)
- tuple稱為
if, elif, else條件判斷
- 經(jīng)典情景
age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid')
千萬不要忘記條件后的冒號(hào):,else后原本也有條件, 只是省略了, 但該有的冒號(hào):還得加上.
再談input()
- 在做條件判斷時(shí)需要注意, input()返回的數(shù)據(jù)類型是str,str不能直接和整數(shù)比較,必須先把str轉(zhuǎn)換成整數(shù)。
Python提供了int()函數(shù)來完成這件事情:
s = input('birth: ') birth = int(s) if birth < 2000: print('00前') else: print('00后')
循環(huán)
- Python提供兩種循環(huán)
for x in...:while ...:
留意條件的冒號(hào)
-
for x in ...:循環(huán)就是把每個(gè)元素代入變量x,然后執(zhí)行縮進(jìn)塊的語句。 -
range()函數(shù)可以生成一個(gè)整數(shù)序列, 如range(5)是生成0, 1, 2, 3, 4這樣的整數(shù)序列. 再通過list()函數(shù)可以轉(zhuǎn)換為list. -
while循環(huán),只要條件滿足,就不斷循環(huán),條件不滿足時(shí)退出循環(huán)。 - 利用
break和continue跳出循環(huán)-
break的作用是提前結(jié)束循環(huán). -
continue的作用是提前結(jié)束本輪循環(huán),并直接開始下一輪循環(huán)。
-
n = 0 while n < 10: n = n + 1 print(n)
n = 0 while n < 10: n = n + 1 if n % 2 == 0: # 如果n是偶數(shù),執(zhí)行continue語句 continue # continue語句會(huì)直接繼續(xù)下一輪循環(huán),后續(xù)的print()語句不會(huì)執(zhí)行 print(n)