引言:很久沒有寫 Python 了,有一點生疏。這是學習《Python 編程:從入門到實踐(第3版)》的課后練習記錄,主要目的是快速回顧基礎知識。
練習1: 簡單消息
將一條消息賦給變量,并將其打印出來。
# 將字符串 "張三" 賦給變量 name
name = "張三"
# 打印變量 name 的值
print(name)
張三
知識點回顧:
- 變量的定義與賦值:使用
=
將值賦給一個變量名。 print()
函數:用于將指定的內容輸出到控制臺。
練習2:多條簡單消息
將一條消息賦給變量,并將其打印出來;再將變量的值修改為一條新消息,并將其打印出來。
# 將字符串 "李四" 賦給變量 name
name = "李四"
# 打印變量 name 的當前值
print(name)
# 將變量 name 的值修改為 "王五"
name = "王五"
# 打印變量 name 修改后的值
print(name)
李四
王五
知識點回顧:
- 變量的重新賦值:變量的值可以被新的值覆蓋。
- 程序按順序執行:代碼從上到下依次執行。
練習3:個性化消息
用變量表示一個人的名字,并向其顯示一條消息。顯示的消息應非常簡單,如下所示。
Hello Eric, would you like to learn some Python today?
# 用變量存儲一個人的名字
name = 'Eric'
# 使用 f-string (格式化字符串字面量) 創建個性化消息并打印
print(f'Hello {name}, would you like to learn some Python today?')
Hello Eric, would you like to learn some Python today?
知識點回顧:
- f-string:一種方便的字符串格式化方法,可以在字符串中直接嵌入變量和表達式。
- 單引號和雙引號定義字符串:Python中兩者通常可以互換,但需保持一致性。
練習4:調整名字的大小寫
用變量表示一個人的名字,再分別以全小寫、全大寫和首字母大寫的方式顯示這個人名。
first_name = "jack"
last_name = "ma"
# 使用 f-string 拼接姓和名
full_name = f"{first_name} {last_name}"# 全小寫: 使用 .lower() 方法
print(full_name.lower())
# 全大寫: 使用 .upper() 方法
print(full_name.upper())
# 首字母大寫: 使用 .title() 方法
print(full_name.title())
jack ma
JACK MA
Jack Ma
知識點回顧:
- 字符串方法:
.lower()
: 將字符串中所有大寫字母轉換為小寫。.upper()
: 將字符串中所有小寫字母轉換為大寫。.title()
: 將字符串中每個單詞的首字母轉換為大寫,其余字母為小寫。
- f-string:用于構建
full_name
。
練習5:名言1
找到你欽佩的名人說的一句名言,將這個名人的姓名和名言打印出來。輸出應類似于下面這樣(包括引號)。
Albert Einstein once said, “A person who never made a mistake never tried anything new.”
# 直接打印包含名人姓名和名言的字符串
# 注意字符串中引號的使用,外部使用單引號,內部的名言使用雙引號,避免沖突
print('王陽明有云:"知行合一"。')
王陽明有云:"知行合一"。
知識點回顧:
print()
函數打印字符串字面量。- 字符串中引號的嵌套:當字符串本身需要包含引號時,可以使用不同類型的引號(單引號包裹雙引號,或雙引號包裹單引號)或轉義字符。
練習6:名言2
重復練習5,但用變量 famous_person
表示名人的姓名,再創建要顯示的消息并將其賦給變量 message
,然后打印這條消息。
# 將名人的姓名賦給變量 famous_person
famous_person = "王陽明"
# 使用 f-string 創建包含名人姓名和名言的消息,并將其賦給變量 message
message = f'{famous_person}有云:"知行合一"。'
# 打印變量 message 的內容
print(message)
王陽明有云:"知行合一"。
知識點回顧:
- 變量的使用:用變量存儲數據(如名人的名字),使代碼更易讀和維護。
- f-string:再次用于構建包含變量的字符串。
練習7:刪除人名中的空白
用變量表示一個人的名字,并在其開頭和末尾都包含一些空白字符。務必至少使用字符組合 "\t "
和 "\n"
各一次。
打印這個人名,顯示其開頭和末尾的空白。然后,分別使用函數 lstrip()
、rstrip()
和 strip()
對人名進行處理,并將結果打印出來。
# 定義一個包含前后空白字符(制表符\t 和 換行符\n)的字符串
name = "\t張三\n\t"# 打印原始字符串,展示其包含的空白
print("原始字符串:")
print(f"'{name}'") # 使用引號包裹以便看清空白# 打印去掉字符串左邊空白的字符串
print("\n使用 lstrip() 去除左邊空白:")
print(f"'{name.lstrip()}'")# 打印去掉字符串右邊空白的字符串
print("\n使用 rstrip() 去除右邊空白:")
print(f"'{name.rstrip()}'")# 打印去掉字符串左右兩邊空白的字符串
print("\n使用 strip() 去除兩邊空白:")
print(f"'{name.strip()}'")
原始字符串:
' 張三'使用 lstrip() 去除左邊空白:
'張三'使用 rstrip() 去除右邊空白:
' 張三'使用 strip() 去除兩邊空白:
'張三'
(注意:實際輸出中 \n
會導致換行,\t
會產生制表符間距,上面的 plain
塊為了清晰展示空白,用字符形式表達,實際運行結果中空白是不可見的。為了更清晰,我在代碼中用引號包裹了輸出。)
知識點回顧:
- 空白字符:
\t
(制表符),\n
(換行符)。 - 字符串方法:
.lstrip()
: 移除字符串左側的空白字符(或指定字符)。.rstrip()
: 移除字符串右側的空白字符(或指定字符)。.strip()
: 移除字符串兩側的空白字符(或指定字符)。
練習8:文件擴展名
Python 提供了 removesuffix()
方法,其工作原理與 removeprefix()
很像。請將值 'python_notes.txt'
賦給變量 filename
,再使用 removesuffix()
方法來顯示不包含擴展名的文件名,就像文件瀏覽器所做的那樣。
filename = "python_notes.txt"
# 使用 removesuffix() 方法移除指定的后綴 ".txt"
# 這個方法是 Python 3.9 版本引入的
file_without_extension = filename.removesuffix(".txt")
print(file_without_extension)
python_notes
知識點回顧:
- 字符串方法
.removesuffix(suffix)
:如果字符串以指定的suffix
結尾,則返回移除該后綴的新字符串;否則返回原始字符串。 (Python 3.9+) - (類似地,
.removeprefix(prefix)
移除前綴。)
練習9:數字8
編寫4個表達式,分別使用加法、減法、乘法和除法運算,但結果都是數字8。為了使用函數調用 print()
來顯示結果,務必將這些表達式用括號括起來。也就是說,你應該編寫4行類似于這樣的代碼:
print(5+3)
輸出應為4行,其中每行都只包含數字8。
# 加法運算
print(4+4)
# 減法運算
print(12-4)
# 乘法運算
print(4*2)
# 除法運算,結果是浮點數,使用 int() 轉換為整數
print(int(16/2))
8
8
8
8
知識點回顧:
- 基本算術運算符:
+
(加法),-
(減法),*
(乘法),/
(除法)。 - 除法運算
/
:在 Python 3.x 中,除法運算結果總是浮點數。 int()
函數:將一個數值或字符串轉換為整數。- 表達式求值:
print()
函數會先計算括號內的表達式,然后打印結果。
練習10:最喜歡的數
用一個變量來表示你最喜歡的數,再使用這個變量創建一條消息,指出你最喜歡的數是什么,然后將這條消息打印出來。
# 用變量存儲最喜歡的數字
number = 666
# 使用 f-string 創建包含這個數字的消息
message = f"我最喜歡的數字是{number}!"
# 打印消息
print(message)
我最喜歡的數字是666!
知識點回顧:
- 變量存儲數字類型數據。
- f-string:可以將數字類型的變量直接嵌入字符串中,Python 會自動將其轉換為字符串形式。