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

python進階--月考二

這篇具有很好參考價值的文章主要介紹了python進階--月考二。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

(一)裝飾器

具體要求:
1)該裝飾器要求做到通用,可以裝飾定長,不定長各種參數的函數.(4分)
2)如果被裝飾的函數拋出異常,則記錄函數名,異常信息 到文件error_log.txt。(4分)
3)裝飾器可以正確計算函數的運行時間。(3分)
4)創(chuàng)建文件power_fun.py 導入 decory.py中寫好的裝飾器,編寫函數并裝飾, 如果被裝飾函數正常執(zhí)行沒有異常,則記錄調用成功,并記錄被調用函數的函數名,參數個數,到指定路徑的文件中。(4分)

import time
from functools import wraps


def take_rime(fn):
    @wraps(fn)
    def inner(*args, **kwargs):
        try:
            start = time.time()
            fn(*args, **kwargs)
            end = time.time()
            print(f'運行時間:{end-start}')
        except BaseException as e:
            #e就是報錯信息
            with open('error_log.txt','a') as f:
                f.write(f'{e}')
        else:
            with open('日志.txt','a') as f:
                f.write(f'調用成功,{fn.__name__},{len(args)+len(kwargs)}')
    return inner

power_fun.py

#從  decor文件中  導入   裝飾器
from decor import take_rime

@take_rime
def show(a,b):
    print(1+'hello')

if __name__ == '__main__':
    show(1,2)


(二)創(chuàng)建名為express.py文件,編寫以下推導式(25分)

# 1)求60以內所有能被3和2同時整除的數   (2分)
l1=[i for i in range(60) if i%2==0 and i%3==0]
print(l1)
# 2)求60以內所有能被2整除的數的平方(2分)
l2=[i**2 for i in range(60) if i%2==0]
print(l2)
# 3.已知列表n=['黃三','黃大','李凱','王一博' ] 編寫一個推導式,取出所有姓黃的人名(2分)
n=['黃三','黃大','李凱','王一博' ]
l3=[i for i in n if i.startswith('黃')]
print(l3)
# 4.info= ['i','is','a','good','boy','exception']統(tǒng)計列表每個元素的長度,保存成字典的格式(2分)
info= ['i','is','a','good','boy','exception']
d4={k:len(k) for k in info}
print(d4)
# 5)求(a,b)其中a是0-10之間的偶數,b是0-10之間的偶數組成的元祖列表(2分)
l5=[(a,b) for a in range(11) if a%2==0 for b in range(11) if b%2==0]
print(l5)
# 6.Num_list = [[10, 12, 13], [14,15, 16], [17, 18, 19]]  把列表中所有偶數取出來組成新列表(2分)
Num_list = [[10, 12, 13], [14,15, 16], [17, 18, 19]]
l6=[i for j in Num_list for i  in j if i%2==0]
print(l6)
# 7.List1=['a', 'b', 'c',] list2=['A', 'B', 'C',]用列表推導式輸出新列表['aA', 'bB', 'cC'](2分)
List1=['a', 'b', 'c',]
list2=['A', 'B', 'C',]
l7=[f'{List1[i]}{list2[i]}' for i in range(3)]
print(l7)
# 8.Info_dict = {'a': 10, 'b': 34, 'A': 7, 'Z': 3} 把字典的key,value互換(2分)
Info_dict = {'a': 10, 'b': 34, 'A': 7, 'Z': 3}
d8={k:v for v,k in Info_dict.items()}
print(d8)
# 9.strings = ['a','is','with','if','file','exception']用集合推導式,創(chuàng)建字符串長度的集合(2分)
strings = ['a','is','with','if','file','exception']
s9={len(i) for i in strings}
print(s9)
# 10.,用列表推導式取出列表中帶有兩個以上含字母e的姓名,組成新的列表(2分)
names = [['david','testeae','effcomecte','aAndrew','tWesley','hsteven','Gcoe'], ['Balice','kill','Banaan','Tendy','cennifer','Dsherry','Eva']]
l10=[j for i in names for j in i if j.count('e')>2]
print(l10)
# 11.通過列表推導式完成下面數據類型轉換。 將 轉換為以下格式: li1 = [{‘a’: 11, ‘b’: 2}, [11, 22, 33, 44]](2分)
ls11 = ["{'a':11,'b':2}", "[11,22,33,44]"]
l11=[eval(i) for i in ls11]
print(l11)
# 12.已知列表 編寫一個推導式,取出所有以凱結尾的人名(3分)
n12=['黃凱','黃大','李凱','王一博']
l12=[i for i in n12 if i.endswith('凱')]
print(l12)

