欧美精品麻豆,国产一二三在线,亚洲午夜精品久久久久久app http://www.lalz.net 你的IT之家,站長網(wǎng)絡(luò)技術(shù)學(xué)習(xí)、網(wǎng)站賺錢方法交流之家 Tue, 19 Nov 2024 06:29:10 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.1 python 連接數(shù)據(jù)庫出現(xiàn):’cryptography’packageisrequiredforsha256_passwordorcaching_sha2_passwordauthmethods http://www.lalz.net/7270.html http://www.lalz.net/7270.html#respond Wed, 20 Nov 2024 00:33:00 +0000 http://www.lalz.net/?p=7270 python 連接數(shù)據(jù)庫出現(xiàn):'cryptography'packageisrequiredforsha256_passwordorcaching_sha2_passwordauthmethods的解決方法:

該錯誤提示的意思是:sha256_password和caching_sha2_password兩種加密方式需要cryptography。

所以只需要安裝一下cryptography包就可以了: pip install cryptography

]]>
http://www.lalz.net/7270.html/feed 0
2種Python學(xué)生單科成績信息管理系統(tǒng) http://www.lalz.net/7253.html http://www.lalz.net/7253.html#respond Mon, 14 Oct 2024 00:34:00 +0000 http://www.lalz.net/?p=7253 1.使用字典、循環(huán)重構(gòu)學(xué)生管理系統(tǒng)




import os
 
#存儲操作員信息
adm_dict = {
    "tom": {"username": "tom", "password": "123", "nickname": "tom"},
    "jerry": {"username": "jerry", "password": "456", "nickname": "jerry"}
}
 
#存儲學(xué)員信息
stu_dict = {
    "001": {"id": "001", "name": "張三", "age": "18", "sex": "男", "grade": "98"}
}
 
#存放當(dāng)前操作員昵稱
nick = None
 
