在多個(gè)文件或者不同語(yǔ)言協(xié)同的項(xiàng)目中,python腳本經(jīng)常需要從命令行直接讀取參數(shù)。萬(wàn)能的python就自帶了argprase包使得這一工作變得簡(jiǎn)單而規(guī)范。PS:optparse包是類似的功能,只不過(guò)寫起來(lái)更麻煩一些。如果腳本很簡(jiǎn)單或臨時(shí)使用,沒(méi)有多個(gè)復(fù)雜的參數(shù)選項(xiàng),可以直接利用sys.argv將腳本后的參數(shù)依次讀取(讀進(jìn)來(lái)的默認(rèn)是字符串格式)。比如如下名為test.py的腳本:importsysprint"Inputargumentis%s"%(sys.a
系統(tǒng) 2019-09-27 17:48:12 1967
Python字典是另一種可變?nèi)萜髂P停铱纱鎯?chǔ)任意類型對(duì)象,如字符串、數(shù)字、元組等其他容器模型。一、創(chuàng)建字典字典由鍵和對(duì)應(yīng)值成對(duì)組成。字典也被稱作關(guān)聯(lián)數(shù)組或哈希表。基本語(yǔ)法如下:dict={'Alice':'2341','Beth':'9102','Cecil':'3258'}也可如此創(chuàng)建字典dict1={'abc':456}dict2={'abc':123,98.6:37}注意:每個(gè)鍵與值用冒號(hào)隔開(kāi)(:),每對(duì)用逗號(hào),每對(duì)用逗號(hào)分割,整體放在花括號(hào)中({
系統(tǒng) 2019-09-27 17:47:55 1967
首先聲明,沒(méi)有什么不良動(dòng)機(jī),因?yàn)榻?jīng)常會(huì)用translate.google.cn,就想著用Python模擬網(wǎng)頁(yè)提交實(shí)現(xiàn)文檔的批量翻譯。據(jù)說(shuō)有API,可是要收費(fèi)。生成TokenGoogle為防爬蟲而生成token的代碼是Javascript的,且是根據(jù)網(wǎng)站的TKK值和提交的文本動(dòng)態(tài)生成。網(wǎng)上搜到的一段Python代碼有點(diǎn)小Bug,且缺少動(dòng)態(tài)獲取TKK的步驟。最后還是對(duì)照J(rèn)avascript代碼自己改成Python了。方法很簡(jiǎn)單,先轉(zhuǎn)成易懂的Javascript
系統(tǒng) 2019-09-27 17:47:50 1967
閑來(lái)無(wú)事,想看看python,網(wǎng)上看了一下教程,好像入門問(wèn)題不大,那就說(shuō)干就干。先大概了解一下python的語(yǔ)法。傳送門:https://www.runoob.com/python/python-tutorial.html最基礎(chǔ)的語(yǔ)法啊,balabala一堆,反正先看下,了解一下。然后就是來(lái)搭建一下環(huán)境,網(wǎng)上看了一下,linux如何搭建python環(huán)境,一看嚇一跳,linux本身自帶python運(yùn)行環(huán)境。這么刺激的嘛,趕緊打開(kāi)我的linux,先瞅瞅:終端下
系統(tǒng) 2019-09-27 17:47:45 1967
1.a=[]arrays=[a*3]arrays其實(shí)為[[]]2.arrays=[a]*N看上去是創(chuàng)建了二維數(shù)組,但是只是創(chuàng)建N個(gè)指向a的引用,所以一旦a改變,arrays中N個(gè)list也會(huì)隨之改變eg:a=[]N=3arrays=[a]*3arrays[0].append(1)#看上去只為第一個(gè)list添加整數(shù)1,實(shí)際上---print(arrays)輸出為[[1],[1],[1]]3.arrays=[[]foriinrange(N)]eg:N=3arr
系統(tǒng) 2019-09-27 17:47:28 1967
Python中函數(shù)參數(shù)的定義主要有四種方式:1.F(arg1,arg2,…)這是最常見(jiàn)的定義方式,一個(gè)函數(shù)可以定義任意個(gè)參數(shù),每個(gè)參數(shù)間用逗號(hào)分割,用這種方式定義的函數(shù)在調(diào)用的的時(shí)候也必須在函數(shù)名后的小括號(hào)里提供個(gè)數(shù)相等的值(實(shí)際參數(shù)),而且順序必須相同,也就是說(shuō)在這種調(diào)用方式中,形參和實(shí)參的個(gè)數(shù)必須一致,而且必須一一對(duì)應(yīng),也就是說(shuō)第一個(gè)形參對(duì)應(yīng)這第一個(gè)實(shí)參。例如:復(fù)制代碼代碼如下:defa(x,y):printx,y調(diào)用該函數(shù),a(1,2)則x取1,y取
系統(tǒng) 2019-09-27 17:47:26 1967
在python中可以使用in符號(hào)判斷指定的元素是否存在于列表中,但我發(fā)現(xiàn)元組和數(shù)組存在區(qū)別,下面是詳細(xì)實(shí)驗(yàn)結(jié)果。>>>'jb51.net'in['haotu.net','jb51.net']True>>>'jb51.net'in('haotu.net','jb51.net')True>>>'jb51.net'in['jb51.net/codes','haotu.net']False>>>'jb51.net'in('jb51.net/codes','haot
系統(tǒng) 2019-09-27 17:47:15 1967
1)忘記在if,elif,else,for,while,class,def聲明末尾添加:(導(dǎo)致“SyntaxError:invalidsyntax”)該錯(cuò)誤將發(fā)生在類似如下代碼中:ifspam==42print('Hello!')2)使用=而不是==(導(dǎo)致“SyntaxError:invalidsyntax”)=是賦值操作符而==是等于比較操作。該錯(cuò)誤發(fā)生在如下代碼中:ifspam=42:print('Hello!')3)錯(cuò)誤的使用縮進(jìn)量。(導(dǎo)致“Inde
系統(tǒng) 2019-09-27 17:47:06 1967
Python進(jìn)行Redis數(shù)據(jù)遷移由于開(kāi)發(fā)時(shí)的誤操作,導(dǎo)致redis數(shù)據(jù)損壞,所以需要進(jìn)行redis的數(shù)據(jù)遷移,網(wǎng)上大佬的教程基本都是需要下載附加工具,亦或是需要一些復(fù)雜的操作,個(gè)人覺(jué)得麻煩還不如寫個(gè)腳本來(lái)的經(jīng)濟(jì)實(shí)惠。#-*-coding:utf-8-*-fromredisimportStrictRedis"""redis是用于操作Redis的第三方庫(kù),StrictRedis是官方推薦的方法,而且Redis是它的子類,Redis能做到的StrictRedi
系統(tǒng) 2019-09-27 17:46:53 1967
fileinput模塊可以遍歷文本文件的所有行.它的工作方式和readlines很類似,不同點(diǎn)在于,它不是將全部的行讀到列表中而是創(chuàng)建了一個(gè)xreadlines對(duì)象.下面是fileinput模塊中的常用函數(shù)input()#它會(huì)返回能夠用于for循環(huán)遍歷的對(duì)象.filename()#返回當(dāng)前文件的名稱lineno()#返回當(dāng)前(累計(jì))的行數(shù)filelineno()#返回當(dāng)前文件的行數(shù)isfirstline()#檢查當(dāng)前行是否是文件的第一行復(fù)制代碼代碼如下:#
系統(tǒng) 2019-09-27 17:46:52 1967
如果給定的鍵在字典可用,has_key()方法返回true,否則返回false。語(yǔ)法以下是has_key()方法的語(yǔ)法:dict.has_key(key)參數(shù)key--這是要搜索在字典中的鍵。返回值此方法返回true,如果給定鍵在字典可用,否則返回false。例子下面的例子顯示了has_key()方法的使用。#!/usr/bin/pythondict={'Name':'Zara','Age':7}print"Value:%s"%dict.has_key('
系統(tǒng) 2019-09-27 17:46:48 1967
python發(fā)郵件需要掌握兩個(gè)模塊的用法,smtplib和email,這倆模塊是python自帶的,只需import即可使用。smtplib模塊主要負(fù)責(zé)發(fā)送郵件,email模塊主要負(fù)責(zé)構(gòu)造郵件。smtplib模塊主要負(fù)責(zé)發(fā)送郵件:是一個(gè)發(fā)送郵件的動(dòng)作,連接郵箱服務(wù)器,登錄郵箱,發(fā)送郵件(有發(fā)件人,收信人,郵件內(nèi)容)。email模塊主要負(fù)責(zé)構(gòu)造郵件:指的是郵箱頁(yè)面顯示的一些構(gòu)造,如發(fā)件人,收件人,主題,正文,附件等。1.smtplib模塊smtplib使用較
系統(tǒng) 2019-09-27 17:46:47 1967
花了些工夫?qū)⑺槠W(wǎng)部署到了SAE,中途遇到各類問(wèn)題。感覺(jué)SAE看上去很美,實(shí)際上卻并不是太成熟(至少python版如此)。下面記錄下我遇到的一些主要問(wèn)題以及解決方法。django版本問(wèn)題Django1.4都即將發(fā)布了,SAE平臺(tái)自帶的SAE版本依舊為1.2x。為使用django1.3版本,你需上傳自己的django。具體做法可參考SAE手冊(cè)中的runtime.html#virtualenv日志模塊出錯(cuò)最先遇到的是日至模塊的問(wèn)題。錯(cuò)誤顯示AdminEmail
系統(tǒng) 2019-09-27 17:46:12 1967
環(huán)境MacPython3.6.4Atom背景Atom執(zhí)行PythonCode使用ScriptPackage,執(zhí)行快捷鍵cmd+i。但是默認(rèn)是執(zhí)行Mac系統(tǒng)的2.7版本的Python。配置cmd+,(cmd+逗號(hào))快捷鍵打開(kāi)Settings,或者點(diǎn)擊Atom→Preferences打開(kāi)Settings點(diǎn)擊OpenConfigFolder(會(huì)打開(kāi)Atom的Project)打開(kāi).atom/packages/script/lib/grammars/python.c
系統(tǒng) 2019-09-27 17:46:08 1967
在任何編程語(yǔ)言中,函數(shù)的應(yīng)用主要出于以下兩種情況:1.代碼塊重復(fù),這時(shí)候必須考慮用到函數(shù),降低程序的冗余度2.代碼塊復(fù)雜,這時(shí)候可以考慮用到函數(shù),增強(qiáng)程序的可讀性當(dāng)流程足夠繁雜時(shí),就要考慮函數(shù),及如何將函數(shù)組合在一起。在Python中做函數(shù)設(shè)計(jì),主要考慮到函數(shù)大小、聚合性、耦合性三個(gè)方面,這三者應(yīng)該歸結(jié)于規(guī)劃與設(shè)計(jì)的范疇。高內(nèi)聚、低耦合則是任何語(yǔ)言函數(shù)設(shè)計(jì)的總體原則。1.如何將任務(wù)分解成更有針對(duì)性的函數(shù)從而導(dǎo)致了聚合性2.如何設(shè)計(jì)函數(shù)間的通信則又涉及到耦合
系統(tǒng) 2019-09-27 17:45:56 1967