筆者:風起怨江南 出處:https://blog.csdn.net/JackMengJin 原創文章轉載請註明出處。如果喜歡請點贊+關注,感謝支持!
《Python實戰系列》所有實例訓練題都是從Python各個知識點精挑細選出來的,希望能對大家有所幫助。
Python實戰系列每週不定時更新,想看上一期實戰訓練的朋友請點擊=>傳送門。不多廢話,直接上乾貨!
目錄
Python實戰10-19例:列表、字典、循環等綜合訓練
10.刪除列表元素
刪除列表中的"不明飛行物
",寫出 2 種或以上方法:
info = ["Carter", 45, "男", "不明飛行物", ["高", "富", "帥"], True, None, "狼的眼睛是啥樣的"]
#方法1 pop()
info = ["Carter", 45, "男", "不明飛行物", ["高", "富", "帥"], True, None, "狼的眼睛是啥樣的"]
print('打印原先列表:\n',info)
info.pop(3)
print('方法1 利用pop()函數刪除,刪除後的列表內容:\n',info)
#方法2 remove()
info = ["Carter", 45, "男", "不明飛行物", ["高", "富", "帥"], True, None, "狼的眼睛是啥樣的"]
info.remove('不明飛行物')
print('方法2 利用remove()函數刪除,刪除後的列表內容:\n',info)
#方法3 del語句
info = ["Carter", 45, "男", "不明飛行物", ["高", "富", "帥"], True, None, "狼的眼睛是啥樣的"]
del info[3]
print('方法3 利用del語句,刪除後的列表內容:\n',info)
#方法4 列表分片
info = ["Carter", 45, "男", "不明飛行物", ["高", "富", "帥"], True, None, "狼的眼睛是啥樣的"]
info1 = info[:3]
info2 = info[4:]
print('方法4 利用列表重新拼接,不包括要刪除的元素,刪除後的列表內容:\n',info1 + info2)
打印原先列表:
['Carter', 45, '男', '不明飛行物', ['高', '富', '帥'], True, None, '狼的眼睛是啥樣的']
方法1 利用pop()函數刪除,刪除後的列表內容:
['Carter', 45, '男', ['高', '富', '帥'], True, None, '狼的眼睛是啥樣的']
方法2 利用remove()函數刪除,刪除後的列表內容:
['Carter', 45, '男', ['高', '富', '帥'], True, None, '狼的眼睛是啥樣的']
方法3 利用del語句,刪除後的列表內容:
['Carter', 45, '男', ['高', '富', '帥'], True, None, '狼的眼睛是啥樣的']
方法4 利用列表重新拼接,不包括要刪除的元素,刪除後的列表內容:
['Carter', 45, '男', ['高', '富', '帥'], True, None, '狼的眼睛是啥樣的']
注意,刪除元素輕易不要用del語句去刪除,太危險。
11.修改列表
現在有一個列表 li2=[1,2,3,4,5]。請通過相關的操作改成li2 = [0,1,2,3,66,4,5,11,22,33]。
#方法1 賦值
li2 = [1,2,3,4,5]
print('原始li2列表內容:',li2)
li3 = [0,1,2,3,66,4,5,11,22,33]
li2 = li3[::]
print('方法1 通過最簡單的賦值來進行修改,修改後的li2列表內容:\n',li2)
#方法2 利用insert()
li2 = [1,2,3,4,5]
li2.insert(0,0)
li2.insert(4,66)
li2.insert(7,11)
li2.insert(8,22)
li2.insert(9,33)
print('方法2 只通過insert()添加元素,修改後的li2列表內容:\n',li2)
#方法3,insert(),append()
li2 = [1,2,3,4,5]
li2.insert(0,0)
li2.insert(4,66)
li2.append(11)
li2.append(22)
li2.append(33)
print('方法3 通過insert()和append()添加元素,修改後的li2列表內容:\n',li2)
主要考察對列表的添加元素操作,根據具體的需求選擇合適的方法。
12.判斷可變和不可變的數據類型
請指出下面那些爲可變類型的數據,那些爲不可變類型的數據
1、 (11)
2、 {11,22}
3、 ([11,22,33])
4、 {"aa":111}
print('''分析:(11)是整形,而整形是不可變的數據
{11,22}是集合,可以使用add()函數對集合進行添加元素的操作,所以是可變的數據。
([11,22,33])是個陷阱,雖然()是元組的表示方式,但當元組只有一個元素時且後面沒有用逗號隔開時,只能表示元素本身的數據類型。也就是列表類型。而列表是可變類型,所以這個也是可變類型。
{"aa":111}是字典,字典是可變的類型,所以得出結論。''')
print('總結:編號爲1的是不可變類型的數據;編號爲2、3、4的是可變的類型數據。')
各種陷阱,基礎知識點。如果不確定可以打印出數據類型,再進行判斷是否爲可變數據類型。
13.元素去重和刪除
當前有一個列表 li = [11,22,33,22,22,44,55,77,88,99,11]。
- 要求一:去除列表中的重複元素
- 要求二:刪除 77,88,99這三個元素
li = [11,22,33,22,22,44,55,77,88,99,11]
#去重用集合類型轉換,再轉換爲列表
li_new = list(set(li))
li_new.sort()
print(li_new)
#要求二中利用remove函數刪除列表的三個元素
li_new.remove(77)
li_new.remove(88)
li_new.remove(99)
print(li_new)
#或者用pop()刪除三個元素
li = [11,22,33,22,22,44,55,77,88,99,11]
li_new = list(set(li))
li_new.sort()
#pop()刪除元素,由於已經排序,所以默認刪除最後一個
li_new.pop()
li_new.pop()
li_new.pop()
print(li_new)
#或者用切片刪除
li = [11,22,33,22,22,44,55,77,88,99,11]
li_new = list(set(li))
li_new.sort()
n=len(li_new)
lst = li_new[:n-3]
print(lst)
[11, 22, 33, 44, 55, 77, 88, 99]
[11, 22, 33, 44, 55]
[11, 22, 33, 44, 55]
[11, 22, 33, 44, 55]
這道題考察的知識點:集合用來去重。
14.數據類型轉換字典
有下面幾個數據 :
t1 = ("aa",11)
t2= (''bb'',22)
li1 = [("cc",11)]
請通過學過的知識點,進行相關操作變爲如下字典: {"aa":11,"cc":11,"bb":22}:
#方法1 extend()
a,b,c = t1,li1[0],t2
list = []
list.extend([a,b,c])
print(dict(list))
{'aa': 11, 'cc': 11, 'bb': 22}
#方法2
t1 = ('aa',11)
t2 = ('bb',22)
li1 = [('cc',11)]
li1.insert(0,t1)
li1.insert(2,t2)
print(dict(li1))
{'aa': 11, 'cc': 11, 'bb': 22}
#方法3
ti = ("aa",11)
t2 = ("bb",22)
li1 = [("cc",11)]
new_dict = {}
new_dict[t1[0]] = t1[1]
new_dict[t2[0]] = t2[1]
new_dict[li1[0][0]] = li1[1]
{'aa': 11, 'cc': 11, 'bb': 22}
每種方法都要掌握!
15.利用判斷計算價格
一家商場在降價促銷,所有原價都是整數(不需要考慮浮點情況),如果購買金額50-100元(包含50元和100元)之間,會給
10%的折扣,如果購買金額大於100元會給20%折扣。編寫一程序,詢問購買價格,再顯示出折扣(%10或20%)和最終價格。
price = int(input('請輸入購買金額:'))
if price >= 50 and price <= 100:
price_sale = price * (1 - 0.1)
#利用format(price_sale,'.2f')函數,取小數點後兩位
print('折扣爲:10%,最終價格爲:{}元。'.format(format(price_sale,'.2f')))
elif price > 100:
price_sale = price * (1 - 0.2)
print('折扣爲:20%,最終價格爲:{}元。'.format(format(price_sale,'.1f')))
else:
print('沒有折扣,最終價格爲:{}元。'.format(price))
請輸入購買金額:111
折扣爲:20%,最終價格爲:88.8元。
需要注意取小數點。
16.判斷是否爲閏年
-
輸入一個有效的年份(如:2019),判斷是否爲閏年(不需要考慮非數字的情況)
-
如果是閏年,則打印“2019年是閏年”;否則打印“2019年不是閏年”
year = int(input('輸入一個有效的年份(如:2019):'))
#閏年判斷條件:首先保證年數能被4整除
if year % 4 == 0:
#年份能被100整除,但不能被400整除時,是平年
if year % 100 == 0 and year % 400 != 0:
print('公元{}年不是閏年。'.format(year))
else:
print('公元{}年是閏年。'.format(year))
else:
print('公元{}年不是閏年。'.format(year))
請輸入第1個整數:190
請輸入第2個整數:210
請輸入第3個整數:65
最大值爲:210
#方法2
year = int(input("請輸入需要查詢的年份:"))
if year % 4 == 0:
if year % 100 == 0:
if year % 400 == 0:
print("是閏年")
else:
print("不是閏年")
else:
print("是閏年")
else:
print("不是閏年")
閏年的兩個判斷條件:年數能被4整除,年份能被100整除,同時要被400整除。方法很多,這裏只列舉一個。
17.求數字最大值
求三個整數中的最大值,提示:定義 3 個變量。
a = int(input("請輸入第1個整數:"))
b = int(input("請輸入第2個整數:"))
c = int(input("請輸入第3個整數:"))
if a >= b and a >= c:
print("最大值爲:{}".format(a))
elif b >= a and b >= c:
print("最大值爲:{}".format(b))
else:
print("最大值爲:{}".format(c))
請輸入第1個整數:190
請輸入第2個整數:210
請輸入第3個整數:65
最大值爲:210
當然這裏可以用max函數,更簡單。
a = int(input("請輸入第1個整數:"))
b = int(input("請輸入第2個整數:"))
c = int(input("請輸入第3個整數:"))
print(max(a,b,c))
請輸入第1個整數:3
請輸入第2個整數:2
請輸入第3個整數:1
3
18.使用for打印九九乘法表
輸出九九乘法表,格式如下:(每項數據之間空一個Tab鍵,可以使用"\t")
#x是被乘數
for x in range(1,10):
#y是乘數
for y in range(1,x + 1):
print(y, 'x' ,x ,'=',x*y,end='\t')
print('')
1 x 1 = 1
1 x 2 = 2 2 x 2 = 4
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81
乘法表就不多敘述了,面試必備!
19.循環刪除元素
你的微信好友當中有 5 個推銷的,他們存在一個列表 black_list=['賣茶葉', '賣面膜', '賣保險', '賣花生', '賣手機']
請依次把這 5 個人分別從 black_list 當中刪除,最後 black_list 爲空。
black_list = ['賣茶葉', '賣面膜', '賣保險', '賣花生', '賣手機']
print(black_list)
length = len(black_list)
for i in range(length):
black_list.pop()
print(black_list)
['賣茶葉', '賣面膜', '賣保險', '賣花生', '賣手機']
[]
以上便是《Python實戰10-19例》的所有內容,本系列持續更新,每道都是精挑細選的質量題。
原創不易,轉載請註明原作者。如果喜歡請點贊和關注,謝謝大家的支持!