程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【周周Python百日刷題計劃】Day3~熟練使用幾個重要的內置函數

編輯:Python

目錄

寫在前面

題目一

        解析

        答案

題目二

        解析

        答案

️題目三

        ️解析

        ️答案

題目四

        解析

        答案

 總結


寫在前面

本篇博客主要向各位小伙伴們介紹的Python經典例題<幾個重要的內置函數的使用>,帶各位掌握Python基礎,希望各位小伙伴們能夠在這裡收獲到更多知識!讓我們一起學習!一起進步!

題目一

用map來處理字符串列表name=['lisa','wu,'yua','zhou'],把列表中所有人,都變成名字加‘_nb’,比方lisa_nb 

解析

寫這道題之前需要掌握內置map函數,匿名函數,以及各種列表推導式的使用

答案

基礎版:

name=['lisa','jadd','yua','mike']
def func(li):
li = li+'_nb'
return li
ret = map(func,name)
name = [i for i in ret]
print(name)

進階版:

name=['lisa','jadd','yua','mike']
ret = map(lambda li :li+'_nb',name)
name = [i for i in ret]
print(name)

輸出結果:

題目二

用filter函數處理數字列表,將列表num = [1,3,5,6,7,8]中所有的偶數篩選出來

解析

寫這題之前需要掌握內置函數filter、列表、匿名函數、列表推導式的使用方法

答案

​
num = [1,3,5,6,7,8]
res = filter(lambda x:x%2 == 0,num)
num2 = [i for i in res]
print(num2)
​

輸出結果:

️題目三

隨意寫一個有20行以上內容的文件,要求運行程序,先將內容讀到內存中,用列表存儲。接收用戶輸入頁碼,每頁5行,僅輸出當頁的內容

️解析

寫此題之前需要掌握內置函數divmod、if條件語句的使用

️答案

with open('01--昨日作業',encoding='utf8') as f:
l = f.readlines()
print(l) #查看文件'01--昨日作業'中含有的內容
page_num = int(input('請輸入你要查看的頁碼 :'))
pages,mod = divmod(len(l),5) #page表示一共有的頁數,mod表示還剩的行數(五行為一頁)
if mod: #判斷是否還剩有行數
pages += 1 #不滿五行也算一頁
if page_num > pages: #判斷輸入的頁數是否超出總頁數
print('你輸入的頁碼有誤')
elif page_num == pages and mod != 0:
for i in range(mod):
print(l[(page_num-1)*5 + i].strip())
else:
for i in range(5):
print(l[(page_num-1)*5 + i].strip())

輸出結果:

題目四

如下,每個小字典的name對應股票名字,shares對應多少股,price對應股票的價格 
portfolio=[
    {’name':’IBM','shares': 100, 'price': 91.1},
    {'name':’AAPL','shares’: 50,'price': 543.22},
    {'name’:'FB','shares': 200,'price': 21.09},
    {’name':'HPQ','shares': 35, 'price': 31.75},
    {’name’ :'YHO0'.' shares': 45. 'price’: 16.35},
    {’name’:'ACME’,'shares’: 75,'price': 115.65}
]

(1)、計算購買每支股票的總價
(2)、用filter過濾出,單價大於100的股票有哪些

 

解析

寫此題需要掌握 字典的基礎知識,內置函數filter的基本使用方法

答案

(1)答案:

portfolio=[
{'name':'IBM','shares':100, 'price': 91.1},
{'name':'AAPL','shares': 50,'price': 543.22},
{'name':'FB','shares': 200,'price': 21.09},
{'name':'HPQ','shares': 35, 'price': 31.75},
{'name' :'YHO0','shares': 45, 'price': 16.35},
{'name':'ACME','shares': 75,'price': 115.65}
]
ret1 = map(lambda dic:{dic['name']:dic['shares']*dic['price']},portfolio)
print(list(ret1))

輸出結果: 

(2)答案:

portfolio=[
{'name':'IBM','shares':100, 'price': 91.1},
{'name':'AAPL','shares': 50,'price': 543.22},
{'name':'FB','shares': 200,'price': 21.09},
{'name':'HPQ','shares': 35, 'price': 31.75},
{'name' :'YHO0','shares': 45, 'price': 16.35},
{'name':'ACME','shares': 75,'price': 115.65}
]
#第一種方法
ret2 = filter(lambda dic:True if dic['price']>100 else False,portfolio)
print(list(ret2))
#第二種方法
ret3 = filter(lambda dic:dic['price']>100,portfolio)
print(list(ret3))

輸出結果:

 總結

這幾個題目主要考的是重要內置函數map、filter的使用方法,同時掌握匿名函數的基本語法,能夠在實際問題靈活使用,其中匿名函數的語法是:

 好了今天的分享結束了,我們“明天見”。


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved