優雅使用函式,使其順序恰當,搭配合理

2022-05-02 16:54:12 字數 2439 閱讀 8568

函式的使用涉及很多邏輯合理性的內容,優秀的**,邏輯清晰,**簡潔,函式呼叫恰當,記憶體占用小,cpu計算量小,方方面面涉及很多技巧和思維方式,需要程式設計師多讀**,多思考,勤試錯。

這篇**總覺得還有很多需要優化的地方,但總是邏輯不清,搞不明白修改**合適,怎麼修改?先貼上來,以後有思路再做調整。

需求是這樣的:從乙個列有員工資訊的檔案中查詢所需要的內容,給出這個檔案格式如下

id name age   phone  post

1,ryan,28,135********,hr

2,...

3,...

import

redef

show(i,inquire,li,dic):

'''展示出使用者要求展示的內容,即select與where之間的內容

:param i: 迴圈檔案得來的每一行

:param inquire: 使用者輸入的語句

:param li: 放入篩選結果的列表

:param dic: 檔案每行內容分割後放入的字典

:return:

'''lis = re.split('

select|where.*|\s|,

', inquire)

lis = list(filter(lambda x: x, lis)) #

篩選出select與where之間的內容

for k in lis: #

迴圈select與where之間的內容

if k == '

*': #

如果是*

則把這一整行都放入列表

else:#

否則把字典中k的值放入列表

deffilt(i,inquire,li,dic):

'''篩選出符合條件的行,即符合where之後條件的內容

:param i: 迴圈檔案得來的每一行

:param inquire: 使用者輸入的語句

:param li: 放入篩選結果的列表

:param dic: 檔案每行內容分割後放入的字典

:return:

'''lis = re.split('

where

', inquire)

if'>

'in lis[1]:

lis8 = lis[1].split('

>')

if lis8[0].strip() in dic and int(dic[lis8[0].strip()]) > int(lis8[1].strip()):

show(i,inquire,li,dic)

if'<

'in lis[1]:

lis8 = lis[1].split('

if lis8[0].strip() in dic and int(dic[lis8[0].strip()]) < int(lis8[1].strip()):

show(i, inquire, li, dic)

elif'=

'in lis[1]:

lis8 = lis[1].split('='

)

if lis8[0].strip() in dic and dic[lis8[0].strip()] == lis8[1].strip():

show(i, inquire, li, dic)

elif

'like'in

lis[0]:

lis8 = lis[1].split('

like')

if lis8[1].strip() in dic and lis8[1].strip() in

dic[lis8[0].strip()]:

show(i, inquire, li, dic)

with open(

'staff_information

',encoding='

utf-8

') as f:

inquire = input('

請輸入語句:

').strip()

for i in

f: li =

lis = i.strip().split(','

) dic =

#把檔案內容分割後(注意每分割必先除去前後空字元),然後把每個元素放入乙個key是代表每列內容名字的字典中

filt(i, inquire, li, dic) #

過濾檔案內容並按使用者要求彷彿列表中

if li:print

(li)

#用胡輸入的查詢語句如下:

#select name,age where age >22

#select * where phone like 135

#selext name where post=hr

員工資訊表查詢

優雅的使用python

優雅的使用python,讓自己的code更pythonic test list 龍母 雪諾 提里昂 山姆 count 0 for name in test list print s的序號是 d name,count count 1龍母的序號是 0 雪諾的序號是 1 提里昂的序號是 2 山姆的序號是 ...

優雅的使用git

git config global user.name git config global user.email com 2.對於git遠端庫的訪問有兩種訪問協議,一種是https協議。另一種是ssh協議。當我們使用https協議的時候,當我們進行拉取或者推送的時候會提示我們輸入使用者名稱和密碼。另...

優雅的使用UITableView(Swift 中)

在優雅的使用uitableview oc 上 中,已經給大家分享了怎麼使用uitableview,優雅的構建乙個頁面。怎麼把優雅的使用uitableview oc 上 的思路搬到swift 泛型和any的區別 在swift中優雅的使用uitableview構建list頁面 再回憶一下這張圖 其中關鍵...