(三)創(chuàng)建名為process_test.py的文件,計算1-3000之間的水仙花數

具體要求:
1)編寫多進程程序,開啟3個進程
2)三個進程分別計算1-1000,1000-2000,2000-3000之間的水仙花數
3)每個進程打印當前進程的id和父進程的id,并打印當前進程的計算結果。
4)把三個進程的計算結果匯總到一個列表并輸出

import multiprocessing,os
def show1(start,end,que):
    for i in range(start,end):
        if i>=100 and i<=999:
            b = i//100%10
            s = i//10%10
            g = i%10
            if b**3 + s**3 +g**3==i:
                print(f'父進程:{os.getppid()},子進程:{os.getpid()},水仙花數為:{i}')
                que.put(i)
        if i>=1000 and i<=9999:
            q = i//1000%10
            b = i//100%10
            s = i//10%10
            g = i%10
            if q**4+b**4+s**4+g**4==i:
                print(f'父進程:{os.getppid()},子進程:{os.getpid()},水仙花數為:{i}')
                que.put(i)
if __name__ == '__main__':
    que = multiprocessing.Queue()

    l1 = [2,1001,2001]
    for i in range(3):
        p1 = multiprocessing.Process(target=show1,args=(l1[i],l1[i]+1000,que))
        p1.start()
        p1.join()
    l2 = []
    while not que.empty():
        l2.append(que.get())
    print(l2)

python進階--月考二

(四)創(chuàng)建文件my_th.py,編寫多線程程序

具體要求:
1)主線程產生2000個6位驗證碼,驗證碼有大小寫字母和數字組成。
2)主線程把生成的隨機驗證碼放入一個隊列。
3)啟動5個子線程。
4)每個子線程分析驗證碼,用正則匹配驗證碼,把符合的驗證碼放到列表中。
5)如果隊列中的驗證碼匹配完成,則退出當前子線程
6)最終打印出符合規(guī)則的驗證碼的個數和驗證碼的列表。

import threading,random,string,re
from queue import Queue
l1 = []
def show(que):
    for i in range(400):
        str1 = que.get()
        #找全部  滿足  +數量 【內容】
        if re.findall('[0-9]+[a-z]+[A-Z]+',str1):
            l1.append(str1)
if __name__ == '__main__':
    que = Queue()
    for i in range(2000):
        num = ''.join(random.choices(string.digits+string.ascii_letters,k=6))
        que.put(num)

    for i in range(5):
        t1 = threading.Thread(target=show,args=(que,))
        t1.start()

    print(f'驗證碼個數:{len(l1)},驗證碼分別為:{l1}')

(五)根據需求進行socket編程

具體要求:
服務端
1)新建一個py文件做完服務端用來接收客戶端發(fā)送的消息server.py,。
2)服務器無限循環(huán)接收客戶端發(fā)過來的信息。 accept()客戶端 revc(1024)
3)客戶端連接服務端,則輸出“連接已建立‘
4)讀取包含敏感字符的sensitive.txt文件,把所有敏感字符以列表的方式存儲
5)根據列表進行過濾,如果消息包含銘感字,則輸出消息包含敏感字,然后發(fā)回給客戶端 您發(fā)送的消息包含敏感字,請重新輸入。反之發(fā)送隨機6位字符給客戶端 send()
6)把用戶發(fā)送的原始消息+ip id保存到mysql數據庫中 數據庫 表結構自行定義。
客戶端
1)新建一個py文件client.py 作為客戶端。
2)客戶端無限循環(huán)發(fā)送信息給服務端。
3)客戶端接受服務端發(fā)送過來的信息。
4)客戶端收到服務器發(fā)過來的響應,輸出到終端,并把服務端返回的信息記錄到my_clent.txt中。
5)客戶端輸入exit的時候,向服務器發(fā)送我要退出了,然后退出程序。

