Python 基礎(chǔ)知識:語法、數(shù)據(jù)類型和控制結(jié)構(gòu)
推薦:使用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'。當用戶輸入其名稱(字符串)時,它將存儲在“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é)生的信息(姓名和分數(shù))作為鍵值對:
student_info = {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 88}
但是等等,有一種更優(yōu)雅的方法可以在 Python 中創(chuàng)建字典。
我們即將學(xué)習(xí)一個新概念:字典理解。如果不是馬上就清楚了,不要擔心。您可以隨時了解更多信息并在以后處理它。
但是理解是非常直觀的理解。如果您希望“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)考試分數(shù)配對,以創(chuàng)建“student_info”字典,其中姓名作為鍵,分數(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ù)。
如果語句當僅當特定條件為真時才需要執(zhí)行代碼塊時,可以使用“if”語句。如果條件的計算結(jié)果為 false,則不執(zhí)行代碼塊。
圖片來源:作者
請考慮以下示例:
score = 75 if score >= 60: print("Congratulations! You passed the exam.")
在此示例中,僅當“score”大于或等于 60 時,才會執(zhí)行“if”塊中的代碼。由于“分數(shù)”是 75,因此消息“恭喜!你通過了考試“,將打印出來。
Output >>> Congratulations! You passed the exam.If-else 條件語句
“if-else”語句允許您在條件為真時執(zhí)行一個代碼塊,如果條件為假,則執(zhí)行另一個代碼塊。
圖片來源:作者
讓我們以測試分數(shù)示例為基礎(chǔ):
score = 45 if score >= 60: print("Congratulations! You passed the exam.") else: print("Sorry, you did not pass the exam.")
在這里,如果“分數(shù)”小于 60,則將執(zhí)行“else”塊中的代碼:
Output >>> Sorry, you did not pass the exam.If-elif-else Ladder
當您有多個條件要檢查時,將使用“if-elif-else”語句。它允許您測試多個條件,并為遇到的第一個 true 條件執(zhí)行相應(yīng)的代碼塊。
如果 'if' 和所有 'elif' 語句中的條件計算結(jié)果為 false,則執(zhí)行 'else' 塊。
圖片來源:作者
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ù)多個條件檢查“分數(shù)”。將執(zhí)行第一個 true 條件塊中的代碼。由于“分數(shù)”是 82,我們得到:
Output >>> Good job! You got a B.嵌套 If 語句
當您需要檢查另一個條件中的多個條件時,使用嵌套的“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,則檢查“分數(shù)”。由于“分數(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()”方法用于刪除并返回列表中的最后一個元素,并打印當前學(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)有的可迭代對象(如列表)。但是,當循環(huán)條件更復(fù)雜時,“while”循環(huán)可以提供更多的控制。
循環(huán)控制語句“break”過早退出循環(huán),“continue”跳過當前迭代的其余部分并移動到下一個迭代。
下面是一個示例:
student_names = ["Alice", "Bob", "Charlie", "David"] for name in student_names: if name == "Charlie": break print(name)
當“名字”是查理時,控件脫離循環(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ù)步驟我希望您能夠毫無困難地編寫本教程的代碼?,F(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)系工作人員刪除。