while True:
    nick = None         #每次回到首頁時,重置當(dāng)前用戶名稱
    os.system('cls')
    print("      學(xué)生管理系統(tǒng)")
    print("------------------------")
    print("1.操作員登錄")
    print("2.操作員注冊")
    print("3.退出系統(tǒng)")
    print("------------------------")
    c = input("輸入您的選項:").strip()
 
    if c == "1":
        print("       操作員登錄頁")
        print("--------------------------")
        username = input("請輸入賬戶名:").strip()
        password = input("請輸入密碼:").strip()
 
        for adm in adm_dict.values():
            if username == adm['username'] and password == adm['password']:
                nick = adm["nickname"]           # 當(dāng)前登錄用戶名稱
                while True:
                    os.system('cls')
                    print(f"         學(xué)生管理系統(tǒng)-主頁     {[nick]}")
                    print("-------------------------------------")
                    print("1.錄入學(xué)員信息")
                    print("2.刪除學(xué)員信息")
                    print("3.修改學(xué)員信息")
                    print("4.查詢所有學(xué)員")
                    print("5.退出系統(tǒng)")
                    print("-------------------------------------")
                    c2 = input("請輸入選項:").strip()
 
                    if c2 == "1":
                        print(f"       學(xué)生管理系統(tǒng)-錄入學(xué)員    {[nick]}")
                        print("-------------------------------------")
                        id = input("請輸入學(xué)號:").strip()
                        name = input("請輸入姓名:").strip()
                        age = input("請輸入年齡:").strip()
                        sex = input("請輸入性別:").strip()
                        grade = input("請輸入計算機(jī)成績:").strip()
                        print("-------------------------------------")
                        stu_dict[id] = {"id": id, "name": name, "age": age, "sex": sex, "grade": grade}
                        input("學(xué)員信息錄入成功,按任意鍵返回主頁")
 
                    elif c2 == "2":
                        print(f"       學(xué)生管理系統(tǒng)-刪除學(xué)員    {[nick]}")
                        print("-------------------------------------")
                        id = input("請輸入要刪除學(xué)員的學(xué)號:").strip()
                        print("------------------------------------------------------------------")
                        for stu in stu_dict.values():
                            if id == stu['id']:
                                print('學(xué)號----+-----姓名----+-----年齡----+-----性別----+-----計算機(jī)成績----')
                                print(stu.get("id"),  stu.get("name"),  stu.get("age"),
                                      stu.get("sex"),  stu.get("grade"), sep="----+-----")
                                print("------------------------------------------------------------------")
                                confirm = input("確認(rèn)刪除(Y/N)?").upper()
                                if confirm == "Y":
                                    stu_dict.pop(id)
                                    input("學(xué)員信息刪除成功,按任意鍵返回主頁")
                                else:
                                    input("用戶取消了刪除操作,按任意鍵返回主頁")
                                break
                        else:
                            input("不存在該學(xué)號對應(yīng)的學(xué)生,按任意鍵返回主頁面!")
 
                    elif c2 == "3":
                        print(f"       學(xué)生管理系統(tǒng)-修改學(xué)員信息    {[nick]}")
                        print("-----------------------------------------")
                        id = input("請輸入要修改的學(xué)號:").strip()
                        print("------------------------------------------------------------------")
                        for stu in stu_dict.values():
                            if id == stu['id']:
                                print('學(xué)號----+-----姓名----+-----年齡----+-----性別----+-----計算機(jī)成績----')
                                print(stu.get("id"), stu.get("name"), stu.get("age"),
                                      stu.get("sex"), stu.get("grade"), sep="----+-----")
                                print("------------------------------------------------------------------")
                                ch = input("請輸入要修改的屬性(1.姓名 2.性別 3.年齡):").strip()
 
                                if ch == "1":  # 修改姓名
                                    name = input("請輸入新的姓名:").strip()
                                    stu["name"] = name
                                elif ch == "2":  # 修改性別
                                    sex = input("請輸入新的性別:").strip()
                                    stu["sex"] = sex
                                elif ch == "3":  # 修改年齡
                                    age = input("請輸入新的年齡:").strip()
                                    stu["age"] = age
                                else:
                                    input("輸入錯誤,按任意鍵返回主頁")
                                    break
                                input("修改完成,按任意鍵返回主頁")
                                break
                        else:
                            input("沒有查詢到該編號的學(xué)員,按任意鍵返回主頁")
 
                    elif c2 == "4":
                        print(f"                     學(xué)生管理系統(tǒng)-查看所有學(xué)員                  {[nick]}")
                        print("---------------------------------------------------------------------")
                        print("學(xué)號----+-----姓名----+-----年齡----+-----性別----+-----計算機(jī)成績----")
                        for stu in stu_dict.values():
                            print(stu.get("id"), stu.get("name"), stu.get("age"),
                                  stu.get("sex"), stu.get("grade"), sep="----+-----")
                        print("---------------------------------------------------------------------")
                        input("按任意鍵返回主頁")
 
                    elif c2 == "5":
                        input("按下任意鍵退出系統(tǒng)")
                        exit()
 
                    else:
                        input("按任意鍵重新選擇")
 
        else:
            input("賬號或密碼錯誤,按下任意鍵回到首頁!")
 
    elif c == "2":
        print("       操作員注冊頁")
        print("-------------------------")
        username = input("請輸入用戶名:").strip()
        flag = 0               #字典在遍歷過程中不允許修改,設(shè)置標(biāo)志flag確定后續(xù)操作
        for adm in adm_dict.values():
            if username == adm['username']:
                flag = 0
                break
            else:
                flag = 1
 
        if flag == 0:
            input("該賬號已存在,按任意鍵返回首頁")
        else:
            password = input("請輸入密碼:").strip()
            password2 = input("請確認(rèn)密碼:").strip()
            nickname = input("請輸入昵稱:").strip()
            if password == password2:
                adm_dict[username] = {"username": username, "password": password, "nickname": nickname}
                print("-------------注冊成功-------------")
                input("請按下任意鍵回到首頁")
            else:
                input("兩次密碼不一致,請按下任意鍵回到首頁")
 
    elif c == "3":
        input("按下任意鍵退出系統(tǒng)!")
        exit()
 
    else:
        print("輸入有誤,重新輸入")

2.使用字典、函數(shù),構(gòu)建學(xué)生管理系統(tǒng)

import os
 
#存儲操作員信息
adm_dict = {
    "tom": {"username": "tom", "password": "123", "nickname": "tom"},
    "jerry": {"username": "jerry", "password": "456", "nickname": "jerry"}
}
 
#存儲學(xué)員信息
stu_dict = {
    "001": {"id": "001", "name": "張三", "age": "18", "sex": "男", "grade": "98"}
}
 
#存放當(dāng)前操作員昵稱
nick = None
 
 
####################################################### 退出系統(tǒng)函數(shù) #########
def do_exit():
    global nick  #每次退出系統(tǒng)時重置當(dāng)前用戶名稱
    nick = None
    input("按下任意鍵退出系統(tǒng)!")
    exit()
 
 
