1. 程式人生 > >《Python程式設計-從入門到實踐》第3、4章習題選練

《Python程式設計-從入門到實踐》第3、4章習題選練

3-1 姓名: 將一些朋友的姓名儲存在一個列表中,並將其命名為names 。依次訪問該列表中的每個元素,從而將每個朋友的姓名都打印出來。

3-2 問候語: 繼續使用練習3-1中的列表,但不列印每個朋友的姓名,而為每人列印一條訊息。每條訊息都包含相同的問候語,但擡頭為相應朋友的姓名。

知識點分析:

列表元素的訪問

程式碼:

names = ['Zachary', 'Charlie', 'Alice', 'Neo']

print(names[0])
print(names[1])
print(names[-2])
print(names[-1])

#Have a try about traverse
for name in names:
    print("Hello "+name)

3-4 嘉賓名單 :如果你可以邀請任何人一起共進晚餐(無論是在世的還是故去的),你會邀請哪些人?請建立一個列表,其中包含至少3個你想邀請的人;然後,使用這個列表列印訊息,邀請這些人來與你共進晚餐。

3-5 修改嘉賓名單 :你剛得知有位嘉賓無法赴約,因此需要另外邀請一位嘉賓。
.以完成練習3-4時編寫的程式為基礎,在程式末尾新增一條print 語句,指出哪位嘉賓無法赴約。
.修改嘉賓名單,將無法赴約的嘉賓的姓名替換為新邀請的嘉賓的姓名。

.再次列印一系列訊息,向名單中的每位嘉賓發出邀請。

3-6 新增嘉賓 :你剛找到了一個更大的餐桌,可容納更多的嘉賓。請想想你還想邀請哪三位嘉賓。
.以完成練習3-4或練習3-5時編寫的程式為基礎,在程式末尾新增一條print 語句,指出你找到了一個更大的餐桌。
.使用insert() 將一位新嘉賓新增到名單開頭。
.使用insert() 將另一位新嘉賓新增到名單中間。
.使用append() 將最後一位新嘉賓新增到名單末尾。

.列印一系列訊息,向名單中的每位嘉賓發出邀請。

3-7 縮減名單 :你剛得知新購買的餐桌無法及時送達,因此只能邀請兩位嘉賓。
.以完成練習3-6時編寫的程式為基礎,在程式末尾新增一行程式碼,列印一條你只能邀請兩位嘉賓共進晚餐的訊息。
.使用pop() 不斷地刪除名單中的嘉賓,直到只有兩位嘉賓為止。每次從名單中彈出一位嘉賓時,都列印一條訊息,讓該嘉賓知悉你很抱歉,無法邀請他來共進晚餐。
.對於餘下的兩位嘉賓中的每一位,都列印一條訊息,指出他依然在受邀人之列。

.使用del 將最後兩位嘉賓從名單中刪除,讓名單變成空的。列印該名單,核實程式結束時名單確實是空的。

3-9 晚餐嘉賓 :在完成練習3-4~練習3-7時編寫的程式之一中,使用len() 列印一條訊息,指出你邀請了多少位嘉賓來與你共進晚餐。

知識點分析:

列表方法的綜合運用,包括修改、新增、刪除、長度獲取等

程式碼:

#3-4
names = ['Zachary', 'Charlie', 'Alice', 'Neo']
for name in names:
    print(name+", would you like to have dinner with me tonight?")
#3-5
print("\nI'm sorry that "+names[2]+" couldn't come")
names[2] = 'Bob'
for name in names:
    print(name+", would you like to have dinner with me tonight?")
#3-6
print("\nI'm glad that we have found a bigger dinner table")
names.insert(0, 'Eddy')
names.insert(2, 'Felix')
names.append('Ricky')
for name in names:
    print(name+", would you like to have dinner with me tonight?")
#3-7
print("\nHow regretful that the new dinner table won't arrive in time and only 2 can be invited")
print(names.pop(1)+", I'm sorry that we can't have dinner together") #to pop one specified element
while len(names) > 2:
	print(names.pop()+", I'm sorry that we can't have dinner together")
for name in names:
	print(name + ", you are still invited, I'm still waiting for your coming")
print(str(len(names))+" guests are invited finally")
del names[0]
del names[0] #not names[1]
'''
del names[1]
del names[0]
'''
#del names is not we want (namelist is still existing)
print(names)
3-8 放眼世界 :想出至少5個你渴望去旅遊的地方。
.將這些地方儲存在一個列表中,並確保其中的元素不是按字母順序排列的。
.按原始排列順序列印該列表。不要考慮輸出是否整潔的問題,只管列印原始Python列表。
.使用sorted() 按字母順序列印這個列表,同時不要修改它。
.再次列印該列表,核實排列順序未變。
.使用sorted() 按與字母順序相反的順序列印這個列表,同時不要修改它。
.再次列印該列表,核實排列順序未變。
.使用reverse() 修改列表元素的排列順序。列印該列表,核實排列順序確實變了。
.使用reverse() 再次修改列表元素的排列順序。列印該列表,核實已恢復到原來的排列順序。
.使用sort() 修改該列表,使其元素按字母順序排列。列印該列表,核實排列順序確實變了。

