国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python高級技術(shù)復(fù)習(xí)指南

這篇具有很好參考價(jià)值的文章主要介紹了Python高級技術(shù)復(fù)習(xí)指南。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?1.正則表達(dá)式

? ? ? ? 正則表達(dá)式這一塊主要還是利用re模塊和正則表達(dá)式結(jié)合去進(jìn)行一個(gè)指定字符串的提取,我們首先需要了解到的就是元字符

Python高級技術(shù)復(fù)習(xí)指南,python,pyqt

我們并不只有re.findall這一個(gè)方法,還有一個(gè)match對象方法以及flag參數(shù)也要一并復(fù)習(xí)

因?yàn)槭呛唵螐?fù)習(xí),所以我們來舉幾個(gè)例子:

eg1:

有一批網(wǎng)址:

http://www.interoem.com/messageinfo.asp?id=35

http://3995503.com/class/class09/news_show.asp?id=14

http://lib.wzmc.edu.cn/news/onews.asp?id=769

http://www.zy-ls.com/alfx.asp?newsid=377&id=6http://www.fincm.com/newslist.asp?id=415

需要正則后為:

http://www.interoem.com/?
http://3995503.com/?
http://lib.wzmc.edu.cn/?
http://www.zy-ls.com/??

import re
strings = '''http://www.interoem.com/messageinfo.asp?id=35
http://3995503.com/class/class09/news_show.asp?id=14
http://lib.wzmc.edu.cn/news/onews.asp?id=769
http://www.zy-ls.com/alfx.asp?newsid=377&id=6http://www.fincm.com/newslist.asp?id=415'''
ex = "(http://.*?/).*?"#這里主要的難點(diǎn)就在于找出合適的正則表達(dá)式
for each in re.findall(ex,strings):
    print(each)

這里還有一個(gè)‘子組’的概念:如果在正則表達(dá)式中包含括號,則只會匹配出括號也就是子組中的內(nèi)容,這個(gè)還是要簡單記一下的

eg2:

利用正則表達(dá)式匹配出字符串中s=”(hello world), zha(Tom)”?括號中的內(nèi)容

re.findall(r’\(.+?\)’,s)

這里包含到了轉(zhuǎn)義字符,?’\(‘就可以進(jìn)行括號的識別,否則會被認(rèn)為是子組

2.PyQt-GUI編程

????????在Qt這里小題主要會考你某一個(gè)控件的作用,比如問你QMessage是干什么的等等,還有很多控件需要了解和去用,

比如:

  1. QLabel:用于顯示文本或圖像的標(biāo)簽
  2. QPushButton:用于點(diǎn)擊的按鈕
  3. QCheckBox:復(fù)選框控件,可以選擇和取消選擇
  4. QRadioButton:單選按鈕控件,只能選擇一個(gè)選項(xiàng)
  5. QLineEdit:用于輸入和編輯單行文本的文本框
  6. QTextEdit:用于編輯和顯示多行文本的文本框
  7. QComboBox:下拉列表框,提供一個(gè)選擇列表
  8. QSlider:滑動(dòng)條控件,用于選擇范圍內(nèi)的一個(gè)值
  9. QProgressBar:進(jìn)度條控件,用于顯示任務(wù)的完成進(jìn)度
  10. QSpinBox:數(shù)字選擇框,用于選擇整數(shù)值
  11. QDateTimeEdit:日期和時(shí)間編輯框,用于選擇日期和時(shí)間
  12. QTableView:表格視圖控件,用于顯示和編輯表格數(shù)據(jù)
  13. QTreeView:樹狀視圖控件,用于顯示樹形結(jié)構(gòu)的數(shù)據(jù)
  14. QListView:列表視圖控件,用于顯示項(xiàng)目列表
  15. QTabWidget:選項(xiàng)卡控件,用于創(chuàng)建多個(gè)頁面
  16. QMenuBar和QMenu:菜單欄和菜單控件,用于創(chuàng)建菜單
  17. QGraphicsView:圖形視圖控件,用于顯示和編輯圖形元素
  18. QWebEngineView:Web瀏覽器控件,用于顯示網(wǎng)頁內(nèi)容

大題還是主考代碼:

eg1:假如你有一個(gè)已經(jīng)pyuic的.py文件,想對其進(jìn)行一系列操作我們通常就是采用下面這種方法:定義一個(gè)類去進(jìn)行操作

這里簡單說一下信號和槽的鏈接:

第一點(diǎn):假如你設(shè)計(jì)的ui界面中有pushButton這個(gè)控件,想對他進(jìn)行連接就直接self.pushButton......等等,如果是LineEdit(單行文本),就直接self.LineEdit......,當(dāng)然注意順序,可能是pushButton_2等等,名稱寫對就可以

第二點(diǎn):槽函數(shù)是不需要寫括號的,像下面展示的prn函數(shù)就不需要括號

from PyQt5 import QtWidgets
from signal_slot import Ui_Form
import sys
class My_signal_slot(QtWidgets.QWidget,Ui_Form):
    def __init__(self):
        super(My_signal_slot, self).__init__()
        self.setupUi(self)
        self.pushButton.clicked.connect(self.prn)
    def prn(self):
        print("打印測試")
if __name__=="__main__":
    app=QtWidgets.QApplication(sys.argv)
    main=My_signal_slot()
    main.show() 
    sys.exit(app.exec_())

?Qt的大題應(yīng)該就是這個(gè)模板,根據(jù)題干去加相應(yīng)的功能即可

3.數(shù)據(jù)庫編程

????????數(shù)據(jù)庫編程主要還是將數(shù)據(jù)庫與python(pycharm)連接起來使用,基本的sql語句

比如:

  1. 創(chuàng)建數(shù)據(jù)庫: CREATE DATABASE database_name;

  2. 切換到數(shù)據(jù)庫: USE database_name;

  3. 創(chuàng)建表: CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype );

  4. 插入數(shù)據(jù): INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);

  5. 查詢數(shù)據(jù): SELECT column1, column2, column3 FROM table_name WHERE condition;

  6. 更新數(shù)據(jù): UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;

  7. 刪除數(shù)據(jù): DELETE FROM table_name WHERE condition;

  8. 刪除表: DROP TABLE table_name;

  9. 刪除數(shù)據(jù)庫: DROP DATABASE database_name;

