基本使用
0.字符集#coding=utf-8
#這樣才支持中文,不然默認使用ascII,放在正式程序的第一行
1.開頭#!/usr/bin/Python
2.註釋
單行:# 多行:’‘’ ‘’‘ 或”“” “”“
3.print
print ‘i am zjk’, #最後加逗號,輸出的內容不換行,不加逗號自動換行,但是這樣會增加一個空格
print “i am %s”%name #格式化用百分號 多個用列表 % (a,b,c)
print 顏色 #iceph.py
sys.stdout.write(“zjk%s” % name) #這個不換行也不會有空格
4.變量
無類型
不推薦使用全局變量,使用的話要在函數內用global 聲明一下
5.解析參數
len(sys.argv) :參數個數,本身腳本名字佔一個 import sys
sys.argv :參數 if “-h” in sys.argv or “–help” in sys.argv
getopt.getopt(sys.argv[1:],’hi:’,[“help”,”input”]) import getopt
第一個參數代表從第一個參數開始解析,第0個是本身
第二參數代表短參,必須是一個字符,後面有:代表參數後必須跟值,-h和-i file
第三個參數代表長參數,–help和–input
eg:for opt,arg in opts:
if opt in (“-h”,”–help”,):
usage()
6.函數
def execShell(shellcmd):
ret,res=commands.getstatusoutput(shellcmd)
if ret == 0: ret = True
else :ret = False
return ret,res
7.json
jsonRes = json.loads({“a”:aaa,”b”:{“b1”:b111,”b2”:[“b21”,”b22”]}}) #json轉字典 import json
jsonRes[“a”]
jsonRes[“b”][“b1”]
jsonres = json.dumps({“a”:aaa,”b”:{“b1”:b111,”b2”:[“b21”,”b22”]}}) #字典轉json
8.獲取hostname和ip
host = socket.gethostname() #import socket
ip = socket.gethostbyname(host) #根據host獲得ip
9.執行shell命令
ret,res = commands.getstatusoutput(“ls -l”) #import commands
成功 ret = 0 ,res:返回字符串
10.入口:
if name == “main”:
main()
並不是執行某個python文件時從這裏開始執行,也是從上到下執行,只不過到這裏執行裏面的
主要用作其他文件調用這個文件時是執行這個裏面的內容
11.獲取當前時間 import timeprint time.time()
#時間戳time.strftime("%H:%M:%S")
#10:11:30time.strftime("%Y-%m-%d")
#2016-10-09time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))
12.字典
dict = {‘Alice’: ‘2341’, ‘Beth’: ‘9102’, ‘Cecil’: ‘3258’}
dict1=dict 字典間賦值
del dict[‘Name’]; # 刪除鍵是’Name’的條目
del dict # 刪除詞典
dict[‘Age’] = 8; # update existing entry
dict[‘School’] = “DPS School”; # Add new entry
cmp(dict1, dict2):比較兩個字典元素。
len(dict):計算字典元素個數,即鍵的總數。
str(dict):輸出字典可打印的字符串表示。
type(variable):返回輸入的變量類型,如果變量是字典就返回字典類型。
radiansdict.clear():刪除字典內所有元素
radiansdict.copy():返回一個字典的淺複製
radiansdict.fromkeys():創建一個新字典,以序列seq中元素做字典的鍵,val爲字典所有鍵對應的初始值
radiansdict.get(key, default=None):返回指定鍵的值,如果值不在字典中返回default值
radiansdict.has_key(key):如果鍵在字典dict裏返回true,否則返回false
radiansdict.items():以列表返回可遍歷的(鍵, 值) 元組數組
radiansdict.keys():以列表返回一個字典所有的鍵
radiansdict.setdefault(key, default=None):和get()類似, 但如果鍵不已經存在於字典中,將會添加鍵並將值設爲default
radiansdict.update(dict2):把字典dict2的鍵/值對更新到dict裏
radiansdict.values():以列表返回字典中的所有值
13.int與str轉化
string–>int
1、10進制string轉化爲intint('12')
2、16進制string轉化爲intint('12', 16)
int–>string
1、int轉化爲10進制stringstr(18)
2、int轉化爲16進制stringhex(18)
14.三元表達式的實現方式
a,b=1,2 max = (a if a > b else b) max = (a > b and [a] or [b])[0] #list max = (a > b and a or b)
15.操作數據庫
import MySQLdb try: conn= MySQLdb.connect( #連接數據庫,參數可適當增加省略 host = meta_host, port = meta_port, user = meta_user, passwd= meta_pass, db = "tianji", connect_timeout = 3, ) #cursor object cur = conn.cursor() #一般都用cursor對象 check = cur.execute("select * from xxx") #執行sql ,返回的是多少行而不是所有行 count = cur.execute("select * from xxx") info = cur.fetchmany(count) #獲取所有行數據 每一行帶有('數據在這裏面,') for line in info : sys.stdout.write(str(line).strip("(' ,)")) #顯示每一行數據並去除首尾的(' ,') cur.close() #關閉cursor對象 conn.commit() #遞交事務 conn.close() #關閉連接 sys.exit(0) except Exception, err: print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) + " # productExc Exception %s" % err) sys.exit(-1)
16.字符串處理函數
見[Python字符串處理函數]
17.for循環
- 普通for
li = ['a', 'b', 'e'] for s in li: print s
- 計數for
for i in range(5): #i從0開始到4,總共5次循環 print i