python 小记
判断一个数是奇数还是偶数
#!/usr/bin/env python3 #_*_coding:UTF-8_*_ def pan(num): if num % 2 ==0: print( str(num) + ' is: 偶数') else: print( str(num) + ' is: 奇数') pan(3) pan(4)
一句话打印九九乘法表
#coding:utf-8 print('\n'.join([' '.join('%sx%s=%-2s'%(x,y,x*y) for x in range(1,y+1)) for y in range(1,10)]))
经典排序之快速排序实现
#!/usr/bin/python3 #_*_coding:UTF-8_*_ def quicksort(L): qsort(L,0,len(L)-1) def qsort(L,first,last): if first<last: split=partition(L,first,last) qsort(L,first,split - 1) qsort(L,split + 1,last) def partition(L,first,last): #选取类表中的第一个元素作为划分元素 pivot=L[first] leftmark=first+1 rightmark=last while True: while L[leftmark]<=pivot: #如果列表中存在与划分元素pivot相等的元素,就让它位于left部分 #以下检测用于划分元素pivot是列表中最大元素时 #防止leftMark越界 if leftmark==rightmark: break leftmark+=1 while L[rightmark]>pivot: #这里不需要检测,划分元素pivot是列表中最小的元素时 #rightMark自动停在first处 rightmark-=1 if leftmark < rightmark: #此时,leftMark处的元素大于pivot #rightMark处的元素小于等于pivot,交换两者 L[leftmark],L[rightmark]=L[rightmark],L[leftmark] else: break #交换first处的划分元素与rightMark处的元素 L[first],L[rightmark]=L[rightmark],L[first] #返回划分元素pivot的最终位置 return rightmark num_list=[5,-4,6,3,7,1,2,8] print('排序之前:'+str(num_list)) quicksort(num_list) print('排序之后:'+str(num_list))
运行结果:
排序之前:[5, -4, 6, 3, 7, 1, 2, 8]
排序之后:[-4, 1, 2, 3, 5, 6, 7, 8]
递归操作:
#!/usr/bin/python3 #_*_coding:UTF-8_*_ def fact(n) if n==1: return 1 return n*fact(n-1) fact(5)
匿名块
q = list(filter(lambda x:x%2 == 0, range(1,10))) [2, 4, 6, 8]
写日志
import logging def logger_set(): logger=logging.getLogger('mylog') logger.setLevel(logging.DEBUG) path='/home/python/tmp/test/test.log' fh=logging.FileHandler(path) fh.setLevel(logging.info) ch=logging.StreamHandler() ch.setLevel(logging.error) formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s-%(message)s') fh.setFormatter(formatter) ch.setFormatter(formatter) logger.addHandler(fh) logger.addHandler(ch) return logger lg=logger_set() lg.info('hello world')
天下难事,必作于易;天下大事,必作于细