寫一些函數相關的作業
阿新 • • 發佈:2018-08-03
兩個 isa break Coding 其他 utf-8 完成 inpu 判斷
#1、寫函數,檢查獲取傳入列表或元組對象的所有奇數位索引對應的元素,並將其作為新列表返回給調用者 def func(l): return l[1::2] print(func([1,2,3,4,5,6])) #2、寫函數,判斷用戶傳入的對象(字符串、列表、元組)長度是否>5 def func(x): return len(x)>5 #計算的表達式都是一個布爾表達式,結果是一個True/False print(func([1,2,3,4])) #3、寫函數,檢查傳入列表的長度,如果大於2則保留前兩個長度的內容,並將新內容返回 def func(l): return l[:2] #切片的長度如果大於原序列的長度,不會報錯,有多長且多長 print(func([1])) #4、寫函數,計算傳入字符串中 數字、字母、空格、其他字符的個數,並返回結果 def func(s): dic = {‘num‘:0,‘alpha‘:0,‘space‘:0,‘others‘:0} for i in s: if i.isdigit(): dic[‘num‘] += 1 elif i.isalpha(): dic[‘alpha‘] += 1 elif i.isspace(): dic[‘space‘] += 1 else: dic[‘others‘] += 1 return dic print(func(‘sfd345 fsd gdh -=-a=x‘)) #5、寫函數,檢查用戶傳入的對象的每一個元素是否含有空內容,並返回結果 def func(x): if x and type(x) is str: for i in x: if i == ‘ ‘: return True elif x and type(x) is list or type(x) is tuple: for i in x: if not i: return True elif not x: return True else: return True print(func([1,2,3,‘hhhj ‘])) #6、寫函數,檢查傳入的字典的每一個value的長度,如果大於2,那個保留前兩個長度的內容,並返回新內容 def func(dic): for k in dic: if len(dic[k]) >2: dic[k] = dic[k][:2] return dic print(func({1:‘wangjing‘,2:[1,2,3,4]})) #7、寫函數,接收2個數字參數,返回比較大的數字 def func(a,b): return a if a>b else b #max(a,b) print(func(5,4)) #8、寫函數,用戶傳入修改的文件名 與 要修改的內容,執行函數,完成整個文件的批量修改操作 def func(file,old,new): with open(file,mode=‘r‘,encoding=‘utf-8‘) as f1, open(‘{}.bak‘.format(file),mode = ‘w‘,encoding = ‘utf-8‘) as f2: for line in f1: if old in line: line = line.replace(old,new) f2.write(line) import os os.remove(file) os.rename(‘{}.bak‘.format(file),file) func(‘wj_file‘,‘wangjing‘,‘wangxiao‘)
‘‘‘ 作業 1、先註冊,註冊結果寫到txt文件,並打印 2、三次登錄,讀取文件驗證 ‘‘‘ def register(): user = ‘‘ while 1: name = input(‘請輸入您的用戶名:‘) if name.upper() == ‘Q‘: print(‘結束註冊,請登錄‘) break pwd = input(‘請輸入您的密碼:‘) if pwd.upper() == ‘Q‘: print(‘結束註冊,請登錄‘) break elif len(name) <= 10 and len(name) >= 6 and len(pwd) <= 10 and len(pwd) >= 6: with open(‘wj_users‘, mode=‘a‘, encoding=‘utf-8‘) as txt_users: txt_users.write(‘{},{}\n‘.format(name, pwd)) print(‘恭喜您註冊成功‘) else: print(‘用戶名/密碼不符合規範,請重新註冊‘) def get_users(file): dict_user = {} with open(file, mode=‘r‘, encoding=‘utf-8‘) as txt_users: for line in txt_users: dict_user[line[:line.find(‘,‘)]] = line[line.find(‘,‘) + 1:].strip() return dict_user def login(dict_user): time = 3 while time > 0: input_name = input(‘請輸入您的用戶名:‘) input_pwd = input(‘請輸入您的密碼:‘) time -= 1 if input_name in dict_user.keys() and input_pwd == dict_user[input_name]: print(‘恭喜您登錄成功‘) break else: if time <= 0: print(‘用戶名/密碼錯誤,您沒有登錄機會,強制退出成功‘) else: print(‘用戶名/密碼錯誤,請重試‘) print(‘以下進入註冊流程‘.center(50, ‘=‘)) register() users = get_users(‘wj_users‘) print(‘以下進入登錄流程‘.center(50,‘=‘)) login(users)
寫一些函數相關的作業