• 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('
    '.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')
  • 相关阅读:
    LeetCode No961. 在长度 2N 的数组中找出重复 N 次的元素
    LeetCode No468. 验证IP地址
    LeetCode No56. 合并区间
    LeetCode No50. Pow(x, n)
    LeetCode No1021. 删除最外层的括号
    LeetCode No53. 最大子数组和
    LeetCode No52. N皇后 II
    LeetCode No57. 插入区间
    LeetCode No965. 单值二叉树
    LeetCode No48. 旋转图像
  • 原文地址:https://www.cnblogs.com/hello-wei/p/9783131.html
Copyright © 2020-2023  润新知