.使用sort() 修改該列表,使其元素按與字母順序相反的順序排列。列印該列表,核實排列順序確實變了。

知識點分析:

列表組織方法的綜合運用,包括排序、反轉等

程式碼:

places = ['England', 'Russia', 'America', 'Germany', 'Australia']
print(places)
print(sorted(places))
print(places)
print(sorted(places, reverse = True))
print(places)
places.reverse()
print(places)
places.reverse()
print(places)
places.sort()
print(places)
places.sort(reverse = True)
print(places)

4-1 比薩 :想出至少三種你喜歡的比薩,將其名稱儲存在一個列表中,再使用for 迴圈將每種比薩的名稱都打印出來。
.修改這個for 迴圈,使其列印包含比薩名稱的句子,而不僅僅是比薩的名稱。對於每種比薩,都顯示一行輸出,如“I like pepperoni pizza”。

.在程式末尾新增一行程式碼,它不在for 迴圈中,指出你有多喜歡比薩。輸出應包含針對每種比薩的訊息,還有一個總結性句子,如“I really love pizza!”。

4-11 你的比薩和我的比薩 :在你為完成練習4-1而編寫的程式中,建立比薩列表的副本,並將其儲存到變數friend_pizzas 中,再完成如下任務。
.在原來的比薩列表中新增一種比薩。
.在列表friend_pizzas 中新增另一種比薩。

.核實你有兩個不同的列表。為此,列印訊息“My favorite pizzas are:”,再使用一個for 迴圈來列印第一個列表;列印訊息“My friend's favorite pizzas are:”,再使用一個for 迴圈來列印第二個列表。核實新增的比薩被新增到了正確的列表中。

知識點分析:列表的遍歷,迴圈、縮排的使用,列表的複製

程式碼:

#4-1
pizzas = ['beef', 'pork', 'fruit']
for pizza in pizzas:
    print("I like "+pizza+" pizza.")
print("I really love pizza!")
#4-11
friend_pizzas = pizzas[:]
pizzas.append('fish')
friend_pizzas.append('vegetable')
print("My favourite pizzas are:")
for pizza in pizzas:
    print(pizza+' pizza')
print("My friend's favourite pizzas are:")
for pizza in friend_pizzas:
    print(pizza+' pizza')
4-2 動物 :想出至少三種有共同特徵的動物,將這些動物的名稱儲存在一個列表中,再使用for 迴圈將每種動物的名稱都打印出來。
.修改這個程式,使其針對每種動物都列印一個句子,如“A dog would make a great pet”。

.在程式末尾新增一行程式碼,指出這些動物的共同之處,如列印諸如“Any of these animals would make a great pet!”這樣的句子。

知識點分析:列表的遍歷,迴圈、縮排的使用

程式碼:

#4-2
animals = ['cat', 'dog', 'fish']
for animal in animals:
	print('A '+animal+' would make a great pet.')
print('Any of these animals would make a great pet!')

4-3 數到20 :使用一個for 迴圈列印數字1~20(含)。

知識點分析:range()函式的應用——用於for迴圈

程式碼:

for i in range(1,21): #not 20, and don't forget ':'
	print(i)

4-4 一百萬 :建立一個列表,其中包含數字1~1 000 000,再使用一個for 迴圈將這些數字打印出來。

知識點分析:range()函式的應用——用於建立數值列表

程式碼:

nums = list(range(1,1000001))
for num in nums:
	print(num)

4-5 計算1~1 000 000的總和 :建立一個列表,其中包含數字1~1 000 000,再使用min() 和max() 核實該列表確實是從1開始,到1 000 000結束的。另外,對這個列表呼叫函式sum() ,看看Python將一百萬個數字相加需要多長時間。

知識點分析:數值列表的建立及簡單統計計算

程式碼:

nums = list(range(1,1000001))
print(min(nums))
print(max(nums))
print(sum(nums))

#really fast!

4-6 奇數 :通過給函式range() 指定第三個引數來建立一個列表,其中包含1~20的奇數;再使用一個for 迴圈將這些數字都打印出來。

知識點分析:range()函式的第三引數

程式碼:

odds = list(range(1,21,2))
for num in odds:
	print(num)

4-7 3的倍數 :建立一個列表,其中包含3~30內能被3整除的數字;再使用一個for 迴圈將這個列表中的數字都打印出來。

