欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python自動(dòng)發(fā)郵件腳本

 更新時(shí)間:2017年03月31日 10:29:35   作者:楓爺  
本文主要介紹了Python自動(dòng)發(fā)郵件腳本的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧

緣起

這段時(shí)間給朋友搞了個(gè)群發(fā)郵件的腳本,為了防止進(jìn)入垃圾郵件,做了很多工作,剛搞完,垃圾郵件進(jìn)入率50%,覺(jué)得還不錯(cuò),如果要將垃圾郵件的進(jìn)入率再調(diào)低,估計(jì)就要花錢買主機(jī)了,想想也就算了,先發(fā)一個(gè)月,看看效果再拓展吧。

腳本主要是通過(guò)Python寫的,調(diào)的smtplib庫(kù),這些是基礎(chǔ),大家在網(wǎng)上一搜一大堆,今天主要給大家講解下如何避免進(jìn)入垃圾郵件系統(tǒng),以及整個(gè)系統(tǒng)搭建時(shí)的一些思想??赡軇偢鉖ython不久,有很多可能是錯(cuò)誤的寫法望大家提出來(lái)哈~

配置

CentOS7.0系統(tǒng)

Python 3.4

CentOS7.0下面默認(rèn)的是Python2.7.5,我們先來(lái)將Python的版本提升上去

#wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz

下載Python3.4版本

#tar -xf Python-3.4.3.tgz
#cd Python-3.4.3/
#./configure

這邊configure的時(shí)候可能會(huì)遇到你的環(huán)境沒(méi)有安裝gcc編譯環(huán)境,執(zhí)行下面的語(yǔ)句再configure即可

#yum -y install gcc
#yum -y install gdb
#yum -y install gcc-c++

編譯安裝

#make
#make install

因?yàn)樘鎿Q了python版本之后yum可能不能正常使用,需改兩個(gè)文件

#vim /usr/bin/yum
#vim /usr/libexec/urlgrabber-ext-down

將這兩個(gè)文件的頭部的#!/usr/bin/python改成#!/usr/bin/python2.7即可,保存退出,yum滿狀態(tài)復(fù)活

編譯完了之后,將python3.4設(shè)置為默認(rèn)python解析。

#ln -s /usr/local/bin/python3.4 /usr/bin/python

鏈接完成之后檢查python版本

#python -V

出現(xiàn)Python3.4就標(biāo)識(shí)版本切換完成

系統(tǒng)架構(gòu)

 

Account:用于存放發(fā)送者郵箱賬號(hào)的目錄,我的163郵箱,sina郵箱,sohu郵箱和tom郵箱均在淘寶上購(gòu)買了30個(gè)可以發(fā)送smtp服務(wù)的賬號(hào),花費(fèi)一頓飯的錢不到就可以搞到啦~賬號(hào)密碼用【:】分割,每個(gè)賬號(hào)之間使用【,】分割。

Common:引用類文件夾,里面是日至系統(tǒng)配置文件和日志系統(tǒng)源代碼

Conf:全局配置文件,目前還木有用到

Image:郵件發(fā)送過(guò)程中需要使用到的圖片資源

Log:日志文件,按日期區(qū)分

Logbackups:日志備份文件,用于備份過(guò)期日志

Sendmail:用于存儲(chǔ)收件人的郵箱信息,賬號(hào)之間用【,】分割

mail_html.py:主要執(zhí)行腳本

README.md:git版本控制用戶須知,我是通過(guò)碼云來(lái)管理我的代碼的

日志系統(tǒng)

提起腳本系統(tǒng),日志是相當(dāng)關(guān)鍵的一個(gè)角色,尤其是當(dāng)你的腳本出錯(cuò),你要查錯(cuò)的時(shí)候,就非常重要了,我也是從網(wǎng)上搞來(lái)的一段Log日志系統(tǒng)的代碼,覺(jué)得挺好用,供大伙參考~

主要思想是,打印log到指定文件,打印log到屏幕,啥也不說(shuō)了,先上代碼,因?yàn)槭蔷W(wǎng)上的代碼,我就放上來(lái)啦~

# coding: utf-8

#from lxml import etree
import logging.handlers
import logging
import os
import sys
import time
import datetime

try: 
 import xml.etree.cElementTree as ET 
except ImportError: 
 import xml.etree.ElementTree as ET 