import random
import socket
import string
import threading

#函數:收發(fā)消息(多收多發(fā))
def msg(client):
    #可以和每個人說多句話
    while True:
        #1.循環(huán)收消息
        #2.判斷有沒有敏感詞 (有-告訴他有重新輸   沒有-6位隨機)
        str1 = client.recv(1024).decode()
        if str1 == '我要退出了':
            break

        #這里存聊天記錄

        #for敏感詞 ifstr1  replace(舊,新)
        count = 0  #1
        for i in list_str:
            if i in str1:
                str1 = str1.replace(i,'**')  #替換
                count +=1
        if count == 0:  #沒有敏感詞
            #有敏感詞
            # client.send('您發(fā)送的消息包含敏感字,請重新輸入'.encode())
            client.send(str1.encode())
        else:
            print('消息包含敏感字')
            client.send('您發(fā)送的消息包含敏感字,請重新輸入'.encode())
            # client.send(str1[::-1].encode())
            # client.send(''.join(random.choices(string.ascii_letters,k=6)).encode())

if __name__ == '__main__':
    server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    server.bind(('127.0.0.1',9009))
    server.listen(128)

    #讀取敏感詞
    with open('sensitive.txt','r') as f:
        list_str = f.read().split('\n')

    while True:
        #多人
        client,ip = server.accept()
        print(f'連接已建立{ip}')
        thread1 = threading.Thread(target=msg,args=(client,))
        thread1.start()  # 聊天不加join

客戶端文章來源地址http://www.zghlxwxcb.cn/news/detail-441565.html

import socket
import threading

#收發(fā)消息(多收多發(fā))
def msg():
    while True:
        # 發(fā)消息
        str1 = input('輸入消息:')
        if str1 == 'exit':
            client.send('我要退出了'.encode())
            break
        else:
            client.send(str1.encode())

        # 收消息
        str2 = client.recv(1024).decode()
        print(str2)

        with open('my_clent.txt','a') as f:
            f.write(f'{str2}\n')


if __name__ == '__main__':
    client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    client.connect(('127.0.0.1',9009))

    thread1 = threading.Thread(target=msg)
    thread1.start()  #聊天不加join


到了這里,關于python進階--月考二的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

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

領支付寶紅包贊助服務器費用

