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!')