# 提供日志功能
class logger:
 # 先讀取XML文件中的配置數(shù)據(jù)
 # 由于config.xml放置在與當(dāng)前文件相同的目錄下,因此通過(guò) __file__ 來(lái)獲取XML文件的目錄,然后再拼接成絕對(duì)路徑
 # 這里利用了lxml庫(kù)來(lái)解析XML
 root = ET.parse(os.path.join(os.path.dirname(__file__), 'config.xml')).getroot()
 # 讀取日志文件保存路徑
 logpath = root.find('logpath').text
 # 讀取日志文件容量,轉(zhuǎn)換為字節(jié)
 logsize = 1024*1024*int(root.find('logsize').text)
 # 讀取日志文件保存?zhèn)€數(shù)
 lognum = int(root.find('lognum').text)

 # 添加分天日志名
 now = datetime.datetime.now()
 now_time = now.strftime('%Y%m%d')
 log_file_name = sys.argv[0].split('/')[-1].split('.')[0] + '_' + now_time
 # 日志文件名:由用例腳本的名稱,結(jié)合日志保存路徑,得到日志文件的絕對(duì)路徑
 logname = os.path.join(logpath, log_file_name)

 # 初始化logger
 log = logging.getLogger()
 # 日志格式,可以根據(jù)需要設(shè)置
 fmt = logging.Formatter('[%(asctime)s][%(filename)s][line:%(lineno)d][%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')

 # 日志輸出到文件,這里用到了上面獲取的日志名稱,大小,保存?zhèn)€數(shù)
 handle1 = logging.handlers.RotatingFileHandler(logname, maxBytes=logsize, backupCount=lognum)
 handle1.setFormatter(fmt)
 # 同時(shí)輸出到屏幕,便于實(shí)施觀察
 handle2 = logging.StreamHandler(stream=sys.stdout)
 handle2.setFormatter(fmt)
 log.addHandler(handle1)
 log.addHandler(handle2)

 # 設(shè)置日志基本,這里設(shè)置為INFO,表示只有INFO級(jí)別及以上的會(huì)打印
 log.setLevel(logging.INFO)

 # 日志接口,用戶只需調(diào)用這里的接口即可,這里只定位了INFO, WARNING, ERROR三個(gè)級(jí)別的日志,可根據(jù)需要定義更多接口
 @classmethod
 def info(cls, msg):
  cls.log.info(msg)
  return

 @classmethod
 def warning(cls, msg):
  cls.log.warning(msg)
  return
 @classmethod
 def error(cls, msg):
  cls.log.error(msg)
  return

日志系統(tǒng)的配置文件

<?xml version="1.0" encoding="utf-8"?>

<config>
 <!-- 日志保存路徑 -->
 <logpath>/Users/litao/Desktop/mail_html/Log</logpath>

 <!-- 每個(gè)腳本對(duì)應(yīng)的日志文件大小,單位MB -->
 <logsize>8</logsize>

 <!-- 每個(gè)腳本保存的日志文件個(gè)數(shù) -->
 <lognum>100</lognum>
</config>

保存的路徑各位隨意哈。

如何使用

logger.info('郵件總數(shù)量【'+str(len(recivers))+'】')                       
logger.info('總計(jì)發(fā)送郵件數(shù)量【'+str(send_num)+'】')                       
logger.info('總計(jì)發(fā)送錯(cuò)誤數(shù)量【'+str(error_num)+'】')                      
logger.info('成功郵箱賬號(hào)集合:'+','.join(send_success_account))                    
logger.info('失敗郵箱賬號(hào)集合:'+','.join(send_failure_account))                    
logger.info('腳本結(jié)束------------------------------------------------------------------')             
logger.info('')

error的話將info換成error即可

執(zhí)行主文件

提起垃圾郵件,大家首先想到的就是那個(gè)令人討厭的垃圾箱里面的營(yíng)銷郵件,但是,如果你的郵件內(nèi)容寫的很棒,是不是就可以避免被封殺,答案是否定的,郵件被封殺是機(jī)器干的,如果是機(jī)器干的事,那就好辦了,首先,我們得先知道機(jī)器的工作原理。

大部分被列為垃圾郵件的郵件均有兩個(gè)特征:內(nèi)容不變,IP不變,其實(shí)做到內(nèi)容一直變,IP一直變理論上就可以做到不進(jìn)垃圾郵箱,但是哪有那么多的人力物力做這事,所以,我們要做的是解決概率性的問(wèn)題。

