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