Python Learning Day2

練習: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文件中的語法錯誤,不具體執行代碼

相關文章
相關標籤/搜索