• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Python編程基礎總結——《Python編程從入門到實踐》

    引言:

    “人生苦短,我用python”
    python之禪:Simple is better than complex
    在這里插入圖片描述

    目錄:

    1. 輸入函數輸出函數
    2. 數據類型(字符串、數值、列表、元組、字典)
    3. 結構語句(if條件語句、for循環、while循環)
    4. 函數定義和類定義
    5. 文件操作

    1.輸出函數&輸入函數

    • 輸出函數:
      print(變量)
    • 輸入函數:
      變量=input(向用戶顯示的提示)
      input()函數讓程序暫停運行,等待用戶輸入文本。獲取用戶輸入后,python將其存儲在一個變量中。
      input()得到的變量總是解讀為字符串,需使用**int()**函數將輸入轉為數值。

    2.數據類型

    • 字符串:
      在python中,字符串變量可用單引號或雙引號括起。
      支持的方法:
      .title():首字母大寫
      .upper():全部大寫
      .lower():全部小寫
      .strip():剔除兩端空白
      .lstrip():剔除開頭空白
      .rstrip():剔除末尾空白
    • 數值:
      整數和浮點數
      支持+、-、*、/、**(乘方)、%(取余)
      使用str()函數可將數值轉變為字符串
    • 列表:
      由一系列元素組成
      在python中,用方括號[ ]表示列表,并用逗號分隔
      索引從0開始,支持-1索引,表示倒數第一個
      訪問:list[index]
      添加:list.append(value) ; list.insert(index,value)
      刪除:del list[index] ; list.pop() ; list.pop(index) ; list.remove(value)
      排序:永久 list.sort() ; 臨時 sorted(list)
      確定長度:len(list)
      使用range()函數生成一系列數字:range(1,5)=1,2,3,4
      生成數字列表:list(range(1,5,2))=[1,3]
      列表解析:list=[value**2 for value in range(1,3)] 此時list=[1,4]
      切邊:list[0:3],即取列表中索引值從0到3的元素構成一個列表
      可使用切片復制列表
    • 元組:
      值不可修改的列表被稱為元組
      在python中,用方括號( )表示元組,并用逗號分隔
      訪問元素和列表一樣
      雖然不可修改元組的值,但可給存儲元組的變量重新賦值
    • 字典:
      字典是一系列鍵-值對,鍵-值對應,與鍵對應的值可以是數字、字符串、列表、字典
      字典放在{ }內,鍵值之間用:分隔,而鍵值對之間用逗號分隔
      訪問:value=dic[key]
      添加:dic[key]=value
      刪除:del dic[key]
      遍歷所有鍵值對:for key,value in dic.items()
      遍歷所有鍵: for key in dic.keys() ; for key in dic
      遍歷所有值:for value in dic.values()
      嵌套:字典作為列表元素;列表作為字典值;字典作為字典值

    3.結構語句

    (1)if語句
    if 條件測試1:
    \t語句1
    elif 條件測試2:
    \t語句2
    else:
    \t語句3

    條件測試:
    相等:==
    不相等:!=
    比較:< >
    and 和 or 鏈接多個測試
    in ; not in 判斷特定值是否包含在列表中
    列表是否為空

    (2)for循環
    列表遍歷
    for value in list:
    \t語句
    字典遍歷
    for value in dic:
    \t語句
    (3)while循環
    while 條件測試:
    \t語句

    可使用break退出循環
    使用continue退出本次循環

    4.函數定義&類定義

    • 函數定義:
      函數定義
      def fun():
      \t語句
      函數調用
      fun()
      傳遞實參
      位置實參:要求實參的順序和形參相同
      關鍵字實參:每個實參由變量名和值組成
      可以傳遞列表,此時對列表會做出永久性修改,若不修改,可傳遞列表切片
      傳遞任意數量的實參:fun(*par) *讓python創建一個名為par的空元組,將所有的值都傳遞到這個元組中。
      傳遞任意數量的關鍵字實參:fun(**par) **讓python創建一個名為par的字典,將所有的名稱-值對裝到這個字典中。
      函數(fun1)可以存儲在模塊(case1.py)中:
      當在case2.py中調用fun1:
      import case1 as c1
      from case1 import fun1 as f1
      from case1 import *
    • 類定義:
      類定義:
      class Cla():
      \t def init(self,par1,par2): #定義屬性
      \t\t 語句1
      \t def way1(self): #定義方法
      \t\t 語句2
      創建實例:
      obj=Cla(pal1,pal2)
      屬性和方法調用:
      Cla.par1
      Cla.par2
      Cla.way1()
      繼承:
      一個類繼承另一個類時,自動獲得另一個類的所有屬性和方法,同時還可以定義自己的屬性和方法。
      class Cla2(Cla1):
      \t def init(self,par1,par2,par3):
      \t\t super().init(par1,par2) #調用父類的初始化函數
      \t\t 語句
      類的屬性可接受一個實例
      導入類:
      from case1 import Cla1
      from case1 import *
      import case1

    5.文件操作

    讀取整個文件
    with open(‘路徑’) as file_object:
    \t contents=file_object.read()
    \t print(contents)
    逐行讀取
    with open(‘路徑’) as file_object:
    \t for line in file_object:
    \t print(line)
    創建一個包含文件各行內容的列表
    with open(‘路徑’) as file_object:
    \t lines=file_object.readlines()
    \t for line in lines:
    \t\t print(line.rstrip())
    讀取文件時,python將其中所有文本解讀為字符串

    寫入文件
    with open(‘路徑’,‘w’) as file_object:
    \t file_object.write(value)
    寫入多行
    with open(‘路徑’,‘w’) as file_object:
    \t file_object.write(value\n)
    \t file_object.write(value\n)
    附加到文件
    不會覆蓋原有內容
    with open(‘路徑’,‘a’) as file_object:
    \t file_object.write(value\n)
    \t file_object.write(value\n)

    6.python代碼實例:

    #用到列表解析

    def quicksort(arr):
        '''快速排序法'''
        if len(arr)<2:
            return arr
        else:
            pivot=arr[0] 
            less=[i for i in arr[1:] if i<pivot] #列表解析
            larger=[i for i in arr[1:] if i>pivot]
            return quicksort(less)+[pivot]+quicksort(larger)
    print(quicksort([1,5,3,2]))
    

    #for循環

    def findsmallest(arr):
        '''找列表中最小值'''
        smallest=arr[0]
        smallest_index=0
        for i in range(1,len(arr)):
            if arr[i]<smallest:
                smallest=arr[i]
                smallest_index=i
        return smallest_index
    def selectionsort(arr):
        '''選擇排序'''
        new_arr=[]
        for i in range(0,len(arr)):
            smallest_index=findsmallest(arr)
            new_arr.append(arr.pop(smallest_index))
        return new_arr
    print(selectionsort([1,5,4,2]))
    

    #while循環

    def binary_search(list,item):
        '''二分查找'''
        low=0 #起點
        high=len(list)-1 #終點
        while high>=low:
            mid=low+int((high-low)/2) #中間值
            if item==list[mid]:
                return mid
            elif item>list[mid]:
                low=mid+1;
            else:
                high=mid-1;
        return None
    list=[1,2,3,6,9,10]
    print(str(binary_search(list,6)))
    print(str(binary_search(list,4)))
    

    #字典

    from collections import deque
    '''圖的形成'''
    graph={}
    graph["you"]=["alice","bob","claire"]
    graph["bob"]=["anuj","peggy"]
    graph["alice"]=["peggy"]
    graph["claire"]=["thom","jonny"]
    graph["anuj"]=[]
    graph["peggy"]=[]
    graph["thom"]=[]
    graph["jonny"]=[]
    print(graph)
    '''廣度優先搜索'''
    def person_is_seller(name):
        '''定義一個供應商確定函數'''
        return name[-1]=="m"
    def BFsearch(name):
        '''借助隊列'''
        search_queue = deque()
        search_queue += graph[name]
        searched = []
        while search_queue:
            person = search_queue.popleft()
            if person not in searched:
                '''判斷是否重復'''
                if person_is_seller(person):
                    print(person+" is a seller!")
                    return True
                else:
                    '''否的話要將其朋友拉入隊列'''
                    search_queue += graph[person]
                    searched.append(person)
        
        return False
    print(BFsearch("you"))
    
    版權聲明:本文為changfei_1995原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/changfei_1995/article/details/89503098

    智能推薦

    猜你喜歡

    python學習——python編程從入門到實踐(3)

    第3章 列表 【動手試一試 】練習題: 列表元素訪問: 列表元素修改、插入、刪除: 列表元素排序:...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    精品国产乱码久久久久久蜜桃不卡