內(nèi)容混淆

內(nèi)容不變我們可以使用多套模板,嵌套著發(fā),這個(gè)問(wèn)題好解決,但是IP不變,這個(gè)就難一點(diǎn)了,其實(shí)我也沒(méi)解決,主要是怕花錢,我能做的就是通過(guò)多套模板來(lái)實(shí)現(xiàn)內(nèi)容概率性的不被封殺。

好了,我們先準(zhǔn)備30個(gè)郵件的subject,30套郵件的內(nèi)容模板,下面就是我的全局subject配置

 

這樣做的好處就是可以防止郵件的內(nèi)容被封殺,假設(shè)我們30秒發(fā)一封郵件,那么在20分鐘內(nèi)的郵件,沒(méi)有一封是重復(fù)的。我們是從接受郵箱域名的角度考慮的,也就是如果我們的營(yíng)銷對(duì)象全是QQ郵箱,那么QQ郵箱的郵箱服務(wù)器在20分鐘內(nèi)收到同一IP的郵件內(nèi)容是不一樣的,這很大程度上就能避免被封殺。

賬戶混淆

設(shè)置這么多賬號(hào)是干嘛用的呢,主要還是想混淆機(jī)器,讓垃圾郵件進(jìn)率更低。

下面我個(gè)人經(jīng)過(guò)測(cè)試,發(fā)現(xiàn)郵箱服務(wù)器具有的一些特性。

163郵箱

163郵箱設(shè)置了每天每個(gè)賬號(hào)郵件發(fā)送的上限位50封,賬號(hào)554出錯(cuò)重發(fā)的時(shí)間是3小時(shí)。

tom郵箱

tom郵箱每天郵件發(fā)送數(shù)量不做限制,我們也假設(shè)是50封,但是每封郵件之間的發(fā)送間隔一定要超過(guò)30秒,要不然會(huì)被短時(shí)間連接數(shù)過(guò)大報(bào)錯(cuò)。

sohu郵箱

業(yè)界良心,基本上沒(méi)出過(guò)啥錯(cuò)誤,一直保持著良好的發(fā)送成功率。我們也將其定位發(fā)送間隔30秒,每日上線50封。

sina郵箱

惡心的玩意兒,每次發(fā)送郵箱前需要先登錄,認(rèn)證手機(jī)號(hào),每個(gè)手機(jī)號(hào)5個(gè)郵箱哈,但是效果顯著,認(rèn)證完畢,和sohu一樣,基本沒(méi)出錯(cuò)過(guò)。

時(shí)間混淆

有了這些基礎(chǔ),我們就可以知道了,我們有120個(gè)賬號(hào),30個(gè)郵件模板,每天一刻不停的發(fā)送,每封郵件之間的間隔為30秒,一天的郵件發(fā)送量在2800封左右。

我覺(jué)得一天2800封,如果有錢的話,一臺(tái)ESC的費(fèi)用是3元每天,獨(dú)立ip哈,如果找第三方發(fā)送,一封郵件是3分錢,量大2分錢,他們是EDM的,我測(cè)試過(guò)1500封,達(dá)到率不足千分之一。也就是說(shuō),我們發(fā)送1500封,只需要1塊多錢,找第三方發(fā)送,1500封怎么也得40塊錢。成本是不是很低。

好的,那就來(lái)看看郵件是如何發(fā)送的吧。

郵件發(fā)送

下面我們來(lái)看下我的主文件是如何搞的

#coding=utf-8
import smtplib
import mimetypes
import time
import datetime

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage

#引入外部文件
from Common.log import *

導(dǎo)入模塊,以來(lái)的外部庫(kù)和內(nèi)部的文件

#目錄主位置
_root_dir = '/Users/litao/Desktop/mail_html/'
_title_common = '愚人節(jié)'
愚人節(jié)主題禮物,也是為了以后省事,subject和內(nèi)容中設(shè)計(jì)到title的均會(huì)被改為愚人節(jié),馬上愚人節(jié)了嗎,營(yíng)銷方式,代碼實(shí)現(xiàn),異常方便修改。

