練習:login功能python
def login(): with open(r'C:\Users\liubin\desktop\user.txt','r') as f: res=f.read() flag=1 list=res.split(',') while flag: user = input('請輸入用戶名:').strip() for i in range(len(list)): if '用戶名' in list[i]: if(user==list[i][4:]): r_pwd=list[i+1][3:] flag=0 break else: print('用戶名未註冊!') print('從新輸入!') for i in range(4): pwd = input('請輸入密碼:').strip() if pwd==r_pwd: print('登陸成功!') break else: print('用戶名或密碼錯誤!從新輸入!') login()
列表app
1.insert()函數
# 第一個參數: 索引 第二個參數: 插入的值 list1 = ['tank', 18, 'male', 3.0, 9, '廣東', 'tank', [1, 2]]
list1.insert(2, 'oldboy')
print(list1)
2.pop()編碼
3.remove()spa
4.count()指針
print(list1.count('tank'))
5.index()code
print(list1.index('廣東'), '---廣東')
6.clear()orm
list1.clear() print(list1)
7.copy()視頻
# 將list1的內存地址淺拷貝賦值給list2 list2 = list1.copy() print(list2, '添加值前') # 將list1的原地址直接賦值給了list3 list3 = list1 print(list3, '添加值前') # 深拷貝() from copy import deepcopy # 將list1的值深拷貝賦值給list4 list4 = deepcopy(list1) # 追加jason到list1中國 list1.append('jason') print(list2, '添加值後') print(list3, '添加值後') # 給list1中的可變列表進行追加值 list1[8].append('tank') # 打印直接賦值、深、淺拷貝的結果 # 淺拷貝: list1的列表中外層值改變對其不影響 # 但對list1中的可變類型進行修改則會隨之改變值 print(list2) print(list3) # 深拷貝: 把list1中的全部值徹底拷貝到一個新的地址中 # 進而與list1徹底隔離開 print(list4)
8.extend() blog
list1 = [1, 2, 3] list2 = [4, 5, 6] list1.extend(list2) print(list1)
9.reverse()
list1.reverse() print(list1)
10.sort()
list3 = [1, 3, 5, 8, 10, 2, 4, 6] # 升序 # list3.sort() # print(list3) # 降序 list3.sort(reverse=True) print(list3)
tab : 往右空四個空格
shift + tab : 往左減四個空格
字典
一、按照key取/存值
dict1 = {'name': 'ABC', 'age': 18, 'sex': 'male', 'school': '安工程'} # 根據key提取學校 print(dict1['school']) print(dict1['sal']) # get() # 第一個參數是字典的key # 第二個參數是默認值,若key存在則取key對應的值,不然取默認值 print(dict1.get('school', '華南理工')) print(dict1.get('sal', '15000'))
2.長度
print(len(dict1))
三、成員運算in和not in
print('name' in dict1) # True print('sal' in dict1) # False print('sal' not in dict1) # True
4.刪除
del dict1["name"] print(dict1) # pop() # 根據字典中的key取出對應的值賦值給變量name name = dict1.pop('name') print(dict1) print(name)
5.keys.values.items
print(dict1.keys()) print(dict1.values()) print(dict1.items())
6.循環
for key in dict1: print(key)
7.update()
print(dict1) dict2={‘work':'student'} #dict2加入dict1字典中 dict1.update(dict2) print(dict1)
元組類型(在小括號內,以逗號隔開存放多個值)
tuple1=(1,2,3) print(tuple1)
1.按照索引值
print(tuple1[2])
2.切片,顧頭不顧尾
print(tuple1[0:6]) print(tuple1[0:6:2])
3.長度
print(len(tuple1))
4.成員運算 in 和 not in
print(1 in tuple1) print(1 not in tuple1)
5.循環
for line in tuple1: print(line)
集合類型
在{ }內,以逗號隔開,可存放多個值,但集合默認去重功能
set1={1,2,3,4,1,2,3,4} print(set1)
集合是無序的
set1=set() set2={} print(set1) print(set2) set2['name']='tank' print(type(set2))
文件讀寫基本使用
open(參數1:絕對路徑 文件名字,參數2:模式,參數3:指定字符編碼)
f : 稱之爲 句柄
寫文件 文件開始位置指針覆蓋寫入
f=open('C:\\Users\\liubin\\Desktop\\文件名字.txt', mode='r+', encoding="utf-8") f.write('hello world') f.close()
讀文件
f=open('C:\\Users\\liubin\\Desktop\\文件名字.txt', 'r', encoding="utf-8") print(f.read()) f.close()
文件追加模式 文件末尾指針追加
f=open('C:\\Users\\liubin\\Desktop\\文件名字.txt', 'a', encoding="utf-8") f.write('asdf') f.close()
文件處理上下文管理:with
with自帶close()
寫文件
with open('C:\\Users\\liubin\\Desktop\\文件名字.txt', mode='w', encoding="utf-8") as f: f.write('life is fantastic')
讀文件
with open('C:\\Users\\liubin\\Desktop\\文件名字.txt', mode='r', encoding="utf-8") as f: print(f.read())
追加
with open('C:\\Users\\liubin\\Desktop\\文件名字.txt', 'a', encoding="utf-8") as f: f.write('asdf')
圖片操做
寫入圖片
import requests res=requests.get('http://pic15.nipic.com/20110628/1369025_192645024000_2.jpg') with open('C:\\Users\\liubin\\Desktop\\2.jpg', 'wb') as f: f.write(res.content)
讀取圖片
with open('C:\\Users\\liubin\\Desktop\\2.jpg', 'rb') as f: res=f.read() print(res)
文件拷貝
with open('C:\\Users\\liubin\\Desktop\\2.jpg','rb') as f,open('C:\\Users\\liubin\\Desktop\\3.jpg','wb') as w: res=f.read() w.write(res)
讀寫視頻
with open('視頻文件.mp4') as f,open('視頻文件.mp4','wb') as w: res = w.read() print(res) w.write(res)
一行一行讀文件,一次打開全部內容致使內存溢出,一行行寫入能夠避免
with open(r'C:\\Users\\liubin\\desktop\\01.mp4','rb') as f,open('C:\\Users\\liubin\\desktop\\03.mp4','wb') as w: for line in f: w.write(line)
函數#註冊功能
def register(): user = input('請輸入用戶名:').strip() pwd = input('請輸入密碼:').strip() re_pwd = input('請再輸入密碼:').strip() while True: if pwd == re_pwd: # user_info = '用戶名:%s,密碼:%s'%(user,pwd) # user_info = '用戶名:{},密碼:{}'.format(user,pwd) user_info = f'用戶名:{user},密碼:{pwd}' # 把用戶信息寫入文件 with open(r'C:\Users\liubin\desktop\user.txt','w') as f: f.write(user_info) break else: print('兩次密碼不一致,從新輸入!') register()
函數在定義階段發生如下事件:
發開python解釋器
加載py文件
檢測py文件中的語法錯誤,不具體執行代碼