在SqlServer中應(yīng)該也都滾瓜爛熟了,這里簡單提一嘴不多贅述。

接下來就是數(shù)據(jù)庫與python的連接代碼,大題應(yīng)該會考:

以下就是數(shù)據(jù)庫與python連接的常用代碼了,比較重要的語句是cur.execute語句,在對數(shù)據(jù)庫的操作中將sql語句作為參數(shù)填充進(jìn)去之后就可以執(zhí)行相應(yīng)的效能

import pymysql
db=pymysql.connect(host='localhost',port=3306,user='root',passwd='123456',database='stu',charset='utf8')
#獲取游標(biāo),創(chuàng)建游標(biāo)對象
cur=db.cursor()
#數(shù)據(jù)操作
cur.execute("insert into class_1 VALUES (4,'Emma',12,'m',86);")
#將修改內(nèi)容提交到數(shù)據(jù)庫
db.commit()
#關(guān)閉游標(biāo)和數(shù)據(jù)庫連接
cur.close()
db.close()

當(dāng)然傳參也可以傳變量參數(shù),

cur.execute("insert into class_1 values ('%s',%d,'%s',%f);"%(name,age,sex,score))
#或者
cur.execute("insert into class_1 values ('%s',%s,'%s',%s);",(name,age,sex,score))

這兩種都可以,第一種是常見的python占位符傳參,第二種是數(shù)據(jù)庫獨(dú)有的占位符傳參,只需全部傳入%s字符型的參數(shù),語句會根據(jù)表中每個(gè)屬性的類型進(jìn)行自動(dòng)類型轉(zhuǎn)換,說簡單就是,你只管傳%s,他自己會變的。?

還有一點(diǎn)是關(guān)于查詢出的數(shù)據(jù)的遍歷,使用的是cur.fetchall(),cur.fetchone()等函數(shù)也需要復(fù)習(xí)到,fetchall使用的更廣泛些,返回的為元組嵌套

4.網(wǎng)絡(luò)編程

? ? ? ? 網(wǎng)絡(luò)編程主要就是依靠套接字Socket來實(shí)現(xiàn)的,基本就以下幾步:

???????????????(1) 創(chuàng)建服務(wù)器套接字;

? ? ? ? ? ? ? ?(2) 使用bind()方法綁定;

? ? ? ? ? ? ? ?(3)調(diào)用listen()方法去監(jiān)聽某個(gè)特定的地址;

? ? ? ? ? ? ?? (4) 使用accept()方法接受客戶端的連接

