1. 程式人生 > >python學習第三天練習

python學習第三天練習

作業:

1、寫函式,,使用者傳入修改的檔名,與要修改的內容,執行函式,完成批了修改操作


2、寫函式,計算傳入字串中【數字】、【字母】、【空格] 以及 【其他】的個數

def count_str(x):
#計算字串中字元種類個數的函式
sum1=0
sum2=0
sum3=0
sum4=0
for i in x:
if i.isdigit():
sum1+=1
elif i.isalpha():
sum2+=1
elif i.isspace():
sum3+=1
else:
sum4+=1
s={'數字':sum1,'字母':sum2,'空格':sum3,'其他':sum4}
print(s)
count_str('asd
[email protected]
$SAd weq')

3、寫函式,判斷使用者傳入的物件(字串、列表、元組)長度是否大於5。

4、寫函式,檢查傳入列表的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。

def c_list(x):
print(len(x))
if len(x)>2:
return x[0:2]
res=c_list([1,2,3,4,5])
print(res)

5、寫函式,檢查獲取傳入列表或元組物件的所有奇數位索引對應的元素,並將其作為新列表返回給呼叫者。

def c_count(x):
print(len(x))
j=0
s=[]
while j<len(x):
if j%2!=0:
s.append(x[j])
j+=1
print(s)
return s
c_count((1,2,3,4,5,6,7))

6、寫函式,檢查字典的每一個value的長度,如果大於2,那麼僅保留前兩個長度的內容,並將新內容返回給呼叫者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字串或列表

 

def c_new(x):
for item in x:
print(item,len(x[item]))

if len(x[item])>2:
x[item]=x[item][0:2]
print(x)
return x
c_new({"k1": "v1v1", "k2": [11,22,33,44]})

二、有以下員工資訊表

 

當然此表你在檔案儲存時可以這樣表示

1,Alex Li,22,13651054608,IT,2013-04-01

現需要對這個員工資訊檔案,實現增刪改查操作
  1. 可進行模糊查詢,語法至少支援下面3種:
    1.   select name,age from staff_table where age > 22
    2.   select  * from staff_table where dept = "IT"
    3.       select  * from staff_table where enroll_date like "2013"
    4. 查到的資訊,列印後,最後面還要顯示查到的條數 
  2. 可建立新員工紀錄,以phone做唯一鍵,staff_id需自增
  3. 可刪除指定員工資訊紀錄,輸入員工id,即可刪除
  4. 可修改員工資訊,語法如下:
    1.   UPDATE staff_table SET dept="Market" WHERE where dept = "IT"

 注意:以上需求,要充分使用函式,請盡你的最大限度來減少重複程式碼!

這個真是太難了!!只寫了一個查詢

sql = input('please input sql>>:').strip().split()
h=sql[1].split(',')
l=[]

with open('db.txt', 'r+', encoding='utf-8')as f1:
a = f1.readline().strip('\n').split(',')
if h[0] != '*':
print(h)
for line in f1:
b = line.strip('\n').split(',')
# print(b)
c = 0
dic = {}
while c < len(a):
dic.update({a[c]: b[c]})
c += 1
# dic={a[0]:b[0],a[1]:b[1],a[2]:b[2],a[3]:b[3],a[4]:b[4],a[5]:b[5]}
# print(a)
# print(dic)
d = 0
if sql[6] is '>':
if dic[sql[5]] > sql[7]:
while d < len(h):
l.append(dic[h[d]])
# print(dic[h[d]],end='')
d += 1
print(l)
l.clear()

elif sql[6] is '=':
if dic[sql[5]] == sql[7]:
while d < len(h):
l.append(dic[h[d]])
# print(dic[h[d]], end='')
d += 1
print(l)
l.clear()

elif sql[6] == 'like':
e=sql[7].strip('"').strip("'")
# print(e)
if e in dic[sql[5]] :
while d < len(h):
l.append(dic[h[d]])
# print(dic[h[d]], end='')
d += 1
print(l)
l.clear()
# print(l)
elif h[0] == '*':
print(a)
for line in f1:
b = line.strip('\n').split(',')
# print(b)
c = 0
dic = {}
while c < len(a):
dic.update({a[c]: b[c]})
c += 1
# dic={a[0]:b[0],a[1]:b[1],a[2]:b[2],a[3]:b[3],a[4]:b[4],a[5]:b[5]}
# print(a)
# print(dic)
d = 0
if sql[6] is '>':
if dic[sql[5]] > sql[7]:
while d < len(dic):
l.append(b[d])
# print(b[d],end='')
d += 1
print(l)
l.clear()


elif sql[6] is '=':
if dic[sql[5]] == sql[7]:
while d < len(dic):
l.append(b[d])
# print(b[d], end='')
d += 1
print(l)
l.clear()

elif sql[6] == 'like':
e = sql[7].strip('"').strip("'")
# print(e)
if e in dic[sql[5]] :
while d < len(dic):
l.append(b[d])
# print(b[d], end='')
d += 1
print(l)
l.clear()