知識點分析:range()函式的第三引數

程式碼:

nums = list(range(3,31,3))
for num in nums:
	print(num)

4-8 立方 :將同一個數字乘三次稱為立方。例如,在Python中,2的立方用2**3 表示。請建立一個列表,其中包含前10個整數(即1~10)的立方,再使用一個for 迴圈將這些立方數都打印出來。

4-9 立方解析 :使用列表解析生成一個列表,其中包含前10個整數的立方。

4-10 切片 :選擇你在本章編寫的一個程式,在末尾新增幾行程式碼,以完成如下任務。
.列印訊息“The first three items in the list are:”,再使用切片來列印列表的前三個元素。
.列印訊息“Three items from the middle of the list are:”,再使用切片來列印列表中間的三個元素。
.列印訊息“The last three items in the list are:”,再使用切片來列印列表末尾的三個元素。

知識點分析:列表解析與切片

程式碼:

#4-8&4-9
cube = [i**3 for i in range(1,11)]
for num in cube:
    print(num, end = ' ')
print('\nThe first three items in the list are: ', end = '')
#4-10
for num in cube[:3]:
    print(num, end = ' ')
print('\nThree items from the middle of the list are: ', end = '')
for num in cube[3:6]:
    print(num, end = ' ')
print('\nThe last three items in the list are: ', end = '')
for num in cube[-3:]:
    print(num, end = ' ')
4-13 自助餐 :有一家自助式餐館,只提供五種簡單的食品。請想出五種簡單的食品,並將其儲存在一個元組中。
.使用一個for 迴圈將該餐館提供的五種食品都打印出來。
.嘗試修改其中的一個元素,核實Python確實會拒絕你這樣做。

.餐館調整了選單,替換了它提供的其中兩種食品。請編寫一個這樣的程式碼塊:給元組變數賦值,並使用一個for 迴圈將新元組的每個元素都打印出來。

知識點分析:元組的遍歷、元組元素修改(不允許)、元組變數修改(允許)

程式碼:

foods = ('rice', 'noodles', 'pizza', 'cake', 'bread')
for food in foods:
    print(food)
#foods[0] = 'test'
foods = ('rice', 'noodles', 'porridge', 'cake', 'milk')
for food in foods:
    print(food)

相關推薦

Python程式設計-入門實踐34習題

3-1 姓名: 將一些朋友的姓名儲存在一個列表中,並將其命名為names 。依次訪問該列表中的每個元素,從而將每個朋友的姓名都打印出來。3-2 問候語: 繼續使用練習3-1中的列表,但不列印每個朋友的姓名,而為每人列印一條訊息。每條訊息都包含相同的問候語,但擡頭為相應朋友的姓

