Python 语法

注释:行内注释使用#,多行注释使用"""开始和结束

范围:使用:代表判断条件,使用“缩进”来表示代码所属分支

空值:spfd = None # C: spfd = NULL;

空值检查:if not spfd:

三元表达式:flagDefence = 1 if (bit) else 0

小数位数:pai = round(3.1415, 2)

格式化:

from time import ctime
greetings = "hello %s at %r" % ("qige", time.ctime())

字符转数字:port = int(confPort)

字符转小数:pai = float('3.14159265')

十六进制转字符:c = chr(ord(h))

取时间戳:

from time import time,sleep

t1 = time.time()
time.sleep(1)
t2 = time.time()
gap = t2 - t1

计算数组长度:length = len([])

数组切片,扩展:

conf = ['192.168.1.1',22,'root','root','gps.txt','note']
confSsh = conf[0:4] # item 4 not included
confEvn = conf[0]
confEnv.extend(conf[4:6])

以字符分隔:

import re

rxtxbytes = "135110 53556\\r\\n"
bytes = re.split(r'[,\n\r\\\n\\\r]', rxtxbytes)

文件操作

fd = open('gps.txt', 'r')
fd = open('gps.txt', 'w')
fd = open('gps.txt', 'a')

if fd:
    data = fd.read(512)
    fd.write(data) # w+a

fd.close()

异常处理

try:
    # some ops

except:
    # handle error

函数定义

def GPSFenceBreach(pos1, pos2):
    gpsFenceBar = 0.0005
    if (pos1 and pos2):
        p1lat, p1lng = pos1
        p2lat, p2lng = pos2
        gapLat = abs(float(p1lat) - float(p2lat))
        gapLng = abs(float(p2lat) - float(p2lng))
        if (gapLat + gapLng >= gpsFenceBar):
            return 1

    return 0

if (GPSFenceBreach([40.010,116.098], [40.011,116.989]) > 0):
    print('trigger alarm')
else:
    print('clear')

数组List可修改,元组Tuple不可修改

student = ['Bob', 'Jack']
student = ('Bob', 'Jack')
print(len(student))

数组处理

student = ['Jack','Mike']
print(len(student))
print(student)
print(student[0])

student.extend(['Shawn','John'])
student.append('Bob')
student.insert(1, 'Jerry')

student.pop()
student.pop(1)

检查键值

list = { "username": "qige", "password": "pass" }
if 'username' in list:
    print(list['username'])
if list.has_key('password'):
    print(list['password'])

元组处理

x = (99,91,92,8,10,1)
xMax = max(x)
print(xMax)
del x[1]

循环

sum = 0
for i in range(101):
    sum = sum + i
print(sum)

sum = 0
i = 100
while (i > 0):
    sum = sum + i
    i = i - 1
print(sum)

随机数

import random
xInt = random.randint(1, 100)
print(xInt)

如果代码是被导入的,不执行

if __name__ == "__main__":
    print('Run started with file')
else:
    print('Run started by import')

多线程

import threading

def fread(file, length):
    print("read %s (%d bytes)", % (file, length))

def fwrite(file, content):
    print("write %s (%s)", % (file, content))

threads = []
t1 = threading.Thread(target = fread, args = ('gps.txt', 128))
threads.append(t1)

t2 = threading.Thread(target = fwrite, args = ('gps.txt', 'V,,,,,'))
threads.append(t2)

if __name__ == '__main__':
    for t in threads:
        t.start()
    for t in threads:
        t.join()
    print('All threads end!')

多进程

import multiprocessing

def fread(file, length):
print("read %s (%d bytes)", % (file, length))

def fwrite(file, content):
print("write %s (%s)", % (file, content))

procs = []
p1 = multiprocessing.Process(target = fread, args = ('gps.txt', 128))
procs.append(p1)

p2 = multiprocessing.Process(target = fwrite, args = ('gps.txt', 'V,,,,,')
procs.append(p2)

if __name__ == '__main__':
    for p in procs:
        p.start()
    for p in procs:
        p.join()
    print('All proccesses started!')

results matching ""

    No results matching ""