python隨記


學習python中的小記錄…和YH約定的兩週學習計劃
工具:idle

1.字符串

字符串 字符串 就是一系列字符。在Python中,用引號括起的都是字符串,其中的引號可以是單引號,也可以是雙引號,如下所示:

"This is a string."
'This is also a string.'

1.1 修改字符串的大小寫

name.py

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.py

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
譯者:袁國忠

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章