python資料探勘入門與實戰——學習筆記(34

chapter 3 決策樹預測獲勝球隊 pandas載入資料集 import pandas as pd dataset = pd.read_csv('filepath+filename') 資料清洗,可在讀入時清洗 dataset = pd.read_csv('filen

尚學堂 實戰java程式設計 34課後題答案

尚學堂 實戰java程式設計 第3、4章課後題答案 第3章 一、選擇題 1.A 2.BD 解析:switch的的判斷表示式的資料型別:byte short int char 3.A 解析:0+3+5=8 4.BD 解析:函式過載時對返回資料型別不做檢查,但形引數量或型別必須變化,B和

python 程式設計 入門實踐》-十八Django入門,專案3 遇到的問題。

第十八章Django入門,很多小白在按照書本上的內容按部就班的進行Django的入門學習時發現,在學習前兩個部分的時候,一切都是很順利。到了第三個專案,建立網頁:學習筆記主頁,將Django主頁URL對映到自己要設計的學習筆記主頁時,一直出現錯誤,沒有匹配的UR

Python程式設計入門實踐》+《流暢的Python》+《Python基礎教程(3版)》分析對比

《Python程式設計從入門到實踐》針對所有層次的Python 讀者而作的Python 入門書。全書分兩部分:第一部分介紹用Python 程式設計所必須瞭解的基本概念,包括matplotlib、NumPy 和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、檔案與異常、程式碼測試

Python程式設計入門實踐練習13-313-4

13-3 雨滴:尋找一幅雨滴影象,並建立一系列整齊排列的雨滴。讓這些雨滴往下落,直到到達屏幕後消失。 先說今天的問題: 1.在更改函式形參時,呼叫的時候也要修改,否則會出現AttributeError     值得注意的是:每當新增進新的程式碼,要檢查函式傳遞的引數是否對應

Python程式設計入門實踐》記錄之rangeminmaxsum函式

目錄 1、range()函式 2、min、max、sum函式 ​​​​​​1、range()函式 range(num1,num2,steps)函式:可以生成一個一系列數字。 num1引數:表示起始範圍 num2引數:表示終止範圍,但不包含此數字。 steps

Python程式設計入門實踐課後答案:

9-1 餐館 :建立一個名為Restaurant 的類,其方法__init__() 設定兩個屬性:restaurant_name 和cuisine_type 。建立一個名 為describe_restaurant() 的方法和一個名為open_restaurant() 的方法,其中前者列印前

Python程式設計入門實踐課後答案:

8-1 訊息 :編寫一個名為display_message() 的函式,它列印一個句子,指出你在本章學的是什麼。呼叫這個函式,確認顯示的訊息正確無誤。 8-2 喜歡的圖書 :編寫一個名為favorite_book() 的函式,其中包含一個名為title 的形參。這個函式列印一條訊息,如One

Python程式設計入門實踐課後答案:

6-1 人 :使用一個字典來儲存一個熟人的資訊,包括名、姓、年齡和居住的城市。該字典應包含鍵first_name 、last_name 、age 和city 。將儲存在該字典中 的每項資訊都打印出來。 data = {"first_name": "鄭", "last_name": "超"

Python程式設計入門實踐課後答案:

5-3 外星人顏色#1 :假設在遊戲中剛射殺了一個外星人,請建立一個名為alien_color 的變數,並將其設定為’green’ 、‘yellow’ 或’red’ 。 編寫一條if 語句,檢查外星人是否是綠色的;如果是,就列印一條訊息,指出玩家獲得了5個點。 編寫這個程式的兩個版本,在一個

Python程式設計入門實踐課後答案:

4-1 比薩 :想出至少三種你喜歡的比薩,將其名稱儲存在一個列表中,再使用for 迴圈將每種比薩的名稱都打印出來。 修改這個for 迴圈,使其列印包含比薩名稱的句子,而不僅僅是比薩的名稱。對於每種比薩,都顯示一行輸出,如“I like pepperoni pizza”。 在程式末尾新增一行程

Python程式設計入門實踐課後答案:

3-1 姓名: 將一些朋友的姓名儲存在一個列表中,並將其命名為names 。依次訪問該列表中的每個元素,從而將每個朋友的姓名都打印出來。 names = ["Tom", "Bob", "Jack"] for i in names: print(i) 3-2 問候語: 繼續使用練習

Python程式設計入門實踐9類課後習題(附程式碼)

目錄 9-1(9-2) 餐館 9-3 使用者 9-4 就餐人數 9-5 嘗試登陸次數 9-6 冰淇淋小店 9-7 管理員 9-8 許可權 9-10 匯入Restaurant類 9-11 匯入Admin類 9-12 多個模組​ 9-1(9-2) 餐館

Python程式設計入門實踐》記錄之將Python函式儲存在模組中(importimport*)

目錄 1、匯入整個模組 2、匯入特定的函式 3、使用as給函式指定別名 4、匯入模組中的所有函式 5、總結 我們可以在編寫程式時將函式儲存在被稱為模組的獨立檔案中,再將模組匯入到主程式中(必須的步驟)。port語句允許在當前執行的程式檔案中使用模組中的程式碼。 模組是

Python程式設計入門實踐課後答案:十一

11-1 城市和國家 :編寫一個函式,它接受兩個形參:一個城市名和一個國家名。這個函式返回一個格式為City, Country 的字串,如Santiago, Chile 。將 這個函式儲存在一個名為city_functions.py的模組中。 建立一個名為test_cities.py的程式,

Python程式設計入門實踐課後答案:

10-1 Python學習筆記 :在文字編輯器中新建一個檔案,寫幾句話來總結一下你至此學到的Python知識,其中每一行都以“In Python you can”打頭。將這個檔案命名為 learning_python.txt,並將其儲存到為完成本章練習而編寫的程式所在的目錄中。編寫一個程式,

Python程式設計入門實踐10檔案和異常動手試一試答案(附程式碼)

目錄 10-3 訪客 10-4 訪客名單 10-6 加法運算 10-7 加法計算器 10-8 貓和狗 10-9 沉默的貓和狗 10-3 訪客 #!/usr/bin/env python # -*- coding:utf-8 -*- user = input

python程式設計 入門實踐 字典

學習筆記: # 一個簡單的字典 alien_0={'color':'green','points':'5'} print(alien_0['color']) print(alien_0['points']) #6.2 使用字典 ## 字典是一系列鍵—值對,每個鍵都有一個值

0基礎自學《Python程式設計入門實踐》章節3.3習題自測

3.3 組織列表 3-8 放眼世界:想出至少5種你渴望去旅遊的地方。 - 將這些地方儲存在一個列表中,並確保其中的元素不是按字母順序排列的。 - 按原始排列順序列印該列表。不要考慮輸出是否整潔的問題,只管列印原始Python列表。 - 使用sorted( ) 按