接觸Python有一小段時間了厅篓,所以第一章的內(nèi)容就快速瀏覽了一下秀存。以下的筆記從第二章開始記錄。
注:所有代碼均用PyCharm 2017.1.5書寫羽氮。
第二章
1或链、輸出“Hello Python world!”
在Python中單引號和雙引號均可使用。若要輸出單引號档押,可以用雙引號將其括起來澳盐;若要輸出雙引號,則用單引號將其括起來即可令宿。另外叼耙,在Python中,語句的末尾不需要分號掀淘。
在編輯框輸入以下代碼:
print('Hello Python world!')
輸出結果為:Hello Python world!
2旬蟋、變量
用一個變量接收需要輸出的內(nèi)容,再將該變量通過print輸出革娄。在程序中可隨時修改變量的值倾贰,即對變量重新賦值,Python將始終記錄變量的最新值拦惋。
message = "Hello Python world!"
print(message)
3匆浙、變量的命名規(guī)則及使用
(1)只能包含數(shù)字、字母和下劃線厕妖;
(2)不能以數(shù)字開頭首尼,不能有空格出現(xiàn);
(3)區(qū)分大小寫言秸;
(4)具有一定的意義和描述性软能;
(5)Python3也支持漢字,但不建議使用举畸;
(6)慎用小寫字母l和大寫字母O查排,容易被看錯成數(shù)字1和0;
(6)不能是關鍵字抄沮。
在編輯框輸入以下代碼可以獲取Python中的所有關鍵字跋核。
import keyword
print(keyword.kwlist)
# 輸出的關鍵字如下(共33個):
['False', 'None', 'True', 'and', 'as', 'assert', 'break',
'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield']
4、使用變量時避免命名錯誤
在你聲明了一個變量后叛买,若在使用該變量的過程中拼錯了字母砂代,則程序報錯。這種錯誤叫作名稱錯誤NameError率挣,產(chǎn)生這種錯誤有兩種情況:一是使用變量前忘記聲明了刻伊,二是使用變量時的拼寫與聲明時的拼寫不一致。只要前后的拼寫一致就不會報錯椒功。
5娃圆、字符串的方法
之前輸出的“Hello Python world!”就是一個字符串。用引號括起來的都是字符串蛾茉。
方法是Python可對數(shù)據(jù)執(zhí)行的操作讼呢,也稱為函數(shù)。每個方法后面都跟著一對括號谦炬,這是因為方法通常需要額外的信息來完成其工作悦屏。這種信息是在括號里提供的,有一些方法后面的括號是空的键思,表示它不需要額外的信息便可以完成其工作础爬。
(1)修改字符串的大小寫
str = "you are welcome"
print(str.title())
# 輸出:
You Are Welcome
從結果可以看出,title()的作用是以首字母大寫的方式顯示每個單詞吼鳞,也就是將字符串標題化看蚜。
str = "You Are Welcome"
print(str.upper())
print(str.lower())
# 輸出:
YOU ARE WELCOME
you are welcome
從上述結果可以知道,upper()的作用是將全部的字母改為大寫赔桌,而lower()的作用正好相反供炎。
(2)合并/拼接字符串
str1 = "I"
str2 = "like"
str3 = "Python"
s1 = "I" + " " + "like" + " " + "Python"
s2 = str1 + " " + str2 + " " + str3
print(s1)
print(s2)
# 輸出:
I like Python
I like Python
在Python中使用(+)來合并字符串渴逻,這種合并字符串的方法稱為拼接。在上面的例子中可以知道無論是通過變量拼接還是直接字符串拼接音诫,都是可以成功執(zhí)行的惨奕。
(3)使用制表符或換行符來添加空白
在編程中,空白泛指任何非打印字符竭钝,如空格梨撞、制表符和換行符∠愎蓿可以通過添加空白增加輸出內(nèi)容的可讀性卧波。
制表符: \t
print("Python")
print("\tPython")
# 輸出:
Python
Python
換行符:\n
print("Languages:\nPython\nC\nJava")
# 輸出:
Languages:
Python
C
Java
可以同時使用制表符和換行符:
print("Languages:\n\tPython\n\tC\n\tJava")
# 輸出
Languages:
Python
C
Java
(4)刪除空白
字符串開頭或者末尾多余的空白會令人迷惑,所以為了減少一些額外的麻煩庇茫,有必要刪除多余的空白港粱,增強可讀性。
str = " Python "
print(str.rstrip())
print(str.lstrip())
print(str.strip())
# 輸出
Python
Python
Python
rstrip()刪除字符串末尾的空格港令;lstrip()刪除字符串開頭的空格啥容;strip()同時刪除字符串兩端的空格。然而顷霹,這樣的刪除只是暫時的咪惠,當你再次訪問str時,它的前后依然會有空格淋淀。若要永久刪除空格遥昧,就必須將刪除操作后的結果重新保存到原來的變量中,下次訪問時就不會再有空格了朵纷。
(5)使用字符串時避免語法錯誤
合理有效地利用單雙引號炭臭,可以很好的避免語法錯誤。
(6)Python 2中的print語句
print "Hello Python 2.7 world"
# 輸出:
Hello Python 2.7 world
在Python 2中袍辞,print輸出語句無需將要打印的內(nèi)容放在括號內(nèi)鞋仍。Python 3中的print是一個函數(shù),所以括號必不可少搅吁。而在Python 2代碼中威创,有些print語句包括括號,有些不包括谎懦。
6肚豺、數(shù)字
(1)整數(shù)
對整數(shù)進行加(+)減(-)乘(*)除(/)運算。使用兩個乘號表示的是乘方運算界拦。同時吸申,Python還支持運算次序,不過最好加上小括號以方便日后的閱讀。
print(5 + 2)
print(5 - 2)
print(5 * 2)
print(5 / 2)
print(5 ** 2)
print(5 + 2*3)
# 輸出:
7
3
10
2.5
25
11
(2)浮點數(shù)
帶有小數(shù)點的數(shù)字都稱為浮點數(shù)截碴。
(3)使用函數(shù)str()避免類型錯誤
當你需要將一個數(shù)字與一個字符串一起輸出時梳侨,直接用加號(+)進行連接,程序會返回一個類型錯誤隐岛。因為加號只能拼接字符串猫妙,所以只有將數(shù)字轉(zhuǎn)化成字符串類型才可以正常輸出瓷翻。此時聚凹,需要用到一個函數(shù)str(),它可以將非字符串的值轉(zhuǎn)化為字符串來表示齐帚。如:
print("Happy " + str(18) + "th Birthday!")
# 輸出:
Happy 18th Birthday!
(4)Python 2中的整數(shù)
在Python 2中妒牙,整數(shù)除法的結果值包含整數(shù)部分,小數(shù)部分被刪除对妄,但這種刪除不是四舍五入湘今,而是小數(shù)部分直接刪除。若要避免這種情況剪菱,就必須確保至少有一個操作數(shù)是浮點數(shù)摩瞎,這時結果才為浮點數(shù)。
print 5 / 2
print 5 / 2.0
# 輸出:
2
2.5
7孝常、注釋
在Python中旗们,注釋用井號(#)來標識。井號后面的內(nèi)容都會被Python解釋器忽略构灸。
在編寫程序代碼的過程中上渴,最好在程序中添加描述性的注釋。清晰喜颁、簡潔的注釋可以提高程序的可讀性稠氮。
8、Python之禪
import this
# 輸出:
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
# 中文翻譯:
Python之禪 by Tim Peters
優(yōu)美勝于丑陋(Python 以編寫優(yōu)美的代碼為目標)
明了勝于晦澀(優(yōu)美的代碼應當是明了的半开,命名規(guī)范隔披,風格相似)
簡潔勝于復雜(優(yōu)美的代碼應當是簡潔的,不要有復雜的內(nèi)部實現(xiàn))
復雜勝于凌亂(如果復雜不可避免寂拆,那代碼間也不能有難懂的關系奢米,要保持接口簡潔)
扁平勝于嵌套(優(yōu)美的代碼應當是扁平的,不能有太多的嵌套)
間隔勝于緊湊(優(yōu)美的代碼有適當?shù)拈g隔漓库,不要奢望一行代碼解決問題)
可讀性很重要(優(yōu)美的代碼是可讀的)
即便假借特例的實用性之名恃慧,也不可違背這些規(guī)則(這些規(guī)則至高無上)
不要包容所有錯誤,除非你確定需要這樣做(精準地捕獲異常渺蒿,不寫 except:pass 風格的代碼)
當存在多種可能痢士,不要嘗試去猜測
而是盡量找一種,最好是唯一一種明顯的解決方案(如果不確定,就用窮舉法)
雖然這并不容易怠蹂,因為你不是 Python 之父(這里的 Dutch 是指 Guido )
做也許好過不做善延,但不假思索就動手還不如不做(動手之前要細思量)
如果你無法向人描述你的方案,那肯定不是一個好方案城侧;反之亦然(方案測評標準)
命名空間是一種絕妙的理念易遣,我們應當多加利用(倡導與號召)