########################################################## 注冊頁函數(shù) ############
def register_page():
    print("       操作員注冊頁")
    print("-------------------------")
    username = input("請輸入用戶名:").strip()
    flag = 0  #字典在遍歷過程中不允許修改,設(shè)置標(biāo)志flag確定后續(xù)操作
    for adm in adm_dict.values():
        if username == adm["username"]:
            flag = 0
            break
        else:
            flag = 1
 
    if flag == 0:
        n = input("該賬號已存在,按1重新注冊,按其它鍵回到登錄菜單")
        if n == "1":
            return register_page()
        else:
            return login_menu()
    else:
        password = input("請輸入密碼:").strip()
        password2 = input("請確認(rèn)密碼:").strip()
        nickname = input("請輸入昵稱:").strip()
        if password == password2:
            adm_dict[username] = {"username": username, "password": password, "nickname": nickname}
            print("-------------注冊成功-------------")
            input("請按下任意鍵返回登錄菜單")
            return login_menu()
        else:
            input("兩次密碼不一致,請按下任意鍵重新注冊")
            return register_page()
 
 
########################################################## 登錄頁函數(shù) ############
def login_page():
    global nick  #每次回到登錄頁時,重置當(dāng)前用戶名稱
    nick = None
    print("       操作員登錄頁")
    print("--------------------------")
    username = input("請輸入賬戶名:").strip()
    password = input("請輸入密碼:").strip()
 
    for adm in adm_dict.values():
        if username == adm["username"] and password == adm["password"]:
            nick = adm["nickname"]  #當(dāng)前登錄用戶名稱
            return function_menu()
    else:
        input("賬號或密碼錯誤,按下任意鍵回到首頁!")
        return login_menu()
 
 
########################################################## 功能頁函數(shù) ############
def function_menu():
    print(f"         學(xué)生管理系統(tǒng)-主頁     {[nick]}")
    print("-------------------------------------")
    print("1.錄入學(xué)員信息")
    print("2.刪除學(xué)員信息")
    print("3.修改學(xué)員信息")
    print("4.查詢所有學(xué)員")
    print("5.退出登錄")
    print("6.退出系統(tǒng)")
    print("-------------------------------------")
    c2 = input("請輸入選項:").strip()
 
    if c2 == "1":
        add()
    elif c2 == "2":
        delete()
    elif c2 == "3":
        update()
    elif c2 == "4":
        search()
    elif c2 == "5":
        return login_menu()
    elif c2 == "6":
        return do_exit()
    else:
        input("輸入不正確,按下任意鍵回到功能主頁")
        return function_menu()
 
 
########################################################## 添加學(xué)員函數(shù) ############
def add():
    print(f"       學(xué)生管理系統(tǒng)-錄入學(xué)員    {[nick]}")
    print("-------------------------------------")
    id = input("請輸入學(xué)號:").strip()
    name = input("請輸入姓名:").strip()
    age = input("請輸入年齡:").strip()
    sex = input("請輸入性別:").strip()
    grade = input("請輸入計算機(jī)成績:").strip()
    print("-------------------------------------")
    stu_dict[id] = {"id": id, "name": name, "age": age, "sex": sex, "grade": grade}
    input("學(xué)員信息錄入成功,按任意鍵返回功能主頁")
    return function_menu()
 
 
########################################################## 刪除學(xué)員函數(shù) ############
def delete():
    print(f"       學(xué)生管理系統(tǒng)-刪除學(xué)員    {[nick]}")
    print("-------------------------------------")
    id = input("請輸入要刪除學(xué)員的學(xué)號:").strip()
    print("------------------------------------------------------------------")
    for stu in stu_dict.values():
        if id == stu["id"]:
            print("學(xué)號----+-----姓名----+-----年齡----+-----性別----+-----計算機(jī)成績----")
            print(stu.get("id"), stu.get("name"), stu.get("age"),
                  stu.get("sex"), stu.get("grade"), sep="----+-----")
            print("------------------------------------------------------------------")
            confirm = input("確認(rèn)刪除(Y/N)?").upper()
            if confirm == "Y":
                stu_dict.pop(id)
                input("學(xué)員信息刪除成功,按任意鍵返回功能主頁")
                return function_menu()
            else:
                input("用戶取消了刪除操作,按任意鍵返回功能主頁")
                return function_menu()
    else:
        input("不存在該學(xué)號對應(yīng)的學(xué)生,按任意鍵返回功能頁面!")
        return function_menu()
 
 
