第一章
八大要素
要素#1 資料型別
int 表示整數
str 表示字元
要素#2 物件引用
>>> x = "blue"
>>> print(x)
blue
>>> y = x
>>> print(y)
blue
>>> x,y,z
('green', 'green', 'green')
要素#3 組合資料型別
>>> x = ["a", "b", 3]
>>> x
['a', 'b', 3]
>>> x
['a', 'b', 3, 4]
>>> x.insert(2, "c")
>>> x
['a', 'b', 'c', 3, 4]
>>> x.remove("b")
>>> x
['a', 'c', 3, 4]
>>> x
['a', 'c', 3, 4, 'b']
要素#3 邏輯操作符
1身份操作符
所有的python變數實際上都是物件的引用
is操作符只需要對物件所在的記憶體位址進行比較,
is not 是對身份測試的反向測試
>>> a = ["abc",3,none]
>>> b = ["abc",3,none]
>>> a is b
false
>>> b = a
>>> a is b
true
>>> a = "something"
>>> b = none
>>> a is not none, b is none
(true, true)
2 比較操作符
< <= == != >= > 這些操作符對物件值進行比較
>>> a = "many paths"
>>> b = "many paths"
>>> a is b
false
>>> a == b
true
>>> a = 9
>>> 0 <= a <= 10
true
如果兩個資料型別無法確定,python動態型別機制將會輸出
異常錯誤訊息的回溯與追蹤資訊
3 成員操作符
對序列或集合這一類資料型別,比如字串,列表或元組我們
可以使用操作符in來測試成員關係,
用not in 來測試非成員關係
>>> p = (4, "frog", 9, -33, 9, 2)
>>> 2 in p
true
>>> "dog"not in p
true
>>> phrase = "wild swans by jung chang"
>>> "j" in phrase
true
>>> "han" in phrase
true
對列表與元組, in操作符使用線性搜尋,
對字串資料型別, 使用成員運算子可以很方便
地測試任意長度的子字串
4 邏輯運算子
and or not, and與or都使用short-circuit邏輯,
並返回決定結果的運算元,而不是返回布林值.
>>> true and false
false
>>> five and zero
0>>> nought = 0
>>> zero or five
5>>> zero or nought
0要素#5 控制流語句
在python中一塊**,也就是說一條或多條語句組成的序列,稱為suite
pass 實際上是一條空語句
1> if語句 (冒號與else elif一起使用)
if boolean_expression1:
suite1
elif boolean_expression2:
suite2
...else:
else_suite
python使用縮進來標識其塊結構.
2> while 語句
while boolean_expression:
suite
break將控制流導向到break所在的最內層迴圈.
其用continue將控制流導向到迴圈起始處.
3> for...in 語句
for variable in iterable:
suite
for 迴圈也支援break和continue
for country in ["denmark", "finland"]
print(country)
4> 基本的異常處理
python的很多函式與方法都會產生異常,並將其作為
發生錯誤或重要事件的標誌.
異常也是物件.列印時會產生一條訊息文字
try:
try_suite
except exception1 as variable:
exception_suite1
...except exceptionn as variablen:
exception_suiten
每個except分支都可以處理多個異常
s = input("enter an integer:")
try:
i = int(s)
print("vaild integer entered:", i)
except valueerror as err:
print(err)
要素#6 算術操作符
+ - * / += *=
>>> seeds = ["sesame", "sunflower"]
>>> seeds += ["pumpkin"]
>>> seeds
['sesame', 'sunflower', 'pumpkin']
>>> seeds += "dur"
>>> seeds
['sesame', 'sunflower', 'pumpkin', 'd', 'u', 'r']
由於列表是可變的,使用+=後原始的列表物件會被修改,
因此沒有對seeds進行重新繫結.
固定資料型別具有比可變資料型別更加高效的潛力.
因為這些固定的資料型別從不改變.
要素#7 輸入輸出
python程式塊是嚴格按照縮排表示模組關係的.如果沒有對齊就會報錯
===begin sum2.py===
print("type integers, each followed by enter, or ^d or ^z to finish")
total = 0
count = 0
while true:
try:
line = input()
if line:
number = int(line)
total += number
count += 1
except valueerror as err:
print(err)
continue
except eoferror:
break
if count:
print("count = ", count, "total = ", total, "mean = ", total/count)
===end sum2.py===
要素#8 函式的建立與呼叫
def functionname(argument):
suite
引數是可選的,
執行def時,會建立乙個函式物件,同時建立乙個帶有指定名的物件引用.
由於函式也是物件,因此可以儲存在組合資料型別中,
並作為引數傳遞給其他函式.
===begin def.py===
def get_int(msg):
while true:
try:
i=int(input(msg))
return i
except valueerror as err:
print(err)
age = get_int("enter your age:")
print("your age is: ", age)
===end def.py===
python有大量的內建函式,其標準庫的大量模組中包含更多的函式.
python模組實際上就是包含python**的.py檔案,
有時候還包括變數等.
要使用某個模組內的函式功能,必須先導入該模組,例如: import sys
要匯入乙個模組必須使用import語句,其後跟隨.py檔名,
不用寫副檔名,訪問其內部包含的任意函式,類以及變數,
例如:print(sys.argv) #用些建sys.argv.py程式.
sys模組提供了argv變數--該變數實際上是乙個列表,
其首項為該程式的名稱,
第二個引數及後續的引數為該程式的命令列引數.
$ python3 sys.argv.py kangqiao
['sys.argv.py', 'kangqiao']
標準模組名都是小寫字母,因此一般來說我們用大寫字母表示我們的模組
===begin rand2.py===***注意檔名不要合系統模組名一樣,這樣會導致未知錯誤***
import random
x=random.randint(1,6)
print("random x = ", x, "y = ", y)
===end rand2.py===
python常規的做法是將所有的import語句放在.py檔案的起始處,
建議首先匯入標準庫模組,之後匯入第三方庫模組,最後匯入自己的.
python教學筆記 python學習筆記(一)
1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...
python學習筆記
coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...
Python 學習筆記
python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...