#郵箱內(nèi)容設(shè)置
_content = """\
<html>
 <style> .title{font-weight:bold;font-size:18px;}</style>
 <body>
  <p>
   <img src="cid:image1">
   <br><br>
   <span
   class="title">【愚人節(jié)】將至,您還沒(méi)準(zhǔn)備禮物?那你一定會(huì)過(guò)個(gè)開心的愚人節(jié)的</span>
   <br>
   愚人節(jié)就要來(lái)啦,禮朵朵給大伙準(zhǔn)備了大批量的禮物伴你度過(guò)愚人節(jié),具體百度一下【禮朵朵】,趕緊進(jìn)站選禮物吧~
   <br>
   選禮物前別忘了先去心愿墻許愿喲,你的愿望可能被禮朵朵看到,可以幫你實(shí)現(xiàn)喲,實(shí)現(xiàn)的時(shí)候別忘了來(lái)禮朵朵還愿哈~
   <br><br>
   <span class="title">【禮朵朵】介紹</span>
   <br>
   國(guó)人從古至今都有送禮的習(xí)俗,送禮作為傳統(tǒng)之一,一直流傳至今,禮尚往來(lái)成為人生必修課。
   <br>
   【禮朵朵】集合商業(yè)送禮和現(xiàn)代送禮搭建禮物導(dǎo)購(gòu)分享平臺(tái)【朵朵禮物】,帶給老少皆宜的送禮分享體驗(yàn)新體驗(yàn)。
   <br>
   與此同時(shí),禮朵朵還給大伙準(zhǔn)備了禮物攻略【禮物說(shuō)】,讓大家可以對(duì)禮物有個(gè)更全面的了解~
   <br><br>
   <span class="title">百度搜索【禮朵朵】,開啟你的禮物新旅程吧~</span>
   <br><br>
  </p>
 </body>
</html> 
"""

營(yíng)銷內(nèi)容模板,html模式實(shí)現(xiàn)郵件的發(fā)送,少不了有模板~

#發(fā)送郵箱smtp地址
_smtp_address = ['smtp.163.com','smtp.sina.cn','smtp.tom.com','smtp.sohu.com']

smtp地址數(shù)組,用于在不同的郵件服務(wù)器間切換。

def sendMail(sender,reciver,subject,content,passwd,smtpadd):
 username=sender
 password=passwd
 msg=MIMEMultipart('related')
 msg['Subject']=subject
 #html格式
 html=content
 htm = MIMEText(html,'html','utf-8')
 msg.attach(htm)
 #構(gòu)造圖片
 fp=open(_root_dir+'Image/logo_small.png','rb')
 msgImage=MIMEImage(fp.read())
 fp.close()
 msgImage.add_header("Content-ID", "<image1>")
 msg.attach(msgImage)
 fp2=open(_root_dir+'Image/yurenjie.png','rb')
 msgImage2=MIMEImage(fp2.read())
 fp2.close()
 msgImage2.add_header('Content-Disposition', 'attachment',
       filename="愚人節(jié)活動(dòng)海報(bào).jpg")
 msg.attach(msgImage2)
 msg['From']=sender
 msg['To']=reciver

 #發(fā)送郵件
 smtp=smtplib.SMTP()
 smtp.connect(smtpadd)
 smtp.login(username, password)
 smtp.sendmail(sender, reciver, msg.as_string())
 smtp.quit()

發(fā)郵件方法,里面有兩個(gè)地方需要注意,一個(gè)是

msgImage.add_header("Content-ID", "<image1>")
msg.attach(msgImage)

將郵件模板中的image1的img標(biāo)簽內(nèi)容替換成我們想要的圖片

第二個(gè)

 fp2=open(_root_dir+'Image/yurenjie.png','rb')
 msgImage2=MIMEImage(fp2.read())
 fp2.close()
 msgImage2.add_header('Content-Disposition', 'attachment',
       filename="愚人節(jié)活動(dòng)海報(bào).jpg")

插入附件,圖片是一個(gè)海報(bào),說(shuō)起海報(bào),強(qiáng)烈建議大家使用創(chuàng)客貼這個(gè)平臺(tái),非常好用。

下面就是發(fā)送郵件啦?。?!

#發(fā)送郵件
 smtp=smtplib.SMTP()
 smtp.connect(smtpadd)
 smtp.login(username, password)
 smtp.sendmail(sender, reciver, msg.as_string())
 smtp.quit()

通用方法,將文件中的以,分割的內(nèi)容以數(shù)組形式返回

#讀取文件中的數(shù)據(jù),并將使用,分割的數(shù)據(jù)變?yōu)閿?shù)組
def readFileToSplit(filepath):
 file_stream = open(filepath)
 try:
  data = file_stream.read()
 finally:
  file_stream.close()
 data_split = data.split(',')
 return data_split

