Python学习心得——基础知识(六)
生活随笔
收集整理的這篇文章主要介紹了
Python学习心得——基础知识(六)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、lambda表達式
1、定義
針對簡單的函數,用lambda表達式來展現更方便。
2、樣例
1 #普通函數 2 def f1(a): 3 return a+1 4 print(f1(7)) 5 6 #用lambda表達式來實現 7 8 f2=lambda a: a+1 9 print(f2(7))?
二、python內置函數
1、常見內置函數表
2、需要熟練掌握的內置函數如下
abs(),all(),any(),bin(),bool(),bytes(),chr(),dict(),dir(),divmod(),enumerate(),eval(),filter(),float(),globals(),help(),hex(),id(),input(),int(),isinstance(),len(),list(),locals(),map(),max(),min(),oct(),open(),ord(),pow(),print(),range(),round(),set(),sorted(),str(),sum(),tuple(),type()
?
三、隨機驗證碼實例
此處引用了老師的隨機驗證碼實例。
1 #實現六位隨機驗證碼,包括數字與大寫字母 2 import random 3 temp = '' 4 for i in range(6): 5 num = random.randrange(0,5) #讓出現數字的位置隨機 6 if num == 1 or num == 3: 7 rad1 = random.randrange(0,10) 8 temp = temp + str(rad1) 9 else: 10 rad2 = random.randrange(65,91) 11 temp = temp + chr(rad2) 12 print(temp)?
四、內置函數的排序方法
1、方式一
1 #sort()排序,對象的元素必須是同類型 2 3 li=[10,8,5,28,9,6] 4 li.sort() 5 print(li)?
?
?
五、文件操作
1、打開文件
文件句柄=open('文件路徑','模式')
?
2、打開文件模式
| 模式 | 描述 |
| r | 只讀模式【默認】 |
| r+ | 讀寫【可讀,可寫】 |
| rb | 以二進制格式讀取,文件指針放在文件開頭 |
| rb+ | 以二進制讀取和寫入方式打開文件 |
| w | 只寫模式【不可讀;不存在則創建;存在則清空內容;】 |
| w+ | 寫讀【可讀,可寫】 |
| wb | 打開文件以二進制方式寫入,文件存在則覆蓋,不存在則創建新文件 |
| wb+ | 以二進制方式寫入和讀取文件,存在則覆蓋現有文件,不存在則創建新文件 |
| x | 只寫模式【不可讀;不存在則創建,存在則報錯】 |
| x+ | 寫讀【可讀,可寫】 |
| a | 追加模式【不可讀; ? 不存在則創建;存在則只追加內容;】 |
| a+ | 寫讀【可讀,可寫】 |
| ab | 以二進制格式追加在文件末尾,不存在則創建該文件 |
?
3、常見操作方法
1 class TextIOWrapper(_TextIOBase): 2 """ 3 Character and line based layer over a BufferedIOBase object, buffer. 4 5 encoding gives the name of the encoding that the stream will be 6 decoded or encoded with. It defaults to locale.getpreferredencoding(False). 7 8 errors determines the strictness of encoding and decoding (see 9 help(codecs.Codec) or the documentation for codecs.register) and 10 defaults to "strict". 11 12 newline controls how line endings are handled. It can be None, '', 13 '\n', '\r', and '\r\n'. It works as follows: 14 15 * On input, if newline is None, universal newlines mode is 16 enabled. Lines in the input can end in '\n', '\r', or '\r\n', and 17 these are translated into '\n' before being returned to the 18 caller. If it is '', universal newline mode is enabled, but line 19 endings are returned to the caller untranslated. If it has any of 20 the other legal values, input lines are only terminated by the given 21 string, and the line ending is returned to the caller untranslated. 22 23 * On output, if newline is None, any '\n' characters written are 24 translated to the system default line separator, os.linesep. If 25 newline is '' or '\n', no translation takes place. If newline is any 26 of the other legal values, any '\n' characters written are translated 27 to the given string. 28 29 If line_buffering is True, a call to flush is implied when a call to 30 write contains a newline character. 31 """ 32 def close(self, *args, **kwargs): # real signature unknown 33 關閉文件 34 pass 35 36 def fileno(self, *args, **kwargs): # real signature unknown 37 文件描述符 38 pass 39 40 def flush(self, *args, **kwargs): # real signature unknown 41 刷新文件內部緩沖區 42 pass 43 44 def isatty(self, *args, **kwargs): # real signature unknown 45 判斷文件是否是同意tty設備 46 pass 47 48 def read(self, *args, **kwargs): # real signature unknown 49 讀取指定字節數據 50 pass 51 52 def readable(self, *args, **kwargs): # real signature unknown 53 是否可讀 54 pass 55 56 def readline(self, *args, **kwargs): # real signature unknown 57 僅讀取一行數據 58 pass 59 60 def seek(self, *args, **kwargs): # real signature unknown 61 指定文件中指針位置 62 pass 63 64 def seekable(self, *args, **kwargs): # real signature unknown 65 指針是否可操作 66 pass 67 68 def tell(self, *args, **kwargs): # real signature unknown 69 獲取指針位置 70 pass 71 72 def truncate(self, *args, **kwargs): # real signature unknown 73 截斷數據,僅保留指定之前數據 74 pass 75 76 def writable(self, *args, **kwargs): # real signature unknown 77 是否可寫 78 pass 79 80 def write(self, *args, **kwargs): # real signature unknown 81 寫內容 82 pass 83 84 def __getstate__(self, *args, **kwargs): # real signature unknown 85 pass 86 87 def __init__(self, *args, **kwargs): # real signature unknown 88 pass 89 90 @staticmethod # known case of __new__ 91 def __new__(*args, **kwargs): # real signature unknown 92 """ Create and return a new object. See help(type) for accurate signature. """ 93 pass 94 95 def __next__(self, *args, **kwargs): # real signature unknown 96 """ Implement next(self). """ 97 pass 98 99 def __repr__(self, *args, **kwargs): # real signature unknown 100 """ Return repr(self). """ 101 pass 102 103 buffer = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 104 105 closed = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 106 107 encoding = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 108 109 errors = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 110 111 line_buffering = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 112 113 name = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 114 115 newlines = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 116 117 _CHUNK_SIZE = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 118 119 _finalizing = property(lambda self: object(), lambda self, v: None, lambda self: None) # default 120 121 3.x 3.04、寫文件樣例
1 f1=open('jishiben.txt','w+') 2 f1.write('hello\n') 3 f1.close()#還有個writelines()方法,寫入的是一個LIST類型參數
5、讀文件樣例
f2=open('jishiben.txt','r') print(f2.read())#還有個readlines()方法,讀得是一個list內容
?
六、用戶登錄驗證樣例
#!usr/bin/env python# -*- coding: utf-8 -*-
'''
作業要求
結合文件實現
#實現用戶登錄
#實現用戶注冊
#判斷用戶存在性
#實現刪除用戶
#實現修改密碼
'''
#用戶選擇操作類型
def f1(args):
"""
用于實現調用各種操作類型的函數
:param args: 操作類型序號
:return: 若調用成功,返回True,否則返回False
"""
if args==1:
name=input('請您輸入用戶名:')
pwd=input('請您輸入密碼:')
result=f2(name,pwd)
if result:
print('登錄成功!')
else:
print('登錄失敗,用戶名或密碼錯誤!')
if args==2:
name=input('請您輸入注冊的用戶名:')
pwd=input('請您輸入注冊密碼:')
is2_f4=f4(name)
if is2_f4:
print('用戶名已存在,無法注冊!')
else:
result2=f3(name,pwd)
if result2:
print('用戶注冊成功!')
else:
print('用戶注冊失敗!')
if args==3:
name=input('請您輸入要修改密碼的用戶名:')
is3_f4=f4(name)
if is3_f4:
pwd=input('請您輸入新密碼:')
is3_f5=f5(name,pwd)
if is3_f5:
print('密碼修改成功!')
else:
print('密碼修改失敗!')
else:
print('您輸入的用戶名不存在!')
if args==4:
name=input('請您輸入要刪除的用戶名:')
is4_f4=f4(name)
if is4_f4:
is4_f6=f6(name)
if is4_f6:
print('成功刪除用戶!')
else:
print('刪除用戶失敗!')
else:
print('您輸入的用戶名不存在!')
#用戶登錄
def f2(name,pwd):
"""
用于驗證用戶登錄
:param name: 登錄的用戶名
:param pwd: 登錄的用戶名密碼
:return: 如果用戶名與密碼正確,返回True,否則返回False
"""
with open('login.txt','r',encoding='utf-8') as f:
for line in f:
line=line.strip()
line_list=line.split('@')
if name==line_list[0] and pwd==line_list[1]:
return True
return False
#用戶注冊
def f3(name,pwd):
with open('login.txt','a',encoding='utf-8') as f:
temp='\n'+name+'@'+pwd
f.write(temp)
return True
#用戶存在性
def f4(name):
'''
驗證用戶名是否在文件中已存在
:param name: 輸入的用戶名
:return: 若輸入的用戶名在文件中已存在,返回True,否則返回False
'''
with open('login.txt','r',encoding='utf-8') as f:
for line in f:
line=line.strip()
line_list=line.split('@')
if name==line_list[0]:
return True
return False
#修改密碼
def f5(name,pwd):
'''
實現修改密碼功能,讀取原文件login的內容,替換成新密碼,然后重新寫入到文件login
:param name: 需要修改密碼的用戶名
:param pwd: 新密碼
:return: 修改成功,返回True ,修改失敗,返回False
'''
s=[]
with open('login.txt','r+',encoding='utf-8') as f:
for line in f:
line=line.strip()
line_list=line.split('@')
if name==line_list[0]:
temp=name+'@'+pwd
s.append(temp)
else:
s.append(line)
f.seek(0)
for i in s:
f.write(i+'\n')
return True
#刪除用戶
def f6(name):
'''
實現刪除用戶功能,讀取原文件login的內容,過濾掉刪除用戶,然后重新寫入到文件login
:param name: 要刪除的用戶名
:return: 刪除成功,返回True;刪除失敗,返回False
'''
m=[]
with open('login.txt','r+',encoding='utf-8') as f:
for line in f:
line=line.strip()
line_list=line.split('@')
if name==line_list[0]:
continue
else:
m.append(line)
f.seek(0)
for i in m:
f.write(i+'\n')
return True
print('用戶登錄請輸入 1\n用戶注冊請輸入 2\n修改用戶密碼請輸入 3\n刪除用戶請輸入 4')
a=int(input('請您輸入操作內容: '))
result=f1(a) ?
?
轉載于:https://www.cnblogs.com/haoyun2016/p/5541902.html
總結
以上是生活随笔為你收集整理的Python学习心得——基础知识(六)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第二阶段团队项目冲刺第六天
- 下一篇: IOS7笔记-6、控制器多态性、导航控制