相關文章

  • GB 9706.1-2020 醫(yī)用電氣設備第1部分:基本安全和基本性能的通用要求-1

    這是份什么文件 這是一份中華人民共和國國家標準,具體為GB9706.1—2020,標準適用于醫(yī)用電氣設備,并規(guī)定了醫(yī)用電氣設備基本安全和基本性能的通用要求。主要涵蓋了醫(yī)療電器設備與患者接觸的各種要求,包括電氣安全、機械防護、防護輻射危險、控制器和儀表的準確性和

    2024年02月07日
    瀏覽(21)
  • Hive實戰(zhàn):分科匯總求月考平均分

    Hive實戰(zhàn):分科匯總求月考平均分

    在這個實戰(zhàn)中,我們使用了Hive框架來處理學生的月考成績數據。首先,我們準備了三個文本文件,分別包含了語文、數學和英語的月考成績數據。這些數據被上傳到HDFS的指定目錄。 接著,我們啟動了Hive Metastore服務,并通過Hive客戶端連接到Hive。在Hive中,我們創(chuàng)建了一個分

    2024年02月03日
    瀏覽(22)
  • 甲、乙機之間采用方式 1 雙向串行通信,具體要求如下: (1)甲機的 k1 按鍵可通過串行口控制乙機的 LEDI 點亮、LED2 滅,甲機的 k2 按鍵控制 乙機的 LED1

    甲、乙機之間采用方式 1 雙向串行通信,具體要求如下: (1)甲機的 k1 按鍵可通過串行口控制乙機的 LEDI 點亮、LED2 滅,甲機的 k2 按鍵控制 乙機的 LED1

    (1)甲機的 k1 按鍵可通過串行口控制乙機的 LEDI 點亮、LED2 滅,甲機的 k2 按鍵控制乙機的 LED1 滅、LED2 點亮,甲機的 k3 按鍵控制乙機的 LED1和 LED2 全亮。 (2)乙機的 K4 按鍵可控制串行口向甲機發(fā)送 k4按鍵接下的次數,并顯示在甲機 P0 口的數碼管上。 1.程序的核心思想 本程

    2024年02月08日
    瀏覽(18)
  • python 單例模式,裝飾類,裝飾函數

    知乎 python 實現(xiàn)單例模式的兩種方式 stack overflow 裝飾函數 vs 裝飾類 medium Do we even need a class to realize singleton? 單例模式大家肯定不陌生了,在讀reference的兩篇blog時突然發(fā)現(xiàn)用python實現(xiàn)單例模式的很多好玩之處。 用類實現(xiàn)單例模式是各種語言比較通用的方式。在python中的實現(xiàn)就

    2024年02月16日
    瀏覽(15)
  • python中的裝飾器(基礎裝飾器)

    1. 高階函數 在python中, 如果一個函數的參數是另外一個或幾個函數,那么這個函數就是高階函數 ,如下 上面的函數fun2就是一個高階函數,因為它的參數是一個函數fun1。 2. 閉包 在python中, 閉包是一個函數,它延伸了變量的作用域,使得在定義變量的作用域失效后,該變量

    2023年04月24日
    瀏覽(16)
  • 【Java 進階篇】Java Request 獲取請求參數的通用方式詳解

    【Java 進階篇】Java Request 獲取請求參數的通用方式詳解

    在Java Web開發(fā)中,獲取HTTP請求的參數是一項基本任務。請求參數可以包含在URL中,也可以包含在請求體中,例如表單提交時的參數。在Java中,可以使用 HttpServletRequest 對象來獲取HTTP請求的參數。本文將詳細解釋如何使用Java獲取HTTP請求的參數,包括通用的方式以及示例代碼。

    2024年02月05日
    瀏覽(35)
  • 系統(tǒng)學習Python——裝飾器:函數裝飾器-[添加裝飾器參數:基礎知識]

    分類目錄:《系統(tǒng)學習Python》總目錄 前面文章介紹的計時器裝飾器有效運行,但是如果它可配置性更強的話,就會更好一一一例如提供一個輸出標簽并且可以打開或關閉跟蹤消息,這些在一個多用途工具中可能很有用。裝飾器參數在這里派上了用場:對它們適當編寫后,我們

    2024年02月22日
    瀏覽(25)
  • 系統(tǒng)學習Python——裝飾器:類裝飾器-[初探類裝飾器和元類]

    分類目錄:《系統(tǒng)學習Python》總目錄 函數裝飾器是如此有用,以至于Python2.X和Python3.X都擴展了這一模式,允許裝飾器應用于類和函數。簡而言之,類裝飾器類似于函數裝飾器,但它們是在一條 class 語句的末尾運行,并把一個類名重新綁定到一個可調用對象。同樣,它們可以

    2024年02月19日
    瀏覽(23)
  • 【Java基礎教程】(四十五)IO篇 · 中:轉換流、內存流和打印流(探索裝飾設計模式與PrintStream類的進階),文件操作案例實踐、字符編碼問題~

    【Java基礎教程】(四十五)IO篇 · 中:轉換流、內存流和打印流(探索裝飾設計模式與PrintStream類的進階),文件操作案例實踐、字符編碼問題~

    掌握內存操作流、轉換流、打印流的使用; 掌握文件復制操作; 掌握字符的主要編碼類型以及亂碼問題產生的原因; 雖然字節(jié)流與字符流表示兩種不同的數據流操作,但是這兩種流彼此間是可以實現(xiàn)互相轉換的,而要實現(xiàn)這樣的轉換可以通過 InputStreamReader 、 OutputStreamWrit

    2024年02月16日
    瀏覽(25)
  • Python小知識 - Python裝飾器

    Python小知識 - Python裝飾器

    Python裝飾器 在Python中,裝飾器是一個特殊的函數,可以將其他函數包裝在裝飾器函數中,并且將被包裝的函數作為參數傳遞給裝飾器函數。 使用裝飾器的好處是可以自動在被包裝的函數前后執(zhí)行一些額外的代碼,比如在函數執(zhí)行前后打印日志,或者在函數執(zhí)行前后計算函數

    2024年02月09日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包