<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • <>1 函數

    <>1.1 函數定義

    1)輸出字符串“Hello World!":
    def hello(): print("Hello World!")
    2)比較兩個數,并返回較大的數
    def max(a,b): if a > b: return a else: return b
    <>1.2 函數調用
    hello()
    運行結果:

    Hello World!
    a = 10 b = 20 print(max(a,b))
    運行結果:

    20

    <>1.3 參數傳遞

    * 在python中,類型屬于對象,對象有不同類型的區分,變量是沒有類型的。
    * 在python中,strings, tuples和numbers是不可更改的對象,而list和dict等則是可以修改的對象。
    <>1.3.1 不可變類型

    類似C++的值傳遞,如整數、字符串、元組。傳遞的只是對象的值,沒有影響被傳遞對象本身。
    def swap(a,b): z = a a = b b = z a = 5 b = 10 swap(a, b) print(a) print(b)
    運行結果:

    5
    10

    <>1.3.2 可變類型

    類似C++的引用傳遞,如列表、字典。
    def changelist(mylist): mylist.append([1,2,3,4]) return mylist=[10,20,30]
    changelist(mylist) print(mylist)
    運行結果:

    [10,20,30,[1,2,3,4]]

    <>1.4 參數

    * 必須參數
    * 關鍵字參數
    * 默認參數
    * 不定長參數
    <>1.4.1 必須參數

    必須參數須以正確的順序傳入函數,調用時的數量必須和聲明時的一樣。
    def print_str(str): print(str) return print_str("hello")
    運行結果:

    hello

    <>1.4.2 關鍵字參數

    使用關鍵字參數允許函數調用時參數的順序與聲明時不一致。

    以下實例中函數參數的使用不需要使用指定順序:
    def printInfo(name, age): print("名字:", name) print("年齡:", age) return printInfo
    (age = 50, name = "John")
    運行結果:

    名字: John
    年齡: 50

    <>1.4.3 默認參數

    調用函數時,如果沒有傳遞參數,則會使用默認參數。

    以下實例,如果沒有傳入age參數,則使用默認值:
    def printInfo(name, age=30): print("名字:", name) print("年齡:", age) return
    printInfo(name = "John")
    運行結果:

    名字: John
    年齡: 30

    <>1.4.4 不定長參數

    1)加了星號 * 的參數會以元組(tuple)的形式導入,存放所有未命名的變量參數。
    def printInfo(arg1, *vartuple): "打印任何傳入的參數" print(arg1) print(vartuple)
    printInfo(10, 20, 30)
    運行結果:

    10
    (20, 30)

    2)加了兩個星號 ** 的參數會以字典的形式導入。
    def printInfo(arg1, **vardict): "打印任何傳入的參數" print(arg1) print(vardict)
    printInfo(20, a=5, b=8)
    運行結果:

    20
    {‘a’: 5, ‘b’: 8}

    <>1.5 return語句

    return[表達式]語句用于退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。

    <>2 面向對象

    <>2.1 類定義

    1、定義一個Student類
    class Student: pass
    2、類的構造方法:__ init__(),該方法在類實例化時會自動調用。

    3、__ init__()可以有參數,參數通過它傳遞到類的實例化操作上。
    class Student: # 定義基本屬性 name = '' age = 0 score = 0 # 定義私有屬性,在類外部無法直接進行訪問
    __weight= 0 # 定義構造方法 def __init__(self, name, age, score): self.name = name self
    .age = age self.score = score # 實例化 stu = Student("John", 90)
    <>2.2 類的方法

    類方法必須包含參數self,且為第一個參數,self代表的是類的實例。
    class Person: name = '' age = 0 __weight = 0 def __init__(self, name, age,
    weight): self.name = name self.age = age self.__weight = weight def printInfo(
    self): print("姓名:", self.name) print("年齡:", self.age) # 實例化 p = Person("John",
    18, 80) p.printInfo()
    運行結果:

    姓名: John
    年齡: 18

    <>2.3 繼承

    繼承Person類:
    class Student(Person): score = 0 def __init__(self, name, age, weight, score):
    #調用父類的構造函數 Person.__init__(self, name, age, weight) self.score = score # 覆蓋父類的方法
    def printInfo(self): print("姓名:", self.name) print("年齡:", self.age) print("分數:",
    self.score) stu = Student('Ken', 20, 75, 90) stu.printInfo()
    運行結果:

    姓名: Ken
    年齡: 20
    分數: 90

    <>2.4 方法重寫

    如果父類方法的功能不能滿足要求,可以在子類中重寫父類的方法,上面子類Student重寫了父類Person的方法printInfo()。

    <>3 模塊

    一個python文件主要有兩種使用方法:

    1. 作為腳本直接執行
    如果作為腳本直接執行,if __ name__ == “__ main__”:語句之前和之后的代碼都被執行。

    2. import到其他python腳本中被調用
    如果import執行,if __ name__ == “__ main__”:語句之前的代碼被執行,而之后的代碼沒有被執行。

    <>4 日期和時間

    獲取格式化日期和時間的兩種方式:
    1、通過time模塊
    import time print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    運行結果:

    2022-12-29 16:15:25

    2、通過datetime模塊
    from datetime import datetime print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"
    ))
    運行結果:

    2022-12-29 16:14:56

    <>5 文件

    1、mode = ‘w’,以寫入模式打開文件
    # 以w寫入模式,創建test.txt file = open('./test.txt', mode = 'w') # 寫入內容 file.write(
    'hello\n') file.write('world\n') # 關閉文件 file.close()
    文本內容為:

    hello
    world

    2、mode = ‘a’,以追加內容模式打開文件
    file = open('./test.txt', mode = 'a') file.write('hello world\n') file.close()
    文本內容為:

    hello
    world
    hello world

    3、mode = ‘r’,以只讀模式打開文件
    file = open('./test.txt', mode = 'r')
    讀取一行內容:
    str = file.readline() print(str) str = file.readline() print(str) str = file.
    readline() print(str) file.close()
    運行結果:

    hello
    world
    hello world

    <>6 多線程

    Python3線程中常用的兩個模塊為:

    * _thread
    * threading(推薦使用)
    <>6.1 使用_thread模塊創建線程

    調用_thread模塊中的start_new_thread()函數來產生新線程:
    import _thread import time # 為線程定義一個函數 def print_time(threadName, delay): count
    = 0 while count < 5: time.sleep(delay) count += 1 print(time.strftime("%Y-%m-%d
    %H:%M:%S", time.localtime()) + ' ' + threadName + '\n') # 創建兩個線程 try: _thread.
    start_new_thread(print_time, ("Thread - 1", 2, )) _thread.start_new_thread(
    print_time, ("Thread - 2", 4, )) except: print("Error:無法啟動線程")
    運行結果:

    2022-12-29 17:45:43 Thread - 1
    2022-12-29 17:45:45 Thread - 2
    2022-12-29 17:45:45 Thread - 1
    2022-12-29 17:45:47 Thread - 1
    2022-12-29 17:45:49 Thread - 2
    2022-12-29 17:45:49 Thread - 1
    2022-12-29 17:45:51 Thread - 1
    2022-12-29 17:45:53 Thread - 2
    2022-12-29 17:45:57 Thread - 2
    2022-12-29 17:46:01 Thread - 2

    <>6.2 使用threading模塊創建線程
    import threading import time exitFlag = 0 class myThread(threading.Thread): def
    __init__(self, threadID, name, delay): threading.Thread.__init__(self) self.
    threadID= threadID self.name = name self.delay = delay def run(self): print(
    "開始線程:" + self.name) print_time(self.name, self.delay, 5) print("退出線程:" + self.
    name) def print_time(threadName, delay, counter): while counter: if exitFlag:
    threadName.exit() time.sleep(delay) print(threadName + time.strftime(" %Y-%m-%d
    %H:%M:%S", time.localtime()) + '\n') counter -= 1 thread1 = myThread(1,
    "Thread-1", 2) thread2 = myThread(2, "Thread-2", 4) thread1.start() thread2.
    start() thread1.join() thread2.join() print("退出主線程")
    運行結果:

    開始線程:Thread-1
    開始線程:Thread-2
    Thread-1 2022-12-30 09:05:35
    Thread-2 2022-12-30 09:05:37
    Thread-1 2022-12-30 09:05:37
    Thread-1 2022-12-30 09:05:39
    Thread-2 2022-12-30 09:05:41
    Thread-1 2022-12-30 09:05:41
    Thread-1 2022-12-30 09:05:43
    退出線程:Thread-1
    Thread-2 2022-12-30 09:05:45
    Thread-2 2022-12-30 09:05:49
    Thread-2 2022-12-30 09:05:53
    退出線程:Thread-2
    退出主線程

    技術
    今日推薦
    閱讀數 483
    閱讀數 80
    閱讀數 32
    閱讀數 27
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频