主方法

1、切割賬號(hào)

2、切換郵件服務(wù)器

3、每發(fā)送一封郵件,休息25秒,切換賬號(hào),繼續(xù)發(fā)送

4、日志記錄

5、錯(cuò)誤處理

if __name__=="__main__":
 content=_content
 # 接收人的郵箱按照每天2000封來(lái),每天的郵箱都需要更換,文件名最后以日期為準(zhǔn),郵件發(fā)送量以日志為準(zhǔn)
 recivers=readFileToSplit(_root_dir+'Sendmail/mail_test.txt')
 # 把4個(gè)郵箱的賬號(hào)都獲取到,方便下面for循環(huán)中使用
 account_163=readFileToSplit(_root_dir+'Account/account163')
 account_sina=readFileToSplit(_root_dir+'Account/accountsina')
 account_tom = readFileToSplit(_root_dir+'Account/accounttom')
 account_sohu = readFileToSplit(_root_dir+'Account/accountsohu')

 # 獲取郵件發(fā)送模板
 # 注意模板之間的切換

 #log_file_stream = open(_root_dir+'log', 'w+')
 logger.info('')
 logger.info('腳本開始------------------------------------------------------------------')

 # 統(tǒng)計(jì)郵件發(fā)送量
 send_num = 0
 # 統(tǒng)計(jì)發(fā)送出錯(cuò)量
 error_num = 0
 # 統(tǒng)計(jì)發(fā)送失敗的郵箱發(fā)送賬號(hào)
 send_success_account = []
 # 統(tǒng)計(jì)發(fā)送成功的郵箱發(fā)送賬號(hào)
 send_failure_account = []

 subject_num = len(_subject)

 # 最后統(tǒng)計(jì)沒(méi)有發(fā)出去的郵箱號(hào),放到下日,繼續(xù)發(fā)送
 for i in range(0, len(recivers)):
  try:
   sendindex = i - error_num
   num = i % 30
   account = account_163[num].split(':')
   addindex=i%4
   subjectindex = sendindex%subject_num
   if addindex == 1:
    account=account_sina[num].split(':')
   elif addindex == 2:
    account=account_tom[num].split(':')
   elif addindex == 3:
    account=account_sohu[num].split(':')
   sender=account[0]
   passwd=account[1]
   smtpadd = _smtp_address[addindex]
   #smtpstr=str('163')
   sendMail(sender, recivers[sendindex], _subject[subjectindex], content, passwd, smtpadd)
   #print('發(fā)送賬號(hào)', sender, '正在發(fā)送')
   str_success_1 = '發(fā)送賬號(hào)【'+sender+'】正在發(fā)送'
   logger.info(str_success_1)
   #writeLog(log_file_stream,str_success_1)
   #print('接收序號(hào)', i, recivers[i],'發(fā)送成功')
   str_success_2 = '接受序號(hào)【'+str(i)+'】【'+recivers[sendindex]+'】發(fā)送成功'
   #writeLog(log_file_stream,str_success_2)
   logger.info(str_success_2)
   logger.info('')
   #print('')
   send_num+=1
   send_success_account.append(sender)
   time.sleep(25)
  except Exception as e:
   #print('停止于:', i, recivers[i],',發(fā)送失敗')
   str_failure_1 = '產(chǎn)生錯(cuò)誤于:【'+sender+'】發(fā)送失敗'
   #writeLog(log_file_stream,str_failure_1)
   logger.error(str_failure_1)
   #print(e)
   str_failure_2 = str(e)
   #writeLog(log_file_stream,str_failure_2)
   logger.error(str_failure_2)
   logger.info('')
   error_num+=1
   send_failure_account.append(sender)
   #print('')
   #break
 #print('安全抵達(dá)底部')
 #writeLog(log_file_stream,'腳本結(jié)束')
 set(send_success_account)
 set(send_failure_account)
 logger.info('郵件總數(shù)量【'+str(len(recivers))+'】')
 logger.info('總計(jì)發(fā)送郵件數(shù)量【'+str(send_num)+'】')
 logger.info('總計(jì)發(fā)送錯(cuò)誤數(shù)量【'+str(error_num)+'】')
 logger.info('成功郵箱賬號(hào)集合:'+','.join(send_success_account))
 logger.info('失敗郵箱賬號(hào)集合:'+','.join(send_failure_account))
 logger.info('腳本結(jié)束------------------------------------------------------------------')
 logger.info('')
 #log_file_stream.close()