? ? ? ? ? ? ? ?(5) 利用套接字的兩個(gè)方法:send()用于發(fā)送數(shù)據(jù)recv()用于接收數(shù)據(jù));

? ? ? ? ? ? ? ?(6) 關(guān)閉套接字。

? ? ? ? 但是需要注意的是在網(wǎng)絡(luò)編程中有兩個(gè)協(xié)議:TCP和UDP,二者區(qū)別就在于:TCP更安全,UDP更方便

接下來我們針對TCP和tUDP的Server(服務(wù)器)和Client(客戶端)進(jìn)行代碼演示:

TCP_Server:

import socket
sockfd = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#bind方法綁定
sockfd.bind(('0.0.0.0',8888))
#監(jiān)聽隊(duì)列,這里代表可以同時(shí)連接5個(gè)客戶端
sockfd.listen(5)
print('Waiting for connect....')
while True:
    print('Waiting for receive....')
    #接受客戶端的連接
    connfd,addr = sockfd.accept()
    print('Connect from ',addr)
    while True:
        #recv接收數(shù)據(jù),數(shù)字為接受的最大字節(jié)數(shù)
        data = connfd.recv(1024)
        if not data:
            break
        print('Receive data:'+data.decode())
        send_data = input('請輸入你需要發(fā)送的內(nèi)容:')
        #send發(fā)送數(shù)據(jù)
        connfd.send(send_data.encode())
    connfd.close()
sockfd.close()

TCP_Client:

from socket import *
sockfd = socket()
sercer_addr = ('127.0.0.1',8888)
#connect進(jìn)行連接
sockfd.connect(sercer_addr)
while True:
    print('Waiting........')
    send_data = input('請輸入需要發(fā)送的信息:')
    if not send_data:
        break
    #send發(fā)送信息
    sockfd.send(send_data.encode())
    data = sockfd.recv(1024)#recv接收信息,recv中的數(shù)字代表接受的最大字節(jié)數(shù)
    print('From server:',data.decode())
sockfd.close()

?UDP_Server:

from socket import *
sockfd = socket(AF_INET,SOCK_DGRAM)
server_addr = ('0.0.0.0',8888)
#bind綁定
sockfd.bind(server_addr)
print("Waiting for connect....")
while True:
    print('Waiting for receive....')
    #recvfrom接收
    data,addr = sockfd.recvfrom(1024)
    print('Receive data:'+ data.decode())
    str_data = input("請輸入需要發(fā)送的信息:")
    #sendto發(fā)送
    sockfd.sendto(str_data.encode(),addr)
sockfd.close()

UDP_Client:

import socket
from socket import *
addr = ('127.0.0.1',8888)
sockfd = socket(AF_INET,SOCK_DGRAM)
while True:
    data = input("請輸入需要發(fā)送的信息:")
    #sendto發(fā)送
    sockfd.sendto(data.encode(),addr)
    #recvfrom接收
    msg,addr = sockfd.recvfrom(1024)
    print('From Server : '+msg.decode())
sockfd.close()

?TCP和UDP的服務(wù)器流程對比:左為TCP,右為UDP,可以看出二者比較下來UDP的流程要更少一些

Python高級技術(shù)復(fù)習(xí)指南,python,pyqtPython高級技術(shù)復(fù)習(xí)指南,python,pyqt

?TCP和UDP客戶端流程對比:左TCP右UDP,可以看出二者客戶端大差不差但還是UDP簡潔一步

Python高級技術(shù)復(fù)習(xí)指南,python,pyqtPython高級技術(shù)復(fù)習(xí)指南,python,pyqt

?通過對比我們還可以發(fā)現(xiàn),TCP中發(fā)送使用的是send,接收為recv,而在UDP中發(fā)送為sendto,接收為recvfrom,這也是二者之間較大的區(qū)別

網(wǎng)絡(luò)編程小結(jié)

TCP:安全,但復(fù)雜,發(fā)送為send,接收為recv

UDP:不安全,但簡便,發(fā)送為sendto,接受為recvfrom,服務(wù)器端:不用listen和accept,客戶端不用connect

5.文件操作

????????文件也是很有可能考大題的,但是不會單獨(dú)出一個(gè)大題去考文件,而是可能會和網(wǎng)絡(luò)編程和Qt結(jié)合起來去考一個(gè)或兩個(gè)大題

