文章目錄
學習python中的小記錄…和YH約定的兩週學習計劃
工具:idle
1.字符串
字符串 字符串 就是一系列字符。在Python中,用引號括起的都是字符串,其中的引號可以是單引號,也可以是雙引號,如下所示:
"This is a string."
'This is also a string.'
1.1 修改字符串的大小寫
name = "ada lovelace"
print(name.title())
輸出爲
Ada Lovelace
示例中,小寫的字符串"ada lovelace" 存儲到了變量name 中。在print() 語句中,方法title() 出現在這個變量的後面。
方法
方法 是Python可對數據執行的操作。
在name.title() 中,name 後面的句點(. )讓Python對變量name 執行方法title() 指定的操作。每個方法後面都跟着一對括號,這是因爲方法通常需要額外的信息來完成
其工作。這種信息是在括號內提供的。函數title() 不需要額外的信息,因此它後面的括號是空的。
title() 以首字母大寫的方式顯示每個單詞,即將每個單詞的首字母都改爲大寫。
要將字符串改爲全部大寫或全部小寫
name = "Ada Lovelace"
print(name.upper())
print(name.lower())
輸出爲
ADA LOVELACE
ada lovelace
存儲數據時,方法lower() 很有用。很多時候,你無法依靠用戶來提供正確的大小寫,因此需要將字符串先轉換爲小寫,再存儲它們。以後需要顯示這些信息時,再將其轉換爲最合適的大小寫方式。
1.2 合併(拼接)字符串
示例
first_name = "ada"
last_name = "lovelace"
❶ full_name = first_name + " " + last_name
print(full_name)
Python使用加號(+ )來合併字符串。
本例輸出爲
ada lovelace
這種合併字符串的方法稱爲拼接。通過拼接,可使用存儲在變量中的信息來創建完整的消息.
示例2
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print("Hello, " + full_name.title() + "!")
本例使用了方法title() 來將姓名設置爲合適的格式。輸出爲
Hello, Ada Lovelace!
1.3 使用製表符或換行符來添加空白
要在字符串中添加製表符,可使用字符組合\t,要在字符串中添加換行符,可使用字符組合\n。
代碼示例(輸出看看效果):
print("Languages:\n\tPython\n\tC\n\tJavaScript")
1.4 刪除空白
在程序中,額外的空白可能令人迷惑。對程序員來說,‘python’ 和’python ’ 看起來幾乎沒什麼兩樣,但對程序來說,它們卻是兩個不同的字符串。
刪除用戶輸入的數據中的多餘的空白,可使用方法rstrip()。
❶ >>> favorite_language = 'python '
❷ >>> favorite_language
'python '
❸ >>> favorite_language.rstrip()
'python'
❹ >>> favorite_language
'python '
存儲在變量favorite_language 中的字符串末尾包含多餘的空白(見❶)。你在終端會話中向Python詢問這個變量的值時,可看到末尾的空格(見❷)。對變量favorite_language 調用方法rstrip() 後(見❸),這個多餘的空格被刪除了。然而,這種刪除只是暫時的,接下來再次詢問favorite_language 的值時,你會發現這個字符串與輸入時一樣,依然包含多餘的空白(見❹)。
要永久刪除這個字符串中的空白,必須將刪除操作的結果存回到變量中:
>>> favorite_language = 'python '
❶ >>> favorite_language = favorite_language.rstrip()
>>> favorite_language
'python'
剔除字符串開頭的空白,或同時剔除字符串兩端的空白。爲此,可分別使用方法lstrip() 和strip() :
>>> favorite_language = ' python '
>>> favorite_language.rstrip()
' python'
>>> favorite_language.lstrip()
'python '
>>> favorite_language.strip()
'python'
在這個示例中,首先創建了一個開頭和末尾都有空白的字符串,然後分別刪除末尾、開頭和兩端的空格。
1.5 使用函數str() 避免類型錯誤
有時需要在消息中使用變量的值。例如,假設你要祝人生日快樂,可能會編寫類似於下面的代碼:
birthday.py
age = 23
message = "Happy " + age + "rd Birthday!"
print(message)
你可能認爲,上述代碼會打印一條簡單的生日祝福語:Happy 23rd bi rthday!。但如果你運行這些代碼,將發現它們會引發錯誤:
Traceback (most recent call last):
File “birthday.py”, line 2, in
message = "Happy " + age + “rd Birthday!”
❶ TypeError: Can’t convert ‘int’ object to str implicitly
Python發現你使用了一個值爲整數(int )的變量,但它不知道該如何解讀這個值。調用函數str() ,它讓Python將非字符串值表示爲字符串:
age = 23
message = "Happy " + str(age) + "rd Birthday!"
print(message)
此時輸出爲
Happy 23rd Birthday!
2. 列表
2.1 列表簡介
列表中可以存儲各種元素,他們之間可以是不同的類別。在Python中,用方括號([] )來表示列表,並用逗號來分隔其中的元素。
列表的索引從0開始
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles[1])
print(bicycles[3])
輸出爲
cannondale(第二個元素)
specialized(第四個元素)
訪問最後一個列表元素可以將索引指定爲-1.
列表中的元素可以像變量那樣被使用
>>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>> message = "My first bicycle was a " + bicycles[0].title() + "."
>>> print(message)
My first bicycle was a Trek.
這裏使用bicycles[0] 的值生成了一個句子,並將其存儲在變量message 中。
2.2 修改列表元素
修改列表中的某一個元素:
bicycles[0] = 'demo1'
print (bicycles)
在列表末尾添加元素
bicycless.append('ducati')
print(motorcycles)
用方法append() 讓動態地創建列表,可以先創建一個空列表,再使用一系列的append() 語句添加元素
motorcycles = []
motorcycles.append('honda')
motorcycles.append('yamaha')
motorcycles.append('suzuki')
print(motorcycles)
在列表中插入元素,使用方法insert()
motorcycles = ['honda', 'yamaha', 'suzuki']
motorcycles.insert(0, 'ducati')
print(motorcycles)
輸出
[‘ducati’, ‘honda’, ‘yamaha’, ‘suzuki’]
2.3 花樣刪除列表中的元素
1.利用索引從列表中刪除元素
del motorcycles[1]
print(motorcycles)
2.方法pop() 可刪除列表末尾的元素,並讓你能夠接着使用它。
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles)
popped_motorcycle = motorcycles.pop()
print(motorcycles)
print(popped_motorcycle)
列表末尾的值’suzuki’ 已刪除,它現在存儲在變量popped_motorcycle 中:
[‘honda’, ‘yamaha’, ‘suzuki’]
[‘honda’, ‘yamaha’]
suzuki
也可以使用pop() 來刪除列表中任何位置的元素,只需在括號中指定要刪除的元素的索引即可。每當你使用pop() 時,被彈出的元素就不再在列表中了。
如果你不確定該使用del 語句還是pop() 方法,下面是一個簡單的判斷標準:如果你要從列表中刪除一個元素,且不再以任何方式使用它,就使用del 語句;如果你要在刪除元素後還能繼續使用它,就使用方法pop() 。
3.根據值刪除元素
有時候,你不知道要從列表中刪除的值所處的位置。如果你只知道要刪除的元素的值,可使用方法remove().
假設我們要從列表motorcycles 中刪除值’ducati’ 。
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
motorcycles.remove('ducati')
print(motorcycles)
輸出結果
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]
4.使用remove() 從列表中刪除元素時,也可接着使用它的值:
motorcycles = ['honda', 'yamaha', 'suzuki', 'ducati']
print(motorcycles)
too_expensive = 'ducati'
motorcycles.remove(too_expensive)
print(motorcycles)
輸出結果
[‘honda’, ‘yamaha’, ‘suzuki’, ‘ducati’]
[‘honda’, ‘yamaha’, ‘suzuki’]
注意 方法remove() 只刪除第一個指定的值。如果要刪除的值可能在列表中出現多次,就需要使用循環來判斷是否刪除了所有這樣的值。
2.4列表排序
使用方法sort() 對列表進行永久性排序
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
run 後得到輸出(此時汽車是按字母順序排列的,再也無法恢復到原來的排列順序:)
[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
也可以按與字母順序相反的順序排列列表元素,爲此,只需向sort() 方法傳遞參數reverse=True 。
cars = ['bmw', 'audi', 'toyota', 'subaru']
cars.sort()
print(cars)
cars.sort(reverse=True)
print(cars)
[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
[‘toyota’, ‘subaru’, ‘bmw’, ‘audi’]
使用函數sorted() 對列表進行臨時排序
要保留列表元素原來的排列順序,同時以特定的順序呈現它們,可使用函數sorted()
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(sorted(cars))
print(cars)
輸出結果爲
[‘audi’, ‘bmw’, ‘subaru’, ‘toyota’]
[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
我們同樣可以向函數sorted() 傳遞參數reverse=True .
反轉列表元素的排列順序
要反轉列表元素的排列順序,可使用方法reverse() 。注意,reverse() 不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序:
cars = ['bmw', 'audi', 'toyota', 'subaru']
print(cars)
cars.reverse()
print(cars)
[‘bmw’, ‘audi’, ‘toyota’, ‘subaru’]
[‘subaru’, ‘toyota’, ‘audi’, ‘bmw’]
方法reverse() 永久性地修改列表元素的排列順序,但可隨時恢復到原來的排列順序,爲此只需對列表再次調用reverse() 即可。
確定列表的長度
使用函數len() 可快速獲悉列表的長度。列表包含4個元素,因此其長度爲4.
len(cars)
避免列表索引錯誤和小結
索引-1 總是返回最後一個列表元素,當列表爲空時,這種訪問最後一個元素的方式纔會導致錯誤。
小結
列表是什麼以及如何使用其中的元素;
如何定義列表以及如何增刪元素;
如何對列表進行永久性排序,以及如何爲展示列表而進行臨時排序;
如何確定列表的長度,以及在使用列表時如何避免索引錯誤。
參考資料:
Python編程:從入門到實踐
[美] Eric Matthes
譯者:袁國忠