########################################################## 修改學(xué)員信息函數(shù) ############
def update():
    print(f"       學(xué)生管理系統(tǒng)-修改學(xué)員信息    {[nick]}")
    print("-----------------------------------------")
    id = input("請輸入要修改的學(xué)號:").strip()
    print("------------------------------------------------------------------")
    for stu in stu_dict.values():
        if id == stu["id"]:
            print("學(xué)號----+-----姓名----+-----年齡----+-----性別----+-----計算機(jī)成績----")
            print(stu.get("id"), stu.get("name"), stu.get("age"),
                  stu.get("sex"), stu.get("grade"), sep="----+-----")
            print("------------------------------------------------------------------")
            ch = input("請輸入要修改的屬性(1.姓名 2.性別 3.年齡):").strip()
 
            if ch == "1":  # 修改姓名
                name = input("請輸入新的姓名:").strip()
                stu["name"] = name
            elif ch == "2":  # 修改性別
                sex = input("請輸入新的性別:").strip()
                stu["sex"] = sex
            elif ch == "3":  # 修改年齡
                age = input("請輸入新的年齡:").strip()
                stu["age"] = age
            else:
                input("輸入錯誤,按任意鍵返回功能主頁")
                return function_menu()
            input("修改完成,按任意鍵返回功能主頁")
            return function_menu()
    else:
        input("沒有查詢到該編號的學(xué)員,按任意鍵返回功能主頁")
        return function_menu()
 
 
########################################################## 查詢學(xué)員函數(shù) ############
def search():
    print(f"                     學(xué)生管理系統(tǒng)-查看所有學(xué)員                  {[nick]}")
    print("---------------------------------------------------------------------")
    print("學(xué)號----+-----姓名----+-----年齡----+-----性別----+-----計算機(jī)成績----")
    for stu in stu_dict.values():
        print(stu.get("id"), stu.get("name"), stu.get("age"),
              stu.get("sex"), stu.get("grade"), sep="----+-----")
    print("---------------------------------------------------------------------")
    input("按任意鍵返回功能主頁")
    return function_menu()
 
 
########################################################## 首頁函數(shù) ############
def login_menu():
    os.system("cls")
    print("      學(xué)生管理系統(tǒng)")
    print("------------------------")
    print("1.操作員登錄")
    print("2.操作員注冊")
    print("3.退出系統(tǒng)")
    print("------------------------")
    c = input("輸入您的選項:").strip()
 
    if c == "1":
        return login_page()
    elif c == "2":
        return register_page()
    elif c == "3":
        return do_exit()
    else:
        input("輸入有誤,按任意鍵回到登錄菜單")
        return login_menu()
 
 
########################################################## 程序入口 ############
if __name__ == "__main__":
    login_menu()

2段代碼均來自網(wǎng)絡(luò),親測可用。小編6多年python開發(fā)經(jīng)驗,,有PYTHON需求的可以加微信web_445i。

]]>
http://www.lalz.net/7253.html/feed 0
Python實現(xiàn)簡單的學(xué)生通訊錄信息管理系統(tǒng) http://www.lalz.net/7252.html http://www.lalz.net/7252.html#respond Sun, 13 Oct 2024 00:33:00 +0000 http://www.lalz.net/?p=7252 # 定義一個大列表來保存學(xué)生信息 students = [] # 功能菜單函數(shù) def menu(): print('-' * 40) print(' 學(xué)生管理系統(tǒng) v1.0') print('1.添加學(xué)生信息') print('2.刪除學(xué)生信息') print('3.修改學(xué)生信息') print('4.查詢學(xué)生信息') print('5.遍歷所有學(xué)生信息') print('6.保存信息到文件') print('7.退出系統(tǒng)') print('-' * 40) # 添加學(xué)生功能函數(shù) def add_student(): student = {} # 用字典保存每個學(xué)生的信息,然后將它寫入students列表 student['name'] = input('請輸入學(xué)生姓名:') student['age'] = int(input('請輸入學(xué)生年齡:')) student['mobile'] = input('請輸入學(xué)生電話號碼:') students.append(student) print(students) # 刪除學(xué)生信息功能函數(shù) def del_student(): name = input('請輸入要刪除學(xué)生的姓名:') for i in students: if i['name'] == name: students.remove(i) print('刪除成功') print(students) break else: print('該學(xué)生不存在') # 修改學(xué)生信息功能函數(shù) def edit_student(): name = input('請輸入要修改學(xué)生的姓名:') for i in students: if i['name'] == name: i['name'] = input('請輸入修改后學(xué)生的姓名:') i['age'] = int(input('請輸入修改后學(xué)生的年齡:')) i['mobile'] = int(input('請輸入修改后學(xué)生的電話:')) print('您要修改的學(xué)生信息修改成功') break else: print('您要修改的學(xué)生信息未找到') # 查詢學(xué)生的信息功能函數(shù) def find_studet(): name = input('請輸入要查詢學(xué)生的姓名:') for i in students: if i['name'] == name: print(i) break else: print('很抱歉,沒有該學(xué)生的信息') # 遍歷所有學(xué)生的信息的功能函數(shù) def find_all_student(): for i in students: print(i) # 保存students數(shù)據(jù)到data.txt文件功能的函數(shù) def save_data_to_file(): global students f = open('data.txt', 'w', encoding='utf-8') f.write(str(students)) f.close() print('信息保存成功') # 定義函數(shù)load_data(),把文件數(shù)據(jù)加載到程序 def load_data(): f = open('data.txt', 'r', encoding='utf-8') content = f.read() # str類型的字符串 # 判斷人間是否為空 if not content: return # 終止此循環(huán),不需要在繼續(xù)加載了 else: # 如果代碼繼續(xù)向下執(zhí)行代表不為空,則進(jìn)行類型轉(zhuǎn)換 global students # 聲明我們接下來使用的變量是全局變量 students = eval(content) f.close() # 加載數(shù)據(jù)文件類容到列表students中 load_data() while True: menu() num = int(input('請輸入編號進(jìn)行操作:')) if num == 1: # 添加學(xué)生信息 add_student() elif num == 2: # 刪除學(xué)生信息 find_all_student() del_student() elif num == 3: # 修改學(xué)生信息 find_all_student() edit_student() elif num == 4: # 查詢學(xué)生信息 find_studet() elif num == 5: # 遍歷學(xué)生信息 find_all_student() elif num == 6: # 保存學(xué)生信息 save_data_to_file() elif num == 7: # 退出系統(tǒng) print('歡迎下次使用') print('退出系統(tǒng)成功') break else: print('輸入不合法,請重新輸入')

