zoukankan      html  css  js  c++  java
  • python的基础学习 0

    python的基础学习 0

    编译和解释的区别是什么?

    编译型:一次性将所有程序编译成二进制文件。 缺点:开发效率低,不能跨平台。 优点:运行速度快。 :C,C++等等。

    解释型:当程序执行时,一行一行的解释。 优点:开发效率高,可以跨平台。 缺点:运行速度慢。 :python, php,等等。

    720333-20170320140758940-1485075006.png (1120×660)

    ASCLL表

    720333-20160722131729872-496732718.jpg (954×652)

    字符串格式化输出

    name = "wk"
    print "i am %s " % name
     
    #输出: i am wk
    print str + "TEST" # 输出连接的字符串

    查找:s.find

    分割:s.split

    大小写转换:s.upper s.lower

    截取: s[3:-1]

    追加:s+t

    替换:s.replace(",", "#")

    连接:",".join(s)//就是

    翻转:s[::-1]

    列表

    append:添加 a.append('你好')

    insert:在哪个后面添加什么 a.insert(0, '你好')

    remove:删除a.remove('a')

     


     

    数据结构

    数组

    1. 连续:顺序存储。

    2. 定长:一旦定义后,长度不可变。

    3. 根据下标可直接访问到这个下标的元素。

    4. 不适合做插入删除等操作。

    链表

    1. 可以不连续。

    2. 不定长

    3. 无法根据下标去直接访问,必须从头一个一个往后面找

    4. 适合做插入删除等操作。

    队列

    1. 先进先出

    2. 只能从队列末尾插入数据

    3. 只能从队列头部取出数据

    1. 先进后出

    2. 只能从尾部插入数据

    3. 只能从尾部取数据。

    1. 堆是一个二叉树

    2. 叶子节点只存在最下面两层。

    3. 从根节点到倒数第二层,是一个完全二叉树。

    4. 一个节点不可能只有右孩子。

    5. 一个节点的左孩子和右孩子都比这个节点大(或者小) 举个例子——大顶堆:

     

    1468679595465_5.png (410×458)

    遍历

    前序遍历(根左右)

    还是以上图为例,前序遍历顺序是: [1, 2, 5, 6, 3, 7, 8, 9]

    中序遍历(左根右)

    还是以上图为例,中序遍历顺序是: [5, 2, 6, 1, 8, 7, 9, 3]

    后续遍历(左右根)

    还是以上图为例,后序遍历顺序是: [5, 6, 2, 8, 9, 7 ,3, 1]

    插入排序

    578b8d33eb7afd55e4000005.gif (300×180)

    def insert_sort(origin_list):
       sorted_list = []
       for i in range(0, len(origin_list)):
           #print sorted_list
           if len(sorted_list) == 0:
               sorted_list.append(origin_list[i])
               continue
           for j in range(len(sorted_list) - 1, -1, -1):
               if sorted_list[j] <= origin_list[i]:
                   sorted_list.insert(j + 1, origin_list[i])
                   break
               if j == 0:
                   sorted_list.insert(0, origin_list[i])
       origin_list[:] = sorted_list[:]
    origin_list = [5, 3, 1, 7, 9, 8]
    insert_sort(origin_list)
    print origin_list

     

    冒泡排序

    578b8d76eb7afd55e4000006.gif (300×180)

    def bubble_sort(origin_list):
       for i in range(len(origin_list), 0, -1):
           #print origin_list
           for j in range(0, i - 1):
               if origin_list[j] > origin_list[j + 1]:
                   origin_list[j], origin_list[j + 1] = origin_list[j + 1], origin_list[j]
    origin_list = [5, 3, 1, 7, 9, 8]
    bubble_sort(origin_list)
    print origin_list

     

    快速排序

    578b8dfbeb7afd55e4000008.gif (280×214)

    def quick_sort(origin_list, start, end):
       if start >= end:
           return
       left = start
       right = end
       flag_index = left
       while left < right:
           while right > left:
               if origin_list[right] < origin_list[flag_index]:
                   origin_list[right], origin_list[flag_index] = origin_list[flag_index], origin_list[right]
                   flag_index = right
                   break
               right -= 1
           while left < right:
               if origin_list[left] > origin_list[flag_index]:
                   origin_list[left], origin_list[flag_index] = origin_list[flag_index], origin_list[left]
                   flag_index = left
                   break
               left += 1
       quick_sort(origin_list, start, flag_index)
       quick_sort(origin_list, flag_index + 1, end)
    origin_list = [5, 3, 1, 3, 7, 9, 8]
    quick_sort(origin_list, 0, len(origin_list) - 1)
    print origin_list

     

    归并排序

    578b8da7eb7afd55e4000007.gif (300×180)

     

    def merge_sort(origin_list, start, end):
       if end <= start:
           return
       mid = (start + end) / 2
       merge_sort(origin_list, start, mid)
       merge_sort(origin_list, mid + 1, end)
       left_head = start
       right_head = mid + 1
       temp_list = []
       while left_head <= mid and right_head <= end:
           if origin_list[left_head] < origin_list[right_head]:
               temp_list.append(origin_list[left_head])
               left_head += 1
           if origin_list[left_head] >= origin_list[right_head]:
               temp_list.append(origin_list[right_head])
               right_head += 1
       if left_head <= mid:
           temp_list += origin_list[left_head:mid + 1]
       if right_head <= end:
           temp_list += origin_list[right_head:end + 1]
       for i in range(0, len(temp_list)):
           origin_list[i + start] = temp_list[i]
    origin_list = [5, 3, 1, 3, 7, 9, 8]
    merge_sort(origin_list, 0, len(origin_list) - 1)
    print origin_list

     

  • 相关阅读:
    closure
    运算符优先级
    css妙用
    BFC (块级格式化上下文)
    display:table-cell 详解
    line-height深入理解
    margin collapse
    探究 CSS 解析原理
    python入门
    spring与线程安全
  • 原文地址:https://www.cnblogs.com/wkjava/p/12638417.html
Copyright © 2011-2022 走看看