Python 中的文件操作主要涉及打開文件、讀寫文件內(nèi)容以及關(guān)閉文件。以下是這些操作的詳細(xì)介紹和常用函數(shù)。

1. 打開文件

首先,使用 open() 函數(shù)來打開一個(gè)文件

file = open('example.txt', 'r')  # 打開文件以讀取

open() 函數(shù)的常用模式:

  • 'r': 讀模式(默認(rèn))
  • 'w': 寫模式(會先截?cái)辔募?/li>
  • 'x': 獨(dú)占創(chuàng)建模式,如果文件已存在會拋出異常
  • 'a': 追加模式,寫入到文件的末尾
  • 'b': 二進(jìn)制模式
  • 't': 文本模式(默認(rèn))
  • '+': 更新(讀寫)模式

2. 讀取文件內(nèi)容

讀取整個(gè)文件:read()

讀取行:readline()或者readlines()

content = file.read()  # 讀取整個(gè)文件
print(content)

line = file.readline()  # 讀取一行
print(line)

all_lines = file.readlines()  # 讀取所有行到一個(gè)列表中
print(all_lines)

3. 寫入文件

在寫入模式下('w', 'a'等),可以使用以下方法:

寫入:write()

寫入字符串序列:writelines()

file = open('example.txt', 'w')  # 以寫入模式打開
file.write("Hello, World!")  # 寫入內(nèi)容

lines = ["First line", "Second line"]
file.writelines(lines)  # 寫入多行

4. 關(guān)閉文件

file.close()

5. 使用?with?語句操作文件

為了更好的管理文件的打開和關(guān)閉,通常使用 with 語句,它可以在代碼塊執(zhí)行完畢后自動(dòng)關(guān)閉文件。

with open('example.txt', 'r') as file:
    for line in file:
        print(line, end='')

到這里基本上就夠用了,主要還是記住open函數(shù)中的常用模式就可以,別的直接操作就行,沒有什么難的,其次注意與Qt或網(wǎng)絡(luò)編程的鏈接考題,努努力總能會的。?文章來源地址http://www.zghlxwxcb.cn/news/detail-809520.html

