在研究strcat函數(shù)實(shí)現(xiàn)的時(shí)候,發(fā)現(xiàn)了while(*p++!=‘\0’)的大秘密,也讓我發(fā)現(xiàn)了在上篇博客中我犯的一個(gè)錯(cuò)誤。原以為跳出后,P指向'\0',而實(shí)際上并非如此!我按跳出后P指向'\0',結(jié)果怎么拼接都實(shí)現(xiàn)不了,NND。為了驗(yàn)證這個(gè)問(wèn)題,我們先上個(gè)小程序吧:#includevoidmain(){char*p="abcdefg";while(*p++!='c');printf("%c\n",*p);}您猜打印出來(lái)的是幾?結(jié)果是d。
系統(tǒng) 2019-08-12 09:29:59 1961
OS模塊的常見(jiàn)用法os.remove()刪除文件os.rename()重命名文件os.walk()生成目錄樹(shù)下的所有文件名os.chdir()改變目錄os.mkdir/mkdirs創(chuàng)建目錄/多層目錄os.rmdir/removedirs刪除目錄/多層目錄os.listdir()列出指定目錄的文件os.getcwd()取得當(dāng)前工作目錄os.chmod()改變目錄權(quán)限os.path.basename()去掉目錄路徑,返回文件名os.path.dirname()
系統(tǒng) 2019-09-27 17:56:42 1960
Python中的上下文管理器,實(shí)際上就是實(shí)現(xiàn)了上下文管理協(xié)議的對(duì)象。在Python中打開(kāi)文件的時(shí)候,我們需要確保文件被使用完畢之后,對(duì)其進(jìn)行關(guān)閉操作——調(diào)用文件對(duì)象的close()方法。如果不使用上下文管理器,經(jīng)典的處理方式就是將close()方法的調(diào)用放在一個(gè)finally語(yǔ)句中:f=open("www.log")try:print("dosomethingwithfile")finally:f.close()這里finally的唯一作用就是確保文件對(duì)象
系統(tǒng) 2019-09-27 17:56:31 1960
python獲取指定時(shí)間差的時(shí)間實(shí)例詳解在分析數(shù)據(jù)的時(shí)間經(jīng)常需要截取一定范圍時(shí)間的數(shù)據(jù),比如三天之內(nèi),兩小時(shí)前等等時(shí)間要求的數(shù)據(jù),因此將該部分經(jīng)常需要用到的功能模塊化,方便以后以后用到的時(shí)候復(fù)用。在此,也分享給大家。importtimeimportsysreload(sys)defget_day_of_day(UTC=False,days=0,hours=0,miutes=0,seconds=0):'''''''ifdays>=0,dateislarger
系統(tǒng) 2019-09-27 17:56:08 1960
數(shù)據(jù)庫(kù)的安裝和連接PyMySQL的安裝pipinstallPyMySQLpython連接數(shù)據(jù)庫(kù)importpymysqldb=pymysql.connect("數(shù)據(jù)庫(kù)ip","用戶","密碼","數(shù)據(jù)庫(kù)")#打開(kāi)數(shù)據(jù)庫(kù)連接cursor.execute("SELECTVERSION()")#使用execute()方法執(zhí)行SQL查詢data=cursor.fetchone()#使用fetchone()方法獲取單條數(shù)據(jù)print("Databaseversion
系統(tǒng) 2019-09-27 17:56:03 1960
首先在火狐瀏覽器上登錄知乎,然后使用火狐瀏覽器插件Httpfox獲取GET請(qǐng)求的Cookie,這里注意使用狀態(tài)值為200(獲取成功)的某次GET.將Cookies復(fù)制出來(lái),注意這一行非常長(zhǎng),不要人為添加換行符。而且Cookie中使用了雙引號(hào),最后復(fù)制到代碼里使用單引號(hào)包起來(lái)。使用下邊代碼檢驗(yàn)是否是模擬了登錄的用戶的請(qǐng)求:importrequestsimportreheaders={'User-Agent':'Mozilla/5.0(WindowsNT10.
系統(tǒng) 2019-09-27 17:55:03 1960
這是我使用python寫(xiě)的第一個(gè)類(也算是學(xué)習(xí)面向?qū)ο笳Z(yǔ)言以來(lái)正式寫(xiě)的第一個(gè)解耦的類),記錄下改進(jìn)的過(guò)程。分析需求最初,因?yàn)槭褂胻ime模塊顯示日期時(shí),每次都要設(shè)置時(shí)間字符串的格式,挺麻煩,但還是忍了。后來(lái),在處理多線程任務(wù)時(shí)需要實(shí)現(xiàn)定時(shí)控制的功能,更麻煩,終于決定自己做一個(gè)解決這些問(wèn)題的通用代碼(雖然網(wǎng)上有現(xiàn)成的模塊,但親手編寫(xiě)這部分代碼正好能鍛煉一下我的面向?qū)ο缶幊蹋7治隹蚣軇傞_(kāi)始,我計(jì)劃做一個(gè)模仿時(shí)鐘的抽象類,讓它獨(dú)立運(yùn)行在一個(gè)線程中,讓它提供顯示
系統(tǒng) 2019-09-27 17:54:34 1960
每個(gè)編程語(yǔ)言中(諸如:Java、C++、C)等都有函數(shù)的,Python也不例外函數(shù)的主要作用有哪些呢?1、將程序的功能進(jìn)行模塊化,功能模塊清晰2、減少重復(fù)代碼的工作量3、便于閱讀及維護(hù)、調(diào)試等一、函數(shù)的結(jié)束及返回值#-*-coding:utf-8-*-deff1():print("ThisisFun()")return#函數(shù)調(diào)用結(jié)束print("--End1--")print("Print2")return"---End2--"f1()print(type
系統(tǒng) 2019-09-27 17:54:20 1960
粘包問(wèn)題TCP協(xié)議在傳輸過(guò)程中會(huì)出現(xiàn)數(shù)據(jù)粘包問(wèn)題講一下TCP和UDP的區(qū)別,都是傳數(shù)據(jù)的協(xié)議,沒(méi)有好壞之說(shuō),只是不同的應(yīng)用需求可能會(huì)更好選擇哪一個(gè)協(xié)議TCP:適合傳輸數(shù)量大,需要建立連接,會(huì)出現(xiàn)粘包問(wèn)題,粘包問(wèn)題可以解決,確定傳入的長(zhǎng)度,接收同樣長(zhǎng)度就可以保證一次性傳輸完UDP:適合傳輸數(shù)據(jù)量小,沒(méi)有粘包,不需要連接,一次性傳輸,下一次就是新的數(shù)據(jù),弊端就是數(shù)據(jù)丟失,不安全QQ是用什么協(xié)議呢?按理應(yīng)該可以用UDP協(xié)議,但是實(shí)際用的是TCP協(xié)議,這是歷史遺留
系統(tǒng) 2019-09-27 17:53:03 1960
黑客泛指擅長(zhǎng)IT技術(shù)的人群,簡(jiǎn)單地說(shuō),是對(duì)計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)的缺陷和漏洞的發(fā)現(xiàn)進(jìn)行攻擊。他們有著高超的技術(shù)能力,同時(shí)身懷多種編程語(yǔ)言,隨隨便便就能攻擊別的網(wǎng)站,進(jìn)行活動(dòng)。在黑客中,最受喜歡的就是Python語(yǔ)言。有資料顯示,目前GitHub代碼庫(kù)中,有超過(guò)20%的網(wǎng)絡(luò)攻擊工具或PoC(概念驗(yàn)證)代碼都是采用Python編寫(xiě)的,這表明Python是黑客開(kāi)發(fā)網(wǎng)絡(luò)攻擊工具時(shí)的首選。作為一門編程語(yǔ)言,Python在信息安全領(lǐng)域擁有極大的優(yōu)勢(shì),其中很重要的一個(gè)原因就是
系統(tǒng) 2019-09-27 17:51:31 1960