博客專欄

        EEPW首頁 > 博客 > Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu)

        Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu)

        發(fā)布人:ygtu 時間:2023-09-11 來源:工程師 發(fā)布文章
        推薦:使用NSDT場景編輯器快速搭建3D應(yīng)用場景

        如果開發(fā)和環(huán)境中已安裝 Python,請啟動 Python REPL 和代碼。或者,如果您想跳過安裝并立即開始編碼,我建議您前往Google Colab并一起編碼。

        你好,Python!

        在我們用Python編寫經(jīng)典的“Hello,world!”程序之前,這里有一些關(guān)于語言的信息。Python是一種解釋型語言。這是什么意思?

        在任何編程語言中,您編寫的所有源代碼都應(yīng)翻譯成機器語言。雖然像C和C++這樣的編譯語言在程序運行之前需要整個機器代碼,但解釋器會解析源代碼并動態(tài)解釋它。

        創(chuàng)建一個 Python 腳本,鍵入以下代碼并運行它:

        print("Hello, World!")

        為了打印出Hello, World!,我們使用了“print()”函數(shù),這是Python中眾多內(nèi)置函數(shù)之一。

        在這個超級簡單的示例中,請注意“Hello, World!”是一個序列 - 一串字符。Python 字符串由一對單引號或雙引號分隔。因此,要打印出任何消息字符串,您可以使用“print(”<message_string>“)”。

        讀取用戶輸入

        現(xiàn)在讓我們更進一步,使用 'input()' 函數(shù)讀取用戶的一些輸入。應(yīng)始終提示用戶讓他們知道應(yīng)輸入的內(nèi)容

        這是一個簡單的程序,它將用戶名作為輸入并問候他們。

        注釋通過向用戶提供其他上下文來幫助提高代碼的可讀性。Python 中的單行注釋以 # 開頭。

        請注意,下面代碼片段中的字符串前面有一個“f”。此類字符串稱為格式化字符串或 f 字符串。若要替換 f 字符串中變量的值,請在一對大括號內(nèi)指定變量的名稱,如下所示:

        # Get user input
        user_name = input("Please enter your name: ")
        
        # Greet the user
        print(f"Hello, {user_name}! Nice to meet you!")

        運行程序時,系統(tǒng)將首先提示您輸入,然后打印出問候消息:

        Please enter your name: Bala
        Hello, Bala! Nice to meet you!

        讓我們繼續(xù)學(xué)習(xí) Python 中的變量和數(shù)據(jù)類型。

        Python 中的變量和數(shù)據(jù)類型

        在任何編程語言中,變量都像存儲信息的容器。在我們到目前為止編寫的代碼中,我們已經(jīng)創(chuàng)建了一個變量 'user_name'。當(dāng)用戶輸入其名稱(字符串)時,它將存儲在“user_name”變量中。

        Python 中的基本數(shù)據(jù)類型

        讓我們來看看 Python 中的基本數(shù)據(jù)類型:“int”、“float”、“str”和“bool”,使用相互構(gòu)建的簡單示例:

        整數(shù)('int'):整數(shù)是沒有小數(shù)點的整數(shù)。您可以創(chuàng)建整數(shù)并將它們分配給變量,如下所示:

        age = 25
        discount= 10

        這些是將值賦給變量的賦值語句。在 C 等語言中,聲明變量時必須指定數(shù)據(jù)類型,但 Python 是一種動態(tài)類型語言。它從值推斷數(shù)據(jù)類型。因此,您可以重新分配一個變量來保存完全不同的數(shù)據(jù)類型的值:

        number = 1
        number = 'one'

        您可以使用“type”函數(shù)檢查Python中任何變量的數(shù)據(jù)類型:

        number = 1
        print(type(number))

        “數(shù)字”是一個整數(shù):

        Output >>> <class 'int'>

        我們現(xiàn)在為“數(shù)字”分配一個字符串值:

        number = 'one'
        print(type(number))
        Output >>> <class 'str'>

        浮點數(shù)(“float”):浮點數(shù)表示帶有小數(shù)點的實數(shù)。您可以創(chuàng)建“float”數(shù)據(jù)類型的變量,如下所示:

        height = 5.8
        pi = 3.14159

        您可以對數(shù)值數(shù)據(jù)類型執(zhí)行各種運算(加法、減法、下限除法、冪等)。以下是一些示例:

        # Define numeric variables
        x = 10
        y = 5
        
        # Addition
        add_result = x + y
        print("Addition:", add_result)  # Output: 15
        
        # Subtraction
        sub_result = x - y
        print("Subtraction:", sub_result)  # Output: 5
        
        # Multiplication
        mul_result = x * y
        print("Multiplication:", mul_result)  # Output: 50
        
        # Division (floating-point result)
        div_result = x / y
        print("Division:", div_result)  # Output: 2.0
        
        # Integer Division (floor division)
        int_div_result = x // y
        print("Integer Division:", int_div_result)  # Output: 2
        
        # Modulo (remainder of division)
        mod_result = x % y
        print("Modulo:", mod_result)  # Output: 0
        
        # Exponentiation
        exp_result = x ** y
        print("Exponentiation:", exp_result)  # Output: 100000

        字符串('str'):字符串是字符序列,括在單引號或雙引號中。

        name = "Alice"
        quote = 'Hello, world!'

        布爾值(“bool”):布爾值表示“真”或“假”,表示條件的真值。

        is_student = True
        has_license = False

        Python 在處理不同數(shù)據(jù)類型方面的靈活性使您可以有效地存儲、執(zhí)行各種操作和操作數(shù)據(jù)。

        下面是一個示例,將我們迄今為止學(xué)到的所有數(shù)據(jù)類型放在一起:

        # Using different data types together
        age = 30
        score = 89.5
        name = "Bob"
        is_student = True
        
        # Checking if score is above passing threshold
        passing_threshold = 60.0
        is_passing = score >= passing_threshold
        
        print(f"{name=}")
        print(f"{age=}")
        print(f"{is_student=}")
        print(f"{score=}")
        print(f"{is_passing=}")

        這是輸出:

        Output >>>
        
        name='Bob'
        age=30
        is_student=True
        score=89.5
        is_passing=True
        超越基本數(shù)據(jù)類型

        假設(shè)您正在管理課堂上有關(guān)學(xué)生的信息。創(chuàng)建一個集合(存儲所有學(xué)生的信息)會比為每個學(xué)生重復(fù)定義變量更有幫助。

        列表

        列表是項的有序集合,括在一對方括號內(nèi)。列表中的項都可以是相同或不同的數(shù)據(jù)類型。列表是可變的,這意味著您可以在創(chuàng)建后更改其內(nèi)容。

        在這里,“student_names”包含學(xué)生的姓名:

        # List
        student_names = ["Alice", "Bob", "Charlie", "David"]
        元組

        元組是類似于列表的有序集合,但它們是不可變的,這意味著您在創(chuàng)建后無法更改其內(nèi)容。

        假設(shè)您希望“student_scores”成為包含學(xué)生考試成績的不可變集合。

        # Tuple
        student_scores = (85, 92, 78, 88)
        字典

        字典是鍵值對的集合。字典的鍵應(yīng)該是唯一的,并且它們映射到相應(yīng)的值。它們是可變的,允許您將信息與特定鍵相關(guān)聯(lián)。

        在這里,“student_info”包含有關(guān)每個學(xué)生的信息(姓名和分?jǐn)?shù))作為鍵值對:

        student_info = {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}

        但是等等,有一種更優(yōu)雅的方法可以在 Python 中創(chuàng)建字典。

        我們即將學(xué)習(xí)一個新概念:字典理解。如果不是馬上就清楚了,不要擔(dān)心。您可以隨時了解更多信息并在以后處理它。

        但是理解是非常直觀的理解。如果您希望“student_info”詞典將學(xué)生姓名作為鍵,并將他們相應(yīng)的考試成績作為值,則可以像這樣創(chuàng)建字典:

        # Using a dictionary comprehension to create the student_info dictionary
        student_info = {name: score for name, score in zip(student_names, student_scores)}
        
        print(student_info)

        請注意我們?nèi)绾问褂?'zip()' 函數(shù)同時遍歷 'student_names' 列表和 'student_scores' 元組。

        Output >>>
        
        {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}

        在此示例中,字典理解直接將“student_names”列表中的每個學(xué)生姓名與“student_scores”元組中的相應(yīng)考試分?jǐn)?shù)配對,以創(chuàng)建“student_info”字典,其中姓名作為鍵,分?jǐn)?shù)作為值。

        現(xiàn)在您已經(jīng)熟悉了原始數(shù)據(jù)類型和一些序列/可迭代對象,讓我們繼續(xù)討論的下一部分:控制結(jié)構(gòu)

        Python 中的控制結(jié)構(gòu)

        運行 Python 腳本時,代碼執(zhí)行按順序執(zhí)行,順序與代碼在腳本中執(zhí)行的順序相同。

        有時,您需要實現(xiàn)邏輯來根據(jù)某些條件控制執(zhí)行流,或者循環(huán)通過可迭代對象來處理其中的項。

        我們將了解 if-else 語句如何促進分支和條件執(zhí)行。我們還將學(xué)習(xí)如何使用循環(huán)迭代序列,循環(huán)控制語句中斷并繼續(xù)。

        如果語句

        當(dāng)僅當(dāng)特定條件為真時才需要執(zhí)行代碼塊時,可以使用“if”語句。如果條件的計算結(jié)果為 false,則不執(zhí)行代碼塊。

        Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu)


        圖片來源:作者

        請考慮以下示例:

        score = 75
        
        if score >= 60:
            print("Congratulations! You passed the exam.")

        在此示例中,僅當(dāng)“score”大于或等于 60 時,才會執(zhí)行“if”塊中的代碼。由于“分?jǐn)?shù)”是 75,因此消息“恭喜!你通過了考試“,將打印出來。

        Output >>> Congratulations! You passed the exam.
        If-else 條件語句

        “if-else”語句允許您在條件為真時執(zhí)行一個代碼塊,如果條件為假,則執(zhí)行另一個代碼塊。

        Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu)


        圖片來源:作者

        讓我們以測試分?jǐn)?shù)示例為基礎(chǔ):

        score = 45
        
        if score >= 60:
            print("Congratulations! You passed the exam.")
        else:
            print("Sorry, you did not pass the exam.")

        在這里,如果“分?jǐn)?shù)”小于 60,則將執(zhí)行“else”塊中的代碼:

        Output >>> Sorry, you did not pass the exam.
        If-elif-else Ladder

        當(dāng)您有多個條件要檢查時,將使用“if-elif-else”語句。它允許您測試多個條件,并為遇到的第一個 true 條件執(zhí)行相應(yīng)的代碼塊。

        如果 'if' 和所有 'elif' 語句中的條件計算結(jié)果為 false,則執(zhí)行 'else' 塊。

        Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu)


        圖片來源:作者

        score = 82
        
        if score >= 90:
            print("Excellent! You got an A.")
        elif score >= 80:
            print("Good job! You got a B.")
        elif score >= 70:
            print("Not bad! You got a C.")
        else:
            print("You need to improve. You got an F.")

        在此示例中,程序根據(jù)多個條件檢查“分?jǐn)?shù)”。將執(zhí)行第一個 true 條件塊中的代碼。由于“分?jǐn)?shù)”是 82,我們得到:

        Output >>> Good job! You got a B.
        嵌套 If 語句

        當(dāng)您需要檢查另一個條件中的多個條件時,使用嵌套的“if”語句。

        name = "Alice"
        score = 78
        
        if name == "Alice":
            if score >= 80:
                print("Great job, Alice! You got an A.")
            else:
                print("Good effort, Alice! Keep it up.")
        else:
            print("You're doing well, but this message is for Alice.")

        在此示例中,有一個嵌套的“if”語句。首先,程序檢查“名稱”是否為“愛麗絲”。如果為 true,則檢查“分?jǐn)?shù)”。由于“分?jǐn)?shù)”為 78,因此執(zhí)行內(nèi)部的“else”塊,打印“努力好,愛麗絲!堅持下去。

        Output >>> Good effort, Alice! Keep it up.

        Python 提供了幾個循環(huán)構(gòu)造來迭代集合或執(zhí)行重復(fù)性任務(wù)。

        對于循環(huán)

        在 Python 中,“for”循環(huán)提供了一個簡潔的語法,讓我們迭代現(xiàn)有的可迭代對象。我們可以像這樣迭代“student_names”列表:

        student_names = ["Alice", "Bob", "Charlie", "David"]
        
        for name in student_names:
            print("Student:", name)

        上面的代碼輸出:

        Output >>>
        
        Student: Alice
        Student: Bob
        Student: Charlie
        Student: David
        而循環(huán)

        如果你想在條件為真的情況下執(zhí)行一段代碼,你可以使用“while”循環(huán)。

        讓我們使用相同的“student_names”列表:

        # Using a while loop with an existing iterable
        
        student_names = ["Alice", "Bob", "Charlie", "David"]
        index = 0
        
        while index < len(student_names):
            print("Student:", student_names[index])
            index += 1

        在此示例中,我們有一個包含學(xué)生姓名的列表“student_names”。我們使用“while”循環(huán)通過跟蹤“index”變量來迭代列表。

        只要“索引”小于列表的長度,循環(huán)就會繼續(xù)。在循環(huán)中,我們打印每個學(xué)生的姓名并遞增“索引”以移動到下一個學(xué)生。請注意使用“l(fā)en()”函數(shù)來獲取列表的長度。

        這實現(xiàn)了與使用“for”循環(huán)遍歷列表相同的結(jié)果:

        Output >>>
        
        Student: Alice
        Student: Bob
        Student: Charlie
        Student: David

        讓我們使用一個 'while' 循環(huán),從列表中彈出元素,直到列表為空:

        student_names = ["Alice", "Bob", "Charlie", "David"]
        
        while student_names:
            current_student = student_names.pop()
            print("Current Student:", current_student)
        
        print("All students have been processed.")

        列表方法“pop”刪除并返回列表中存在的最后一個元素。

        在此示例中,只要“student_names”列表中存在元素,“while”循環(huán)就會繼續(xù)。在循環(huán)中,“pop()”方法用于刪除并返回列表中的最后一個元素,并打印當(dāng)前學(xué)生的姓名。

        循環(huán)將繼續(xù),直到所有學(xué)生都已處理完畢,并在循環(huán)外打印最后一條消息。

        Output >>>
        
        Current Student: David
        Current Student: Charlie
        Current Student: Bob
        Current Student: Alice
        All students have been processed.

        “for”循環(huán)通常更簡潔,更易于閱讀,用于迭代現(xiàn)有的可迭代對象(如列表)。但是,當(dāng)循環(huán)條件更復(fù)雜時,“while”循環(huán)可以提供更多的控制。

        循環(huán)控制語句

        “break”過早退出循環(huán),“continue”跳過當(dāng)前迭代的其余部分并移動到下一個迭代。

        下面是一個示例:

        student_names = ["Alice", "Bob", "Charlie", "David"]
        
        for name in student_names:
            if name == "Charlie":
                break
            print(name)

        當(dāng)“名字”是查理時,控件脫離循環(huán),給我們輸出:

        Output >>>
        Alice
        Bob
        模擬執(zhí)行時循環(huán)行為

        在Python中,沒有像其他一些編程語言那樣的內(nèi)置“do-while”循環(huán)。但是,您可以使用帶有“break”語句的“while”循環(huán)來實現(xiàn)相同的行為。以下是在 Python 中模擬“do-while”循環(huán)的方法:

        while True:
            user_input = input("Enter 'exit' to stop: ")
            if user_input == 'exit':
                break

        在此示例中,循環(huán)將無限期地繼續(xù)運行,直到用戶進入“exit”。循環(huán)至少運行一次,因為條件最初設(shè)置為“True”,然后在循環(huán)內(nèi)檢查用戶的輸入。如果用戶輸入“exit”,則執(zhí)行“break”語句,退出循環(huán)。

        下面是一個示例輸出:

        Output >>>
        Enter 'exit' to stop: hi
        Enter 'exit' to stop: hello
        Enter 'exit' to stop: bye
        Enter 'exit' to stop: try harder!
        Enter 'exit' to stop: exit

        請注意,此方法類似于其他語言中的“do-while”循環(huán),其中循環(huán)體保證在檢查條件之前至少執(zhí)行一次。

        總結(jié)和后續(xù)步驟

        我希望您能夠毫無困難地編寫本教程的代碼。現(xiàn)在您已經(jīng)了解了 Python 的基礎(chǔ)知識,是時候開始編寫一些超級簡單的項目了,應(yīng)用您學(xué)到的所有概念。

        原文鏈接:Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu) (mvrlink.com)


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: 數(shù)據(jù)分析 python

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 深水埗区| 乐陵市| 昭平县| 建平县| 奇台县| 大新县| 界首市| 潼南县| 库伦旗| 乌鲁木齐市| 太白县| 靖州| 南京市| 廉江市| 株洲县| 汉源县| 攀枝花市| 纳雍县| 东源县| 仁化县| 阳信县| 桦川县| 同江市| 宁武县| 沾益县| 东乡县| 友谊县| 棋牌| 祁阳县| 宝应县| 江北区| 伊川县| 高邑县| 洛阳市| 隆德县| 承德县| 巴东县| 鲁甸县| 汉沽区| 库伦旗| 建瓯市|