這是一個只有姓名、年齡、電話的可以增刪改的簡易python信息管理系統(tǒng)。當(dāng)然這個管理系統(tǒng)沒有處理異常輸入等問題,后面小編會發(fā)布更全面的python信息管理系統(tǒng)

另:小編6多年python開發(fā)經(jīng)驗,,有PYTHON需求的可以加微信web_445i。

]]>
http://www.lalz.net/7252.html/feed 0
Pycharm專業(yè)版和社區(qū)版什么區(qū)別 http://www.lalz.net/7247.html http://www.lalz.net/7247.html#respond Thu, 26 Sep 2024 00:33:00 +0000 http://www.lalz.net/?p=7247 PyCharm是JetBrains公司開發(fā)的一款流行的Python集成開發(fā)環(huán)境(IDE),它提供了兩個主要的版本:專業(yè)版(Professional)和社區(qū)版(Community)。以下是這兩個版本的主要區(qū)別:

  1. 功能差異
  • 專業(yè)版:提供了完整的Python開發(fā)工具套件,包括Web開發(fā)、Python分析器、Python Web框架、遠(yuǎn)程開發(fā)、數(shù)據(jù)庫支持等高級功能。此外,還提供了服務(wù)器環(huán)境支持,允許在本地和云端進(jìn)行代碼編寫和執(zhí)行。
  • 社區(qū)版:是免費的,包含了基本的Python庫和工具,可以實現(xiàn)基本的Python用法。但是與專業(yè)版相比,在功能上有所限制,例如不支持Web開發(fā)工具、遠(yuǎn)程開發(fā)和數(shù)據(jù)庫支持等高級功能。
  1. 授權(quán)方式
  • 專業(yè)版:需要付費購買激活碼才能使用。
  • 社區(qū)版:可以免費下載和使用,但不能用于商業(yè)目的。
  1. 適用人群
  • 專業(yè)版:適合專業(yè)開發(fā)者、企業(yè)用戶和大型項目使用,提供了豐富的功能和工具,可以提高開發(fā)效率和質(zhì)量。
  • 社區(qū)版:適合初學(xué)者、學(xué)生和小型項目使用,提供了基本的功能和工具,可以滿足基本的開發(fā)需求。
  1. 其他功能
  • 專業(yè)版:還提供了性能分析、代碼覆蓋率分析、GUI設(shè)計器等高級功能。
  • 社區(qū)版:還提供了代碼版本控制、代碼格式化、代碼檢查等基本功能。

如果你是一名專業(yè)的Python開發(fā)者,需要使用到Web開發(fā)、數(shù)據(jù)庫支持等高級功能,那么專業(yè)版是更好的選擇。如果你是一名Python初學(xué)者或愛好者,想要學(xué)習(xí)和試驗Python編程,那么社區(qū)版是一個不錯的選擇,因為它包含了基本的Python庫和工具,可以實現(xiàn)基本的Python用法,而且完全免費。

]]>
http://www.lalz.net/7247.html/feed 0
Python 格式化字符串的幾種方法及優(yōu)缺點 http://www.lalz.net/7246.html http://www.lalz.net/7246.html#respond Wed, 25 Sep 2024 00:33:00 +0000 http://www.lalz.net/?p=7246 格式化字符串是一種常見需求,今天我們說下Python格式化字符串的幾種方法,并討論它們的優(yōu)缺點。

