python學習日誌(一)

2021-04-25 19:42:13 字數 2260 閱讀 4568

author:alex xiang(x86)

date: 03/19/2009

工作上的需要,需要寫一些python指令碼,順便把學習過程中的一些心得記下來以備檢視。

1. python 三元操作

類似於c的x=a?:0:1,python的方式是:x=a and 0 or 1

2. 模組間共享變數

三個模組a,b,c,其中a和b都要用到c的變數

a: import c

from b import *

print c.x

b: import c

c.x = 1

c: x = 0

3. 十六進製制數的顯示

乙個十六進製制數要按字串的方式顯示,可以這樣:

x=0x100

'0x%x' %x

'0x100'

4. 正規表示式

得到記憶體大小:

import re

import os

lines = os.popen("free").readlines()

p=re.compile(".*mem:/s+(/d+)/s+.*", re.s)

m = p.match(str(lines))

if(m):

print "total=" + m.group(1) + "/n"

5. 數字和字串之間轉換

a="0x100"

b=int(a,16)  # 第二個引數表示16進製制,預設是十進位制

6.可變引數

一顆星類似於c的可變引數

def test1(a, *b):

print a

print "length of b is: %d " % len(b)

print b

print b[1]

test1(1,2,3,4)的輸出結果:

1 length of b is: 3

(2, 3, 4)

3 兩顆星表示引數是乙個字典:

def test2(**a):

for i in a:

print i + " = " + a[i]

test2(a="1", b="2")的輸出結果是:

a = 1

b = 2

7. 正規表示式,匹配多處結果

看看這個例子,每處匹配有兩個項,注意re.s使得可以匹配多行(忽略/n)

>>> p=re.compile("a(/d+)b(/d+)c", re.s)

>>> result = p.findall("a1b1c,a2b2c/na3b3c/na4b4c")

>>> result

[('1', '1'), ('2', '2'), ('3', '3'), ('4', '4')]

8. 生成掩碼

有乙個列表,比如[1,3,4,5],生成乙個掩碼,如果某個數在列表裡,則掩碼相應位置1

mask = 0x0

for i in range(16):

if str(i) in a_list:

mask |= 1<

mask_str = "0x%x" % mask

9. 執行外部命令

用subprocess挺好

import subprocess

p = subprocess.popen(cmd_str, shell=true, stdout=subprocess.pipe, stdin=subprocess.pipe, stderr=subprocess.pipe)

stdoutdata, stderrdata = p.communicate()   

if p.returncode != 0:

print "failed。/n")

另乙個例子,ping乙個位址,用subprocess.call

def dl_ping(host):

ret = subprocess.call("ping -c 1 %s" % host, shell=true, stdout=open('/dev/null', 'w'), stderr=subprocess.stdout)

if ret == 0:

print host + " is alive/n"

return true

else:

print host + " did not respond/n"

return false

Python學習日誌(一)

未解決問題 如何將city area的值輸出出來?def city area area up,area down,area height return 1 2 area up area down area height city area 1,2,3 為什麼會報錯?def print user in...

學習筆記 python 日誌logging(一)

logging 在原始碼中有三個檔案,結構如下 config.py handlers.py init py int.py中實現了基礎功能,主要的邏輯就在這個檔案中 handlers.py 是一些handlers用起來很方便的.config.py 是對配置做處理的方法.1.呼叫關係 這張圖簡單明瞭,盜...

python學習日誌

1 python中range xrange 和np.arange 區別 range 多用於迴圈,返回乙個range物件,若想要返回乙個list則前面加上list轉換 arange 是numpy中的函式,np.range 返回乙個array型別的物件,可以使用小數步長 xrange 返回xrange ...