到了這里,關(guān)于Python高級技術(shù)復(fù)習(xí)指南的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【SQL Server】數(shù)據(jù)庫開發(fā)指南(八)高級數(shù)據(jù)處理技術(shù) MS-SQL 事務(wù)、異常和游標(biāo)的深入研究

    【SQL Server】數(shù)據(jù)庫開發(fā)指南(八)高級數(shù)據(jù)處理技術(shù) MS-SQL 事務(wù)、異常和游標(biāo)的深入研究

    本系列博文還在更新中,收錄在專欄:#MS-SQL Server 專欄中。 本系列文章列表如下: 【SQL Server】 Linux 運(yùn)維下對 SQL Server 進(jìn)行安裝、升級、回滾、卸載操作 【SQL Server】數(shù)據(jù)庫開發(fā)指南(一)數(shù)據(jù)庫設(shè)計(jì)的核心概念和基本步驟 【SQL Server】數(shù)據(jù)庫開發(fā)指南(二)MSSQL數(shù)據(jù)庫開發(fā)對

    2024年02月07日
    瀏覽(104)
  • 【深入淺出Selenium庫的百變玩法】: 掌握Web自動(dòng)化測試的關(guān)鍵技術(shù)和策略,包括元素定位、頁面操作、動(dòng)態(tài)內(nèi)容處理等,適用于初學(xué)者和高級開發(fā)者的綜合指南

    Selenium是一個(gè)功能強(qiáng)大的庫,支持多種高級操作,如處理多窗口、多標(biāo)簽頁、鍵盤與鼠標(biāo)事件、滾動(dòng)操作等。掌握Selenium可以大大提高Web應(yīng)用的測試效率和覆蓋范圍。希望這篇文章能幫助你開啟Selenium進(jìn)行自動(dòng)化測試的新篇章。 Selenium也是一個(gè)廣泛使用的自動(dòng)化測試工具,它支

    2024年02月20日
    瀏覽(54)
  • Java:高級技術(shù)講解

    Java:高級技術(shù)講解

    沒有單元測試時(shí)是怎么測試代碼的? Junit單元測試框架 優(yōu)點(diǎn): 單元測試的具體步驟: 常用注解: 這里我們采用Junit4的版本的注解,這個(gè)版本比較經(jīng)典。 示例代碼: 比如我們有一個(gè)StringUtil類,是我們寫好的一個(gè)類:------也就是等待測試的類 我們要測試其中的方法,看看有

    2024年01月22日
    瀏覽(18)
  • Java高級技術(shù)(單元測試)

    Java高級技術(shù)(單元測試)

    一,概括 ? ? 二,junit ?? 三,案例 (1),實(shí)驗(yàn)類 ?(2),測試類 ? 四,常見注解 ? 五,案例 (1),測試類 (2),結(jié)果 ? ?六,常見注解注意: ? ? ? junit5版本的注解名字與junit4不同

    2024年02月04日
    瀏覽(19)
  • 游戲引擎之高級動(dòng)畫技術(shù)

    游戲引擎之高級動(dòng)畫技術(shù)

    當(dāng)我們擁有各類動(dòng)畫素材(clips)時(shí),要將它們?nèi)诤掀饋沓蔀橐惶淄暾膭?dòng)畫。 最經(jīng)典的例子就是從走的動(dòng)畫自然的過渡到跑的動(dòng)畫。 1.1 線性插值 不同于上節(jié)課的LERP(同一個(gè)clip內(nèi)不同pose之間),動(dòng)畫融合需要的線性插值是不同clip之間的插值。 以走-跑為例,可以用速度來

    2024年04月14日
    瀏覽(24)
  • 高級路由技術(shù)案例

    高級路由技術(shù)案例

    1、靜態(tài)ECMP和浮動(dòng)靜態(tài)路由配置實(shí)驗(yàn): 2、浮動(dòng)靜態(tài)路由配置 案例內(nèi)容與目標(biāo): 1、如何在路由器上配置靜態(tài)ECMP 2浮動(dòng)靜態(tài)路由配置 案例組網(wǎng)圖: 案例設(shè)備和器材: 兩臺路由器 兩臺PC 案例主要過程: 步驟一:建立物理連接 步驟二:ip地址配置: PCA配置: PCB: RTA: RTB: 步

    2024年02月02日
    瀏覽(23)
  • 5 種高級 NodeJS 技術(shù)

    作為開發(fā)人員,我們都致力于打造高效、健壯且易于理解、修改和擴(kuò)展的代碼庫。通過采用最佳實(shí)踐和探索先進(jìn)技術(shù),我們可以釋放 NodeJS 的真正潛力并顯著提高應(yīng)用程序的質(zhì)量。在這篇文章中,我們將重點(diǎn)介紹 NodeJS 的五種高級技術(shù)。所以,系好安全帶,我們要開車了,準(zhǔn)備

    2024年02月09日
    瀏覽(19)
  • Java高級技術(shù):單元測試、反射、注解

    Java高級技術(shù):單元測試、反射、注解

    目錄 單元測試 單元測試概述 單元測試快速入門 單元測試常用注解 反射 反射概述 反射獲取類對象 反射獲取構(gòu)造器對象 反射獲取成員變量對象 反射獲取方法對象 反射的作用-繞過編譯階段為集合添加數(shù)據(jù) 反射的作用-通用框架的底層原理 注解 注解概述 自定義注解 元注解

    2024年01月16日
    瀏覽(21)
  • java 高級面試題整理(薄弱技術(shù))

    java 高級面試題整理(薄弱技術(shù))

    session 1.什么是session Session是另一種記錄客戶狀態(tài)的機(jī)制,不同的是Cookie保存在客戶端瀏覽器中,而Session保存在服務(wù)器上??蛻舳藶g覽器訪問服務(wù)器的時(shí)候,服務(wù)器把客戶端信息以某種形式記錄在服務(wù)器上。這就是Session。客戶端瀏覽器再次訪問時(shí)只需要從該Session中查找該客戶

    2024年02月11日
    瀏覽(22)
  • GaussDB技術(shù)解讀系列之高級壓縮

    GaussDB技術(shù)解讀系列之高級壓縮

    本文作者 華為云數(shù)據(jù)庫GaussDB首席架構(gòu)師 馮柯 數(shù)據(jù)壓縮與關(guān)系數(shù)據(jù)庫的結(jié)合,早已不是一個(gè)新鮮的話題,當(dāng)前我們已經(jīng)看到了各種各樣數(shù)據(jù)庫壓縮的產(chǎn)品和解決方案。對于GaussDB來說,在今天引入數(shù)據(jù)壓縮,究竟能夠給客戶帶來什么不一樣的價(jià)值,是過去一段時(shí)間我們一直在

    2024年02月15日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包