代碼就這么多,至于subject郵件主題和模板怎么搞,可以自由發(fā)揮哈,可以放在主執(zhí)行文件中,也可以放到配置文件中,實(shí)現(xiàn)可以配置,這里就不再贅述啦

開工

下面就可以開工啦,直接到項(xiàng)目主目錄

#python mail_html.py

看到屏幕上有輸出就OK啦,下面就是等待收獲的季節(jié)

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • python數(shù)據(jù)結(jié)構(gòu)之圖深度優(yōu)先和廣度優(yōu)先實(shí)例詳解

    python數(shù)據(jù)結(jié)構(gòu)之圖深度優(yōu)先和廣度優(yōu)先實(shí)例詳解

    這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之圖深度優(yōu)先和廣度優(yōu)先,較為詳細(xì)的分析了深度優(yōu)先和廣度優(yōu)先算法的概念與原理,并給出了完整實(shí)現(xiàn)算法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • python實(shí)現(xiàn)自動(dòng)網(wǎng)頁(yè)截圖并裁剪圖片

    python實(shí)現(xiàn)自動(dòng)網(wǎng)頁(yè)截圖并裁剪圖片

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)自動(dòng)網(wǎng)頁(yè)截圖并裁剪圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python mysql項(xiàng)目實(shí)戰(zhàn)及框架搭建過(guò)程

    python mysql項(xiàng)目實(shí)戰(zhàn)及框架搭建過(guò)程

    本文給大家分享python mysql項(xiàng)目實(shí)戰(zhàn)框架搭建過(guò)程,通過(guò)實(shí)例代碼給大家講解python mysql項(xiàng)目實(shí)戰(zhàn)的相關(guān)知識(shí),需要的朋友參考下吧
    2021-06-06
  • 使用Python實(shí)現(xiàn)有趣的鎖屏小工具

    使用Python實(shí)現(xiàn)有趣的鎖屏小工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)有趣的鎖屏小工具,這樣再也不用擔(dān)心因?yàn)闆](méi)有鎖屏被扣工資啦,打工人快跟隨小編一起學(xué)習(xí)一下吧
    2023-12-12
  • python 畫出使用分類器得到的決策邊界

    python 畫出使用分類器得到的決策邊界

    這篇文章主要介紹了python 畫出使用分類器得到的決策邊界,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • CoordConv實(shí)現(xiàn)卷積加上坐標(biāo)實(shí)例詳解

    CoordConv實(shí)現(xiàn)卷積加上坐標(biāo)實(shí)例詳解

    這篇文章主要介紹了CoordConv實(shí)現(xiàn)卷積加上坐標(biāo)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • django-crontab實(shí)現(xiàn)服務(wù)端的定時(shí)任務(wù)的示例代碼

    django-crontab實(shí)現(xiàn)服務(wù)端的定時(shí)任務(wù)的示例代碼

    這篇文章主要介紹了django-crontab實(shí)現(xiàn)服務(wù)端的定時(shí)任務(wù)的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Python基于貪心算法解決背包問(wèn)題示例

    Python基于貪心算法解決背包問(wèn)題示例

    這篇文章主要介紹了Python基于貪心算法解決背包問(wèn)題,簡(jiǎn)單描述了貪心算法的概念、原理并結(jié)合實(shí)例形式分析了Python使用貪心算法解決背包問(wèn)題的具體操作技巧,需要的朋友可以參考下
    2017-11-11
  • 一文搞懂Python的函數(shù)傳參機(jī)制

    一文搞懂Python的函數(shù)傳參機(jī)制

    最近寫了Python函數(shù)的功能,犯了一些錯(cuò)誤。所以本文主要和大家一起梳理下Python函數(shù)的傳參機(jī)制,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-07-07
  • python學(xué)習(xí)實(shí)操案例(三)

    python學(xué)習(xí)實(shí)操案例(三)

    這篇文章主要介紹了python學(xué)習(xí)實(shí)操案例,循環(huán)輸出26個(gè)字母對(duì)應(yīng)的ASCII碼值、模擬用戶登錄、猜數(shù)游戲練習(xí)等案例,需要的小伙伴可以參考一下,希望對(duì)你有一定的幫助
    2022-02-02

最新評(píng)論