1. 使用百分號 %

name = "Alice"
age = 30
formatted_string = "Hello, %s. You are %d years old." % (name, age)
print(formatted_string)

優(yōu)點:

  • 語法簡單,易于理解。
  • 在Python早期版本中使用廣泛。
    缺點:
  • 類型指定符(如%s, %d)容易出錯。
  • 當(dāng)格式化復(fù)雜字符串時,可讀性較差。
  • 不支持字典解包和變量自動識別。

2. 使用str.format()方法

name = "Bob"
age = 25
formatted_string = "Hello, {}. You are {} years old.".format(name, age)
print(formatted_string)

或者使用索引:

formatted_string = "Hello, {0}. You are {1} years old.".format(name, age)
print(formatted_string)

優(yōu)點:

  • 支持按順序、按索引和按關(guān)鍵字傳參,更加靈活。
  • 易于閱讀和維護(hù)。
  • 支持對字符串進(jìn)行更復(fù)雜的格式化。
    缺點:
  • 語法比原始的%格式化稍顯繁瑣。
  • 在處理大量參數(shù)時,仍然可能不夠直觀。

3. 使用f-string(Python 3.6+)

name = "Charlie"
age = 35
formatted_string = f"Hello, {name}. You are {age} years old."
print(formatted_string)

優(yōu)點:

  • 語法簡潔明了,可讀性極高。
  • 可以直接在字符串中嵌入表達(dá)式,非常靈活。
  • 性能比%str.format()方法更好。
    缺點:
  • 只在Python 3.6及以上版本中可用。
  • 如果在字符串插值中不小心使用了復(fù)雜表達(dá)式,可能會降低代碼的可讀性。

總結(jié)

每種方法都有其適用場景。隨著Python版本的更新,f-string因其簡潔和強(qiáng)大的功能,在許多情況下成為首選。然而,了解不同的格式化方法仍然很有必要,尤其是在維護(hù)舊代碼庫或與不支持最新特性的Python版本打交道時。在選擇格式化方法時,應(yīng)考慮代碼的可讀性、維護(hù)性以及性能需求。

6、7年python爬蟲,web開發(fā)工作經(jīng)驗,

]]>
http://www.lalz.net/7246.html/feed 0
python 為什么session.headers打印的不是發(fā)送的請求頭 http://www.lalz.net/7245.html http://www.lalz.net/7245.html#respond Tue, 24 Sep 2024 00:33:00 +0000 http://www.lalz.net/?p=7245 今天寫了段pyton代碼

session = requests.session()
session.post(url,headers=headers,data=data)
print(session.headers)

但是打印的結(jié)果卻是

{'User-Agent': 'python-requests/2.28.1', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive'}

為什么會這樣呢?

原來print(session.headers) 打印的是會話對象的默認(rèn)請求頭,而不是我發(fā)送的請求頭。

session.headers 通常包含了一些默認(rèn)的請求頭,這些請求頭在每次使用會話發(fā)送請求時都會被發(fā)送。這些默認(rèn)的請求頭可能包括:

  • User-Agent: 標(biāo)識客戶端的瀏覽器和操作系統(tǒng)信息。
  • Accept: 客戶端能夠處理的內(nèi)容類型。
  • Accept-Language: 客戶端偏好的語言。
  • Accept-Encoding: 客戶端能夠接受的壓縮格式。
  • DNT: Do Not Track,表示用戶不希望被追蹤。
  • Connection: 通常設(shè)置為 keep-alive,表示希望保持連接。

在我的代碼中,即使在 post 方法中指定了 headers 參數(shù),session.headers 打印的仍然是會話對象的默認(rèn)請求頭,而不是我發(fā)送的請求頭。這是因為 post 方法中的 headers 參數(shù)是用于覆蓋會話的默認(rèn)請求頭的,但它不會改變會話對象的默認(rèn)請求頭。

如果想要查看發(fā)送的請求頭,需要在發(fā)送請求后立即打印響應(yīng)對象的請求頭。例如:

pythonresponse = session.post(url, headers=headers, data=data)
print(response.request.headers)  # 這將打印出實際發(fā)送的請求頭

請注意,response.request.headers 是從響應(yīng)對象中獲取的,它包含了實際發(fā)送到服務(wù)器的請求頭。

]]>
http://www.lalz.net/7245.html/feed 0
python中‘模塊,包,庫’是什么意思 http://www.lalz.net/7239.html http://www.lalz.net/7239.html#respond Wed, 11 Sep 2024 00:57:00 +0000 http://www.lalz.net/?p=7239 在Python中,“模塊”、“包”和“庫”這幾個術(shù)語經(jīng)常被提及,它們之間有一定的關(guān)聯(lián)性,但也各有不同的含義。

模塊(Module)

  • 定義:模塊是一個包含Python定義和聲明的文件,文件名就是模塊名加上.py后綴。模塊可以包含函數(shù)、類、變量等。
  • 作用:模塊的主要目的是將代碼分割成可重用的單元,提高代碼的可維護(hù)性和可讀性。
  • 示例:一個名為mymodule.py的文件就是一個模塊。

包(Package)

  • 定義:包是一個包含多個模塊的目錄,并且在這個目錄下必須有一個名為__init__.py的文件,這個文件可以是空的,也可以包含初始化代碼。
  • 作用:包允許模塊以層次結(jié)構(gòu)的方式進(jìn)行組織,從而更好地管理具有相關(guān)功能的模塊。
  • 示例:一個名為mypackage的目錄,其中包含__init__.py和多個模塊文件,如module1.pymodule2.py等。

庫(Library)

  • 定義:庫的概念并非Python里的概念,而是從其他編程語言中引入的。庫通常指的是一系列模塊或包的集合,它們一起提供特定的一組功能。
  • 作用:庫提供了一種方式,讓開發(fā)者可以不必重新編寫代碼就能實現(xiàn)某些功能。Python標(biāo)準(zhǔn)庫是隨Python安裝一起提供的庫。
  • 示例requests是一個常用的HTTP庫,它包含了多個模塊和包,用于處理網(wǎng)絡(luò)請求。

關(guān)聯(lián)性

  • 模塊與包:包是由多個模塊組成的,模塊是包的基本組成單元。
  • 包與庫:一個庫可以包含多個包,也可以是單個的大型模塊。包和庫的概念有時可以互換使用,但實際上庫通常是指更廣泛的功能集合。
    在Python編程實踐中,模塊、包和庫的概念是非常重要的,它們幫助你組織代碼,使得代碼更加模塊化、可維護(hù)和可重用。
]]>
http://www.lalz.net/7239.html/feed 0
python程序?qū)崿F(xiàn):a字符串里是否有至少連續(xù)3個字符串與b一個字符串里的相同 http://www.lalz.net/7159.html http://www.lalz.net/7159.html#respond Wed, 10 Apr 2024 00:35:00 +0000 http://www.lalz.net/?p=7159 都說現(xiàn)在中國的ai也發(fā)展的怎么怎么好,于是我就測試了一個很小的問題:用python程序?qū)崿F(xiàn)有2個字符串a(chǎn),b,如果a字符串里有至少連續(xù)3個字符串與b一個字符串里的相同,則是真,a,b字符串長度都都不確定

用文心一言得出的代碼如下:

def has_consecutive_triplets_with_other_string(s1, s2):
    # 獲取s2中所有可能的子字符串
    substrings = [s2[i:j] for i in range(len(s2)) for j in range(i + 1, len(s2) + 1)]

    # 遍歷s2的所有子字符串
    for substring in substrings:
        # 使用正則表達(dá)式查找s1中連續(xù)三個相同的子字符串
        pattern = rf"({re.escape(substring)}){{{3,}}}"
        if re.search(pattern, s1):
            return True

            # 如果沒有找到符合條件的子字符串,返回False
    return False


# 示例
s1 = "hellohellohelloabcabc"
s2 = "abc"
s3 = "xyz"

print(has_consecutive_triplets_with_other_string(s1, s2))  # 輸出: True
print(has_consecutive_triplets_with_other_string(s1, s3))  # 輸出: False

看它一陣操作猛如虎,還有輸出,結(jié)果卻運行不了,自己加了import re還是不行,看代碼,你說你都遍歷了,直接判斷不就行了,為什么要使用正則?算了試試智普清言:

def contains_substring(a, b):
# 遍歷字符串b中的每個字符
for char_b in b:
# 檢查char_b在a中是否連續(xù)出現(xiàn)至少3次
if char_b * 3 in a:
return True
return False

測試函數(shù)

test_a = "abcdeeeffg"
test_b = "ef"
contains_substring(test_a, test_b)

直接都沒明白意思,直接給個白眼。

下面還是請我們真正的AI,CHATGPT:

def has_common_substring(a, b):
# Check for any common substring of length 3 or more
for i in range(len(a) - 2):
# Extract 3 consecutive characters from string 'a'
substring = a[i:i+3]
# Check if these 3 characters are in string 'b'
if substring in b:
return True
return False

# Example usage:
a = 'abc123'
b = '9abc456'
result = has_common_substring(a, b)
print(result) # Output would be True if there is a common substring of length 3 or more

完美,只要改你的字符串就行了,最后文心一言的只要稍微改下也可以用,自己試試吧?

]]>
http://www.lalz.net/7159.html/feed 0
python程序?qū)崿F(xiàn):刪除指定句子前所有信息 http://www.lalz.net/7156.html http://www.lalz.net/7156.html#respond Tue, 09 Apr 2024 01:03:00 +0000 http://www.lalz.net/?p=7156 現(xiàn)在AI發(fā)展迅速,我們做網(wǎng)站也要利用好這個工具。今天在訓(xùn)練AI的時候,我把一個TXT文件到知識庫時,一直上傳不了,只好用python程序平分分成了幾份,但是上傳文件到后面還是有一部分失敗。那就只能把后面的再分成更小的文件上傳,于是就要找到已經(jīng)上傳的給刪掉。實現(xiàn)代碼如下:

def delete_before_first_occurrence(input_file, output_file, sentence):
    with open(input_file, 'r', encoding='utf-8') as file:
        content = file.read()

        # 找到第一次出現(xiàn)句子的位置
    index = content.find(sentence)
    if index != -1:
        # 刪除句子之前的所有內(nèi)容
        content = content[index:]
    else:
        print(f"句子 '{sentence}' 未在文件中找到。")
        return

        # 將修改后的內(nèi)容寫回文件
    with open(output_file, 'w', encoding='utf-8') as file:
        file.write(content)

    # 使用函數(shù)


input_txt_file = '高中資料.txt'  # 輸入文件名
output_txt_file = '高中資料n.txt'  # 輸出文件名,也可以是原文件名以覆蓋原文件
sentence_to_find = '二是考慮到第一志愿考生入學(xué)后專業(yè)思想穩(wěn)定'

delete_before_first_occurrence(input_txt_file, output_txt_file, sentence_to_find)

請注意以下幾點:

你需要替換input_txt_file和output_txt_file為你實際的文件名。如果你想覆蓋原文件,可以將output_txt_file設(shè)置為和input_txt_file相同的值。

sentence_to_find應(yīng)該設(shè)置為你想要找到并刪除其前所有內(nèi)容的句子。

這個腳本假設(shè)你的文本文件是UTF-8編碼的。如果文件的編碼不同,請相應(yīng)地修改encoding參數(shù)。

find()方法返回的是子字符串第一次出現(xiàn)的索引位置,如果沒有找到則返回-1。如果找到,我們就從該位置開始保留文本內(nèi)容。

這個腳本不會保留句子之前可能出現(xiàn)的任何換行符或其他空白字符。如果需要保留,可以在content[index:]之后添加適當(dāng)?shù)倪壿媮硖幚磉@些字符。

在運行此腳本之前,請確保你有文件的備份,以防萬一發(fā)生意外情況導(dǎo)致數(shù)據(jù)丟失。

]]>
http://www.lalz.net/7156.html/feed 0
python程序?qū)崿F(xiàn)把TXT文件平分分成幾份 http://www.lalz.net/7158.html http://www.lalz.net/7158.html#respond Tue, 09 Apr 2024 00:33:00 +0000 http://www.lalz.net/?p=7158 現(xiàn)在AI發(fā)展迅速,我們做網(wǎng)站也要利用好這個工具。今天在訓(xùn)練AI的時候,我把一個TXT文件到知識庫時,一直上傳不了,只好用python程序平分分成了幾份。實現(xiàn)代碼如下:

def split_file(input_file, output_files, num_parts):
with open(input_file, 'r', encoding='utf-8') as f:
content = f.read()

part_size = len(content) // num_parts
for i in range(num_parts):
start = i * part_size
end = (i + 1) * part_size
with open(output_files[i], 'w', encoding='utf-8') as f:
f.write(content[start:end])

# 使用函數(shù)


input_file = '高中資料.txt'
output_files = ['高中資料1.txt', '高中資料2.txt', '高中資料3.txt', '高中資料4.txt', '高中資料5.txt', '高中資料6.txt', '高中資料7.txt', '高中資料8.txt']
split_file(input_file, output_files, 8)
]]>
http://www.lalz.net/7158.html/feed 0