Python每日一題之0001 0002

2021-09-01 02:40:11 字數 1430 閱讀 6109

第 0002 題: 將 0001 題生成的 200 個啟用碼(或者優惠券)儲存到 mysql 關係型資料庫中。

**如下

import random

import string

import mysql.connector

import time

def rndchar():

return ''.join(random.choices(string.ascii_lowercase+string.ascii_uppercase+string.digits,k=20))

def insert_code(cursor,n,codes):

#python中%s作為佔位符,資料庫語言不發生變化

cursor.execute('insert into code(id,code) values (%s,%s)',(n,codes))

if __name__ == '__main__':

starttime = time.time()

conn = mysql.connector.connect(host='***',user='root',password='123',database='hx')

cursor = conn.cursor()

cursor.execute('create table code_1(id varchar(20), code varchar(150))')

for i in range(200):

codes=rndchar()

insert_code(cursor,i,codes)

conn.commit()

cursor.close()

endtime = time.time()

print(endtime-starttime)

產生隨機數引入random模組。可以通過char(randint(n,m))轉化成字串,但是這邊採用了數字和大小寫字串的隨機碼,所以用了choices。

def rndchar():

return ''.join(random.choices(string.ascii_lowercase+string.ascii_uppercase+string.digits,k=6))

採用加密生成隨機碼

def rndchar_secret():

return ''.join(secrets.choice(string.ascii_lowercase+string.ascii_uppercase+string.digits) for _ in range(4))

一開始寫的邏輯,每插入一條資訊就提交一下,導致時間耗費很多,用time()記錄了一下,200個隨機碼大概要7.73秒。

然後我把提交事務放在了for迴圈結束後,用時2.93秒。提高了近5秒。

Python每天一題 0001

今天比較有空就在寫乙個 這個就比較簡單了 就是生成啟用碼200個 我寫的是數字和大寫字母都有的那種 像這種 anoqeo8m taeccdki fhni80h1 y9w1wa4b 用的random的choice在列表中隨機出乙個,然後我讓他字元累加在一起8個 就是可以有256種。coding utf...

每日一題Python

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...

Python每日一練0001

我們有乙個包含n個元素的元組或序列,現在想把它分解為n個單獨的變數。例如我們有乙個序列 1,2,3 想把1,2,3分別賦值給a,b,c三個變數。只需要簡單的賦值就可以了,唯一的要求是變數的數量和序列的數量必須要一致 例如 l foo 5,bar a,b,c l print a,b,c foo 5 b...