Python小白的蛻變之旅:從環境搭建到代碼規范(1/10)

摘要:全文圍繞 Python 編程展開,先是介紹如何搭建 Python 開發環境,推薦使用 Anaconda 和 VSCode,并詳細說明了二者的安裝及配置步驟,包括安裝 Anaconda、安裝 VSCode 并配置 Python 插件、選擇 Anaconda 的 Python 解釋器等關鍵環節。接著深入講解 Python 基礎語法,如變量類型(整數、浮點數、字符串、列表、元組、集合、字典)、運算符優先級以及控制流語句(if 語句、for 循環、while 循環)。然后強調編寫規范代碼的重要性,介紹 PEP8 規范及 PyLint 工具,涵蓋 PEP8 的代碼縮進、命名規則、代碼注釋等細節,以及 PyLint 的安裝、使用和配置。再通過代碼示例鞏固所學知識,包括 Hello World 程序和簡單計算器實現,詳細剖析代碼邏輯和功能實現。最后總結全文,展望 Python 編程學習前景,鼓勵繼續深入探索更多庫和框架,并列舉常見的項目問題及解決方案,如環境配置、語法錯誤等,助力 Python 學習之旅。

1.開啟 Python 之旅:搭建開發環境

Python安裝教程建議看我往期文章,有詳細教程,鏈接如下所示:

01-Python詳細安裝教程(大媽看了都會)

【該文詳細指導如何從Python官網下載對應Windows、Linux和Mac版本,包括自定義安裝并添加至系統路徑。還介紹了Windows環境下安裝驗證及使用pip擴展知識的過程。】?

搭建一個穩定、高效的 Python 開發環境是踏入 Python 編程世界的第一步,它就像是為你的編程之旅準備好一套精良的裝備,讓你在編寫代碼時更加得心應手。在眾多的 Python 開發工具中,Anaconda 和 VSCode 脫穎而出,成為許多開發者的首選。Anaconda 作為一款強大的 Python 發行版,集成了眾多科學計算庫和工具,極大地方便了我們進行數據分析、機器學習等工作;而 VSCode 則是一款輕量級但功能強大的代碼編輯器,憑借其豐富的插件生態和良好的用戶體驗,受到了廣大開發者的喜愛。接下來,讓我們一步步深入了解如何在 VSCode 中配置 Anaconda 的 Python 解釋器,為 Python 開發之旅打下堅實的基礎。

1.1 安裝 Anaconda

  1. 下載安裝包:首先,打開你常用的瀏覽器,訪問 Anaconda 官方網站(Download Anaconda Distribution | Anaconda)。在官網頁面中,你會看到針對不同操作系統和 Python 版本的下載選項。根據你的計算機操作系統(Windows 或 Mac),選擇對應的 64 位安裝包進行下載。這里建議選擇 Python 3.x 版本,因為 Python 3 在語法和功能上都有很多改進,并且得到了更廣泛的支持。
  2. Windows 系統安裝步驟:下載完成后,找到下載的 Anaconda 安裝文件(通常是一個.exe 文件),雙擊運行它。在安裝向導的歡迎界面,點擊 “Next” 按鈕。接著,閱讀許可協議,勾選 “I Agree” 表示同意協議內容,然后繼續點擊 “Next”。在選擇安裝類型時,如果你是個人使用,推薦選擇 “Just Me (Recommended)”;如果是為所有用戶安裝,則需要管理員權限。點擊 “Next” 后,選擇 Anaconda 的安裝路徑,建議不要安裝在系統盤(通常是 C 盤),可以選擇其他空間較大的磁盤分區,例如 D:\Anaconda3 ,選擇好路徑后點擊 “Next”。在高級安裝選項中,不建議勾選 “Add Anaconda to my PATH environment variable”,因為這可能會與系統中其他 Python 環境產生沖突。如果不是需要使用多個版本的 Anaconda 或 Python,建議勾選 “Register Anaconda as my default Python 3.x”,最后點擊 “Install” 開始安裝。安裝過程可能需要一些時間,請耐心等待。安裝完成后,點擊 “Finish” 完成安裝。
  3. Mac 系統安裝步驟:當你下載好 Mac 版的 Anaconda 安裝包(.pkg 文件)后,雙擊運行它。在安裝向導的歡迎界面,點擊 “繼續”。閱讀軟件許可協議,點擊 “同意”。選擇安裝磁盤,通常選擇默認的系統磁盤即可,然后點擊 “安裝”,此時可能需要輸入你的管理員密碼。等待安裝完成,安裝成功后,你可以在 “應用程序” 文件夾中找到 “Anaconda-Navigator” 圖標,點擊打開它,如果能正常啟動,說明 Anaconda 已成功安裝在你的 Mac 上。

1.2 安裝 VSCode 并配置 Python 插件

  1. 安裝 VSCode:打開瀏覽器,訪問 VSCode 官方網站(Visual Studio Code - Code Editing. Redefined),在官網首頁點擊 “Download” 按鈕,根據你的操作系統選擇對應的安裝包進行下載。下載完成后,對于 Windows 系統,運行下載的.exe 文件,按照安裝向導的提示完成安裝;對于 Mac 系統,將下載的 VSCode 應用程序拖動到 “應用程序” 文件夾中即可完成安裝。
  2. 安裝 Python 插件:打開 VSCode,點擊左側活動欄中的擴展圖標(一個四方形圖案,或按 Ctrl + Shift + X 快捷鍵),打開擴展市場。在搜索框中輸入 “Python”,找到由 Microsoft 提供的 Python 擴展,點擊 “安裝” 按鈕,等待安裝完成。這個 Python 插件為 VSCode 提供了對 Python 語言的豐富支持,包括語法高亮、代碼自動補全、調試等功能。
  3. 安裝 Jupyter 插件(可選):如果你希望在 VSCode 中通過 Jupyter Notebook 進行交互式編程,那么可以在擴展市場中搜索 “Jupyter”,找到對應的插件并點擊 “安裝”。Jupyter Notebook 是一種非常方便的交互式計算環境,適合進行數據分析、機器學習模型的探索和開發等工作。
  4. 選擇 Anaconda 的 Python 解釋器:按 Ctrl + Shift + P 打開命令面板,輸入并選擇 “Python: Select Interpreter”。在出現的解釋器列表中,找到 Anaconda 的 Python 解釋器路徑。對于 Windows 系統,路徑通常類似 C:\Users\ 你的用戶名 \Anaconda3\python.exe ;對于 Mac 系統,路徑一般是~/anaconda3/bin/python 。選擇 Anaconda 的 Python 解釋器后,VSCode 就會使用 Anaconda 環境中的 Python 來運行你的代碼,這樣你就可以使用 Anaconda 中集成的各種庫和工具了。

2.走進 Python 世界:基礎語法詳解

在搭建好 Python 開發環境后,我們就可以正式開啟 Python 的學習之旅啦!接下來,讓我們深入探索 Python 的基礎語法,這是我們與 Python 進行有效 “溝通” 的關鍵。

2.1 變量類型

在 Python 中,變量就像是一個個 “容器”,用于存儲各種不同類型的數據。Python 擁有豐富的數據類型,每種類型都有其獨特的用途和特點。

1.整數(int):整數用于表示沒有小數部分的數字,在 Python 中,整數的范圍非常大,幾乎可以處理任何大小的整數,例如:

a = 10b = -5print(a) # 輸出: 10print(b) # 輸出: -5# 整數運算sum = a + bprint(sum) # 輸出: 5

2.浮點數(float):浮點數用于表示有小數部分的數字,通常以科學計數法或十進制表示,比如:

pi = 3.14gravity = 9.81print(pi) # 輸出: 3.14print(gravity) # 輸出: 9.81# 浮點數運算area = pi * (5 ** 2) # 計算半徑為5的圓的面積print(area) # 輸出: 78.5

3.字符串(str):字符串是由一系列字符組成的序列,用于表示文本數據。在 Python 中,字符串可以用單引號(')、雙引號(")或三引號(''' 或""")括起來,如下所示:

greeting = "Hello, World!"quote = 'To be or not to be, that is the question.'multiline = """This is a multi-linestring."""print(greeting) # 輸出: Hello, World!print(quote) # 輸出: To be or not to be, that is the question.print(multiline) # 輸出:# This is a multi-line# string.# 字符串操作length = len(greeting)print(length) # 輸出: 13upper_greeting = greeting.upper()print(upper_greeting) # 輸出: HELLO, WORLD!

4.列表(list):列表是一種可變序列類型,可以包含多個項目,這些項目可以是不同類型的數據,使用方括號 [] 表示,例如:

fruits = ['apple', 'banana', 'cherry']numbers = [1, 2, 3, 4, 5]mixed_list = [1, 'two', 3.0, True]print(fruits) # 輸出: ['apple', 'banana', 'cherry']print(numbers) # 輸出: [1, 2, 3, 4, 5]print(mixed_list) # 輸出: [1, 'two', 3.0, True]# 列表操作fruits.append('date')print(fruits) # 輸出: ['apple', 'banana', 'cherry', 'date']length = len(numbers)print(length) # 輸出: 5

5.元組(tuple):元組與列表類似,也是序列類型,但元組是不可變的,即一旦創建,就不能修改其內容,用圓括號 () 表示,如下:

coordinates = (10, 20)colors = ('red', 'green', 'blue')print(coordinates) # 輸出: (10, 20)print(colors) # 輸出: ('red', 'green', 'blue')# 元組是不可變的# coordinates[0] = 15 # 這行代碼會引發錯誤

6.集合(set):集合是一個無序的、不重復元素的集合,使用花括號 {} 或 set () 函數來創建,常用于去重和集合運算,比如:

nums = {1, 2, 2, 3, 4, 4, 5}print(nums) # 輸出: {1, 2, 3, 4, 5},自動去重# 集合運算set1 = {1, 2, 3}set2 = {3, 4, 5}union_set = set1.union(set2) # 并集print(union_set) # 輸出: {1, 2, 3, 4, 5}intersection_set = set1.intersection(set2) # 交集print(intersection_set) # 輸出: {3}

7.字典(dict):字典是一種可變類型,用于存儲鍵值對,使用花括號 {} 表示,每個鍵值對之間用冒號:分隔,不同鍵值對之間用逗號,分隔,例如:

person = {'name': 'Alice', 'age': 30, 'city': 'New York'}print(person) # 輸出: {'name': 'Alice', 'age': 30, 'city': 'New York'}# 訪問字典中的值name = person['name']print(name) # 輸出: Alice# 修改字典中的值person['age'] = 31print(person) # 輸出: {'name': 'Alice', 'age': 31, 'city': 'New York'}# 添加新的鍵值對person['job'] = 'Engineer'print(person) # 輸出: {'name': 'Alice', 'age': 31, 'city': 'New York', 'job': 'Engineer'}

2.2 運算符優先級

在 Python 中,運算符用于執行各種操作,如算術運算、比較運算、邏輯運算等。當一個表達式中包含多個運算符時,Python 會根據運算符的優先級來確定運算的順序。下面是 Python 中常見運算符的優先級順序(從高到低):

  1. 括號:(),圓括號內的表達式會首先計算,例如:(3 + 4) * 2,先計算括號內的3 + 4得到 7,再乘以 2,結果為 14。
  2. 冪運算:**,用于計算一個數的冪次方,優先級較高,如5 ** 2表示 5 的平方,結果為 25 。
  3. 正負號:+x, -x,一元運算符,優先級僅次于冪運算,例如-3 + 5,先處理負號,再進行加法運算,結果為 2。
  4. 算術運算符:乘法(*)、除法(/)、整除(//)、取余(%)的優先級高于加法(+)和減法(-),并且它們從左到右依次計算。例如3 + 4 * 2,先計算乘法4 * 2得到 8,再加上 3,結果為 11;10 // 3結果為 3(取整數部分),10 % 3結果為 1(取余數)。
  5. 比較運算符:<, <=,>, >=, ==, != ,用于比較兩個值的大小或是否相等,它們的優先級相同,低于算術運算符,例如3 > 2結果為True,5 == 5結果為True。
  6. 邏輯運算符:not, and, or ,用于邏輯運算,其中not的優先級高于and和or ,and和or從左到右計算。例如not True and False or True,先計算not True得到False,再計算False and False得到False,最后計算False or True得到True。
  7. 賦值運算符:=, +=, -=, *=, /=, //=, %=, **= ,用于給變量賦值,優先級最低,賦值操作總是在最后進行,例如a = 3 + 2,先計算3 + 2得到 5,再將 5 賦值給變量a ;b += 5相當于b = b + 5 。

2.3 控制流語句

控制流語句是 Python 編程的重要組成部分,它允許我們根據不同的條件執行不同的代碼塊,或者重復執行某個代碼塊多次,從而實現更復雜的程序邏輯。

  1. if 語句:用于基于一定條件執行代碼,基本語法如下:
if 條件表達式:# 條件為True時執行的代碼塊
elif 另一個條件表達式:# 第一個條件為False,但第二個條件為True時執行的代碼塊
else:# 所有條件都為False時執行的代碼塊

示例:

number = 23
guess = int(input('Enter an integer : '))
if guess == number:print('Congratulations, you guessed it.')print('(but you do not win any prizes!)')
elif guess < number:print('No, it is a little higher than that')
else:print('No, it is a little lower than that')
print('Done')

在這個程序中,我們從用戶那里獲取猜測的數字,然后與預設的數字進行比較。如果相等,打印成功消息;如果小于,提示用戶猜測的數字低了;如果大于,提示用戶猜測的數字高了。最后,無論條件如何,都會執行print('Done')語句。

2. for 循環:不僅可以用于遍歷序列類型的數據(如列表、字符串、元組等),還可以結合其他內置函數或語句來實現不同的功能。常見用法如下:

  • 遍歷序列
fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:print(fruit)

  • 使用 range () 函數生成數字序列:range()函數用于生成數字序列,通常與for循環一起使用,例如:
for i in range(1, 11):print(i)  # 輸出1到10的數字

  • 使用 enumerate () 函數同時遍歷序列索引和元素:有時候我們需要同時獲取序列中元素的索引和值,enumerate()函數可以幫助我們實現這個功能,示例如下:
fruits = ['apple', 'banana', 'cherry']
for i, fruit in enumerate(fruits):print(i, fruit)  # 輸出索引和對應的水果名稱

3.while 循環:允許我們重復執行語句塊,只要條件為True ,語法如下:

while 條件表達式:# 條件為True時執行的代碼塊
else:# 條件為False時執行的代碼塊(可選)

示例:

number = 23
running = True
while running:guess = int(input('Enter an integer : '))if guess == number:print('Congratulations, you guessed it.')running = False  # 猜對后將running設為False,結束循環elif guess < number:print('No, it is a little higher than that.')else:print('No, it is a little lower than that.')
else:print('The while loop is over.')
print('Done')

在這個例子中,只要running為True,就會不斷循環獲取用戶輸入并進行比較,直到用戶猜對數字,將running設為False,循環結束,然后執行else塊中的語句。

3.打造專業代碼:PEP8 規范與 PyLint

在 Python 編程的世界里,編寫清晰、易讀、可維護的代碼是每個開發者的追求。而遵循良好的代碼規范和使用有效的工具,是實現這一目標的關鍵。接下來,我們將深入探討 Python 的代碼風格指南 PEP8 以及自動化檢測工具 PyLint,它們能幫助我們提升代碼質量,使代碼更加專業和可靠。

3.1 PEP8 規范簡介

PEP8(Python Enhancement Proposal 8)是 Python 社區廣泛接受的代碼風格指南 ,它就像是一本詳細的 “代碼寫作手冊”,為 Python 代碼的編寫提供了一系列的規則和建議,旨在提高代碼的可讀性和一致性,讓不同開發者編寫的代碼看起來像是出自同一人之手。

1.代碼縮進:PEP8 規定使用 4 個空格作為每級縮進的單位,堅決不使用制表符(Tab)進行縮進。這樣做的好處是,無論在何種編輯器或開發環境下,代碼的縮進顯示都能保持一致,不會出現因縮進不一致而導致的邏輯錯誤。例如:

def calculate_area(radius):pi = 3.14area = pi * radius ** 2return area

2.命名規則

    • 變量和函數名:應該使用小寫字母,單詞之間用下劃線分隔,這種命名方式被稱為 “蛇形命名法”(snake_case),例如user_name、calculate_total ,能清晰地表達變量或函數的含義。
    • 類名:采用駝峰命名法(CamelCase),即每個單詞的首字母大寫,如MyClass、UserProfile ,這種命名方式能夠突出類的定義,使其在代碼中更易識別。
    • 常量名:全部使用大寫字母,單詞之間同樣用下劃線分隔,比如MAX_VALUE、MIN_LENGTH ,通過這種方式可以很容易地將常量與其他變量區分開來。

3.代碼注釋

    • 塊注釋:通常應用在一段代碼之前,用于解釋代碼的功能、邏輯或目的。塊注釋的每一行都以#開頭,并且#后面要有一個空格,例如:
# 計算圓的面積
# 參數radius表示圓的半徑
# 返回值為圓的面積
def calculate_area(radius):pi = 3.14area = pi * radius ** 2return area

4.行內注釋:用于對某一行代碼進行簡短的解釋說明,應與代碼之間至少有兩個空格,且#和注釋文本之間有一個空格,如:

x = x + 1 # 增加x的值

5.其他規范

    • 行長度:每行代碼的長度不應超過 79 個字符,這樣可以確保代碼在各種顯示器和編輯器中都能良好地顯示,避免出現水平滾動條影響閱讀體驗。如果一行代碼過長,可以使用括號或續行符進行換行,例如:
long_string = "這是一個非常長的字符串,為了符合PEP8規范," \"需要進行換行處理"

6.空行:使用空行來分隔不同功能的代碼塊,以提高代碼的可讀性。例如,在頂層函數和類的定義之間,使用兩個空行進行分隔;在類定義中的方法之間,使用一個空行分隔 ,示例如下:

def function1():passdef function2():passclass MyClass:def method1(self):passdef method2(self):pass

7.導入語句:導入語句應放在文件的頂部,位于模塊注釋和文檔注釋之后,模塊全局變量和常量之前。每個導入語句應該單獨成行,并且按照標準庫、第三方庫、本地庫的順序進行分組,組與組之間用一個空行隔開 ,比如:

import os
import sysimport numpy as np
import pandas as pdfrom my_module import my_function

遵循 PEP8 規范不僅可以使我們的代碼看起來更加整潔、專業,還能提高代碼的可維護性和可讀性,降低團隊協作開發時的溝通成本。當其他開發者閱讀我們的代碼時,能夠快速理解代碼的邏輯和功能,因為大家都遵循相同的代碼風格。在參與開源項目或者與其他團隊合作時,遵循 PEP8 規范更是成為了一種共識,有助于代碼的共享和交流。

3.2 PyLint 自動化檢測工具

僅僅了解 PEP8 規范還不夠,在實際開發中,我們需要一種工具來幫助我們快速檢查代碼是否符合規范,并及時發現潛在的問題。PyLint 就是這樣一款強大的代碼檢測工具,它能夠自動查找不符合代碼風格標準和有潛在問題的代碼,并給出詳細的提示信息,就像一位嚴格的代碼審查員,時刻監督著我們的代碼質量。

  1. 安裝 PyLint:如果你使用的是 pip 包管理器,那么安裝 PyLint 非常簡單,只需在命令行中執行以下命令:
pip install pylint

如果你安裝了 Anaconda,那么 Anaconda 通常會自帶 PyLint,你無需再單獨安裝。

2. 使用 PyLint:安裝完成后,就可以使用 PyLint 來檢查代碼了。最基本的用法是在命令行中輸入pylint 路徑/模塊名 ,例如,要檢查當前目錄下的test.py文件,只需執行:

pylint test.py

PyLint 會對test.py文件進行全面檢查,并在控制臺輸出詳細的檢查結果。結果中會列出代碼中不符合 PEP8 規范的地方,以及一些潛在的錯誤和問題,每個問題都會有對應的行號、列號和詳細描述,方便我們定位和修改。例如,假設我們有如下一段簡單的代碼test.py:

def add_numbers(a,b):return a + b

當我們使用 PyLint 檢查這段代碼時,可能會得到類似這樣的輸出:

************* Module test
test.py:1:0: C0114: Missing module docstring (missing-module-docstring)
test.py:1:0: C0103: Function name "add_numbers" doesn't conform to snake_case naming style (invalid-name)
test.py:1:13: C0116: Missing function or method docstring (missing-function-docstring)
test.py:1:13: W0622: Redefining built-in 'b' (redefined-builtin)

從輸出中可以看出,PyLint 指出了幾個問題:首先,模塊缺少文檔字符串(missing-module-docstring);其次,函數名add_numbers不符合蛇形命名法(invalid-name);然后,函數缺少文檔字符串(missing-function-docstring);最后,變量名b可能與內置變量重名(redefined-builtin)。

3. 根據 PyLint 的提示信息改進代碼:根據 PyLint 給出的提示,我們可以對代碼進行相應的改進。對于上面的例子,我們可以將代碼修改為:

"""
這是一個簡單的模塊,用于演示PyLint的使用
"""def add_numbers(a, b):"""這個函數用于計算兩個數的和:param a: 第一個數:param b: 第二個數:return: 兩個數的和"""return a + b

再次使用 PyLint 檢查修改后的代碼,會發現大部分問題都已經解決,代碼的質量得到了顯著提升。

4. 配置 PyLint:PyLint 還支持通過配置文件進行更靈活的定制,你可以根據項目的需求和團隊的編碼風格,在配置文件中調整檢查規則、忽略某些特定的問題等。例如,如果你想忽略某個特定的警告信息,可以在配置文件中添加相應的配置項。通過合理配置 PyLint,能夠使其更好地適應不同項目的代碼檢查需求。

4.實踐出真知:代碼示例

理論知識固然重要,但通過實際的代碼示例,我們能更深入地理解和掌握 Python 的編程技巧。接下來,讓我們通過兩個經典的代碼示例 ——Hello World 程序和簡單計算器實現,來鞏固前面所學的知識。

4.1 Hello World 程序

在編程的世界里,“Hello World” 就像是一個傳統的問候語,它是每個編程語言學習者邁出的第一步。在 Python 中,實現 “Hello World” 程序非常簡單,只需要一行代碼:

print("Hello, World!")

這行代碼使用了 Python 的內置函數print(),它的作用是將括號內的內容輸出到控制臺。在這里,我們將字符串"Hello, World!"作為參數傳遞給print()函數,所以當程序運行時,就會在控制臺輸出Hello, World!。

這個簡單的程序背后蘊含著 Python 編程的基本原理:

  1. 函數調用:print是 Python 的內置函數,我們通過在函數名后面加上括號()來調用它,并將要輸出的內容放在括號內作為參數傳遞給它。
  2. 字符串:"Hello, World!"是一個字符串,在 Python 中,字符串是一種表示文本的數據類型,可以用單引號'、雙引號"或三引號'''、"""括起來。
  3. 執行順序:Python 程序是按照從上到下的順序逐行執行的,所以當我們運行這個程序時,首先會執行print("Hello, World!")這一行代碼,從而在控制臺輸出相應的內容。

你可以將上述代碼復制到 VSCode 中,然后按下F5鍵運行程序,或者在 VSCode 的終端中輸入python 文件名.py(假設你將代碼保存為文件名.py)來運行程序,看看控制臺是否輸出了Hello, World!。通過這個簡單的程序,你已經成功地邁出了 Python 編程的第一步!

4.2 簡單計算器實現

接下來,我們通過一個更復雜一些的示例 —— 實現一個簡單的計算器,來進一步鞏固前面所學的基礎語法知識,包括變量類型、運算符、控制流語句等。這個計算器將能夠實現加、減、乘、除等基本運算功能。

def add(x, y):"""加法運算:param x: 第一個數:param y: 第二個數:return: 兩數之和"""return x + ydef subtract(x, y):"""減法運算:param x: 第一個數:param y: 第二個數:return: 兩數之差"""return x - ydef multiply(x, y):"""乘法運算:param x: 第一個數:param y: 第二個數:return: 兩數之積"""return x * ydef divide(x, y):"""除法運算:param x: 第一個數:param y: 第二個數:return: 兩數之商,如果除數為0,返回錯誤信息"""if y == 0:return "Error: Division by zero"return x / yprint("選擇運算:")
print("1: 加法")
print("2: 減法")
print("3: 乘法")
print("4: 除法")choice = input("輸入你的選擇(1/2/3/4):")num1 = float(input("輸入第一個數字:"))
num2 = float(input("輸入第二個數字:"))if choice == '1':print(f"結果: {add(num1, num2)}")
elif choice == '2':print(f"結果: {subtract(num1, num2)}")
elif choice == '3':print(f"結果: {multiply(num1, num2)}")
elif choice == '4':print(f"結果: {divide(num1, num2)}")
else:print("無效的輸入")

在這個代碼示例中:

  1. 函數定義:我們定義了四個函數add、subtract、multiply和divide,分別用于實現加法、減法、乘法和除法運算。每個函數都接受兩個參數x和y,并返回相應的計算結果。在divide函數中,我們使用了條件判斷語句if來檢查除數是否為 0,如果是,則返回錯誤信息"Error: Division by zero"。
  2. 用戶輸入:通過input()函數獲取用戶的輸入。首先,提示用戶選擇要進行的運算(1 代表加法,2 代表減法,3 代表乘法,4 代表除法),并將用戶的選擇存儲在變量choice中。然后,分別提示用戶輸入兩個數字,并使用float()函數將用戶輸入的字符串轉換為浮點數,存儲在變量num1和num2中。
  3. 條件判斷:根據用戶選擇的運算類型,使用if - elif - else語句來調用相應的函數進行計算,并輸出結果。如果用戶輸入的選擇不是 1、2、3、4 中的任何一個,則輸出"無效的輸入"。

將上述代碼保存為一個 Python 文件(例如calculator.py),然后在 VSCode 中運行它。按照提示輸入選擇和數字,就可以看到計算器的運行結果了。通過這個簡單計算器的實現,你不僅鞏固了 Python 的基礎語法知識,還學會了如何將這些知識應用到實際的編程中,解決一些簡單的問題。這是編程學習中非常重要的一步,希望你能通過不斷的實踐,逐漸掌握 Python 編程的技巧和方法。

5.總結與展望

通過本文,我們全面地探索了 Python 編程的世界,從搭建開發環境到掌握基礎語法,再到遵循代碼規范并通過實際示例進行實踐,每一步都是我們邁向 Python 編程高手的重要基石。搭建 Python 開發環境是我們開啟編程之旅的第一步,選擇合適的工具和配置能夠讓我們的開發過程更加順暢高效。Anaconda 集成了豐富的庫和工具,為我們的科學計算和數據分析工作提供了便利;VSCode 憑借其強大的功能和豐富的插件生態,成為了我們編寫 Python 代碼的得力助手。通過詳細的步驟介紹,我們學會了如何在 VSCode 中配置 Anaconda 的 Python 解釋器,讓兩者完美結合,為我們的編程工作保駕護航。

基礎語法是我們與 Python 進行有效溝通的語言,變量類型、運算符優先級和控制流語句等知識,構成了 Python 編程的基礎框架。我們深入學習了各種數據類型的特點和使用方法,了解了運算符的優先級規則,以及如何運用控制流語句實現復雜的程序邏輯。這些知識是我們編寫 Python 程序的基礎,只有熟練掌握,才能在編程的道路上走得更遠。

遵循代碼規范是一個優秀程序員的必備素養,PEP8 規范為我們提供了編寫 Python 代碼的標準和建議,而 PyLint 作為自動化檢測工具,能夠幫助我們快速發現代碼中的問題,確保代碼的質量和可讀性。通過遵循 PEP8 規范并使用 PyLint 進行代碼檢查,我們可以編寫出更加規范、易于維護的代碼,提高團隊協作的效率。

Hello World 程序和簡單計算器的實現,讓我們將所學的知識應用到了實際的編程中。從簡單的輸出語句到復雜的函數定義和條件判斷,這些示例展示了 Python 編程的魅力和實用性。通過實踐,我們不僅鞏固了所學的知識,還培養了自己的編程思維和解決問題的能力。

Python 編程的世界豐富多彩,本文只是一個開始。希望大家能夠以本文為基礎,繼續深入學習 Python 編程,探索更多的庫和框架,如用于數據分析的 NumPy、Pandas,用于機器學習的 Scikit - learn,用于 Web 開發的 Django、Flask 等。在學習的過程中,多實踐、多思考,不斷積累經驗,相信你一定能夠成為一名優秀的 Python 開發者。

6.項目常見問題與解決方案

在 Python 項目開發過程中,你可能會遇到各種各樣的問題,下面為你列舉一些常見問題及對應的解決方案:

6.1 環境配置問題

  • 問題描述:安裝 Anaconda 或配置 VSCode 時遇到報錯,如安裝包損壞、依賴庫沖突等,導致 Python 解釋器無法正常使用。
  • 解決方案:首先,檢查安裝包的完整性,可重新下載安裝包進行安裝。若遇到依賴庫沖突問題,可以嘗試使用虛擬環境來隔離不同項目的依賴。在 Anaconda 中,可以使用conda create -n 環境名 python=版本號命令創建新的虛擬環境,然后在激活該環境后安裝所需的庫。例如,創建名為myenv,Python 版本為 3.8 的虛擬環境并激活:
conda create -n myenv python=3.8conda activate myenv

6.2 語法錯誤

  • 問題描述:編寫代碼時,出現語法錯誤,導致程序無法運行,如縮進錯誤、拼寫錯誤、缺少冒號等。
  • 解決方案:仔細檢查代碼,注意 Python 嚴格的縮進規則,確保代碼塊的縮進一致;檢查變量名、函數名等的拼寫是否正確;對于缺少冒號的情況,在需要的地方添加冒號。VSCode 的 Python 插件會對代碼進行語法檢查,在代碼有語法錯誤時會有紅色波浪線提示,將鼠標懸停在錯誤處,會顯示詳細的錯誤信息,根據提示進行修改即可。

6.3 變量作用域問題

  • 問題描述:在函數或類中使用變量時,出現變量作用域相關的錯誤,如訪問未定義的變量、變量賦值錯誤等。
  • 解決方案:理解 Python 的變量作用域規則,局部變量在函數內部定義,只在函數內部有效;全局變量在模塊頂層定義,可以在整個模塊中訪問。如果在函數中需要修改全局變量,需要使用global關鍵字聲明。例如:
count = 0def increment():global countcount = count + 1return count

6.4 模塊導入問題

  • 問題描述:導入自定義模塊或第三方庫時,出現找不到模塊、導入錯誤等問題。
  • 解決方案:對于自定義模塊,確保模塊文件與當前腳本在同一目錄下,或者將模塊所在目錄添加到 Python 的sys.path中。例如:
import syssys.path.append('模塊所在目錄路徑')import 模塊名

對于第三方庫,檢查是否已經正確安裝。可以使用pip list命令查看已安裝的庫列表,如果未安裝,使用pip install 庫名命令進行安裝。如果安裝了庫但仍導入失敗,可能是因為環境問題,可嘗試在正確的虛擬環境中安裝和使用。

6.5. 代碼運行效率問題

  • 問題描述:程序運行速度過慢,特別是處理大量數據或復雜邏輯時。
  • 解決方案:優化代碼邏輯,避免不必要的循環和重復計算。例如,使用列表推導式代替傳統的循環來創建列表,通常會更高效。對于涉及大量數值計算的場景,可以考慮使用 NumPy 庫,它提供了高效的數組操作方法。同時,合理使用生成器,生成器是一種迭代器,它不會一次性生成所有數據,而是按需生成,從而節省內存和提高效率。

6.6 PEP8 規范遵守問題

  • 問題描述:編寫的代碼不符合 PEP8 規范,導致代碼可讀性差,團隊協作困難。
  • 解決方案:在編寫代碼時,時刻牢記 PEP8 規范,使用一致的縮進、命名規則等。可以使用 PyLint 等工具自動檢查代碼是否符合規范,并根據工具的提示進行修改。另外,許多代碼編輯器(如 VSCode)都有相關插件,可以實時顯示代碼中不符合 PEP8 規范的地方,方便及時調整。

7.文章相關素材

  • Anaconda:由 Anaconda 公司維護,是一個開源的 Python 和 R 語言的發行版本,用于數據科學、機器學習和科學計算。它附帶了 conda、Python 和 150 多個科學包及其依賴項,支持 Windows、MacOS 和 Linux 系統。
  • VSCode:全稱 Visual Studio Code,是微軟開發的一款免費、開源的代碼編輯器,支持多種編程語言,擁有豐富的插件生態系統,能夠滿足不同開發者的需求。它輕量級且跨平臺,支持 Windows、MacOS 和 Linux 系統。
  • Python:一種高級的、解釋型的、面向對象的編程語言,由 Guido van Rossum 開發,于 1991 年首次發布。Python 以其簡潔、易讀的語法和強大的功能而受到廣泛歡迎,被廣泛應用于 Web 開發、數據科學、人工智能、自動化腳本等領域。
  • PEP8:Python 官方推薦的代碼風格指南,全稱為 Python Enhancement Proposal 8。它詳細規定了 Python 代碼的縮進、命名、注釋、行長度等方面的規范,旨在提高代碼的可讀性和一致性。
  • PyLint:一個 Python 代碼分析工具,能夠檢查代碼是否符合 PEP8 規范,同時還能檢測代碼中的潛在錯誤、代碼異味等問題。它可以幫助開發者編寫高質量、可維護的 Python 代碼。

相關文章推薦:

1、Python爬蟲圖片:從入門到精通?

2、02-pycharm詳細安裝教程(大媽看了都會)?

3、如何系統地自學Python??

4、Alibaba Cloud Linux 3.2104 LTS 64位 怎么安裝python3.10.12和pip3.10?

5、職場新技能:Python數據分析,你掌握了嗎??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/85257.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/85257.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/85257.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux 1.0.7

用戶和權限的含義與作用 linux中的用戶和文件 用戶的權限是非常重要的 而且有些程序需要使用管理員身份去執行 這些都是非常重要的 不可能讓所有的人擁有所有的權限 這樣的工具可以避免非法的手段來修改計算機中的數據 linux之所以安全還是權限管理做的很棒 每個登錄的用戶都有…

【第4章 圖像與視頻】4.6 結合剪輯區域來繪制圖像

文章目錄 前言示例 前言 本節將綜合運用圖像處理、離屏 canvas 以及剪輯區域等技術實現墨鏡效果。 示例 主線程代碼&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport&qu…

UV 包管理工具:替代 pip 的現代化解決方案

安裝 方法一&#xff1a;使用安裝腳本 # macOS 和 Linux curl -LsSf https://astral.sh/uv/install.sh | sh# Windows PowerShell powershell -c "irm https://astral.sh/uv/install.ps1 | iex" 方法二&#xff1a;使用包管理器 # macOS (Homebrew) brew install uv#…

Java注解規范與使用詳解

注解中的空值限制 在Java注解中,元素值不允許使用null引用。這是注解使用中的一項重要約束規則,違反該規則將導致編譯錯誤。需要注意的是,雖然禁止使用null值,但允許為String類型元素指定空字符串(“”),為數組類型元素指定空數組({})。 空值約束示例 以下兩種注解用法…

從零開始的數據結構教程(八)位運算與狀態壓縮

&#x1f3a9; 標題一&#xff1a;位運算基礎——魔術師的二進制手套 位運算是一種直接操作數字二進制位的運算方式&#xff0c;它高效且巧妙&#xff0c;就像魔術師戴上了二進制手套&#xff0c;能夠精準地操控每一個比特。理解位運算是深入學習狀態壓縮和其他底層優化技巧的…

GraalVM加持下的Quarkus極速啟動

1. 引言 1.1 Quarkus與云原生時代的挑戰 隨著云原生架構的普及,傳統Java應用在部署效率、資源消耗和冷啟動性能方面逐漸暴露出短板。Spring Boot等框架雖然功能強大,但在Serverless、邊緣計算等場景下表現乏力。 Quarkus 是 Red Hat 推出的一個專為云原生設計的 Java/Kotl…

vue3 el-input type=“textarea“ 字體樣式 及高度設置

在Vue 3中&#xff0c;如果你使用的是Element Plus庫中的<el-input>組件作為文本域&#xff08;type"textarea"&#xff09;&#xff0c;你可以通過幾種方式來設置字體樣式和高度。 1. 直接在<el-input>組件上使用style屬性 你可以直接在<el-input&…

Matlab中gcb、gcbh、gcs的區別

gcb&#xff1a;返回當前選中模塊的完整路徑名&#xff08;字符串&#xff09; gcbh&#xff1a;返回當前選中模塊的句柄&#xff08;數值標識符&#xff09; gcs&#xff1a;返回當前打開或選中的子系統或頂層模型路徑&#xff08;字符串&#xff09;

大語言模型的技術原理與應用前景:從Transformer到ChatGPT

目錄 摘要 1. 引言 2. Transformer架構核心原理 2.1 自注意力機制 2.2 位置編碼 2.3 前饋神經網絡 3. 從GPT到ChatGPT的演進 3.1 GPT系列模型架構 3.2 訓練流程優化 4. 應用場景與案例分析 4.1 代碼生成 4.2 文本摘要 4.3 問答系統 5. 挑戰與未來方向 5.1 當前技…

Flink Table API 編程入門實踐

Flink Table API 編程入門實踐 前言 Apache Flink 是目前大數據實時計算領域的明星產品&#xff0c;Flink Table API 則為開發者提供了聲明式、類似 SQL 的數據處理能力&#xff0c;兼具 SQL 的易用性與編程 API 的靈活性。本文將帶你快速了解 Flink Table API 的基本用法&am…

Android之ListView

1&#xff1a;簡單列表(ArrayAdapter) 1&#xff1a;運行的結果&#xff1a; 2&#xff1a;首先在MyListView里面創建一個按鈕&#xff0c;點擊的時候進行跳轉。 這里讓我吃驚的是&#xff0c;Button里面可以直接設置onClick .java里面的方法。 也即是點擊這個按鈕之后就會去…

Python(十四)

1.type函數和init_subclass_ init_subclass_ 2.元類 類就是用來創建對象的模版&#xff0c;類是由type創造而來的&#xff0c;元類就是創建類的模版&#xff0c;type可以用來創造類&#xff0c;因為type本身就是一個元類&#xff0c;使用元類來創造類&#xff0c;元類之間也有…

當前用戶的Git全局配置情況:git config --global --list

通過config命令可以查詢當前用戶的全局配置情況。這些配置項定義了 Git 在全局范圍內的行為&#xff0c;包括如何處理大文件、SSL 證書驗證以及提交時的用戶信息。 git config --global --list http.sslVerifyfalse 這個配置項禁用了 SSL 證書驗證。這在與自簽名證書的 Git 服…

負載均衡群集---Haproxy

目錄 一、HAproxy 一、概念 二、核心作用 三、主要功能特性 四、應用場景 五、優勢與特點 二、 案例分析 1. 案例概述 2. 案例前置知識點 &#xff08;1&#xff09;HTTP 請求 &#xff08;2&#xff09;負載均衡常用調度算法 &#xff08;3&#xff09;常見的 web …

html5視頻播放器和微信小程序如何實現視頻的自動播放功能

在HTML5中實現視頻自動播放需設置autoplay和muted屬性&#xff08;瀏覽器策略要求靜音才能自動播放&#xff09;&#xff0c;并可添加loop循環播放、playsinline同層播放等優化屬性。微信小程序通過<video>組件的autoplay屬性實現自動播放&#xff0c;同時支持全屏按鈕、…

OpenHarmony定制系統組合按鍵(一)

一、開發環境 系統版本&#xff1a;OpenHarmony 4.0.10.13 設備平臺&#xff1a;rk3568 SDK版本&#xff1a;fullSDK 4.0.10.13 DevEco Studio版本&#xff1a;4.1.0.400 二、需求背景 定制OpenHarmony 系統組合按鍵功能&#xff0c;例如仿Android Power VOL_Up組合鍵實現截…

相機定屏問題分析四:【cameraserver 最大request buffer超標】后置視頻模式預覽定屏閃退至桌面

【關注我,后續持續新增專題博文,謝謝!!!】 上一篇我們講了:相機定屏問題分析三:【配流ConfigStream失敗】外屏打開相機視頻照片人像來回切換后,相機頁面卡死,點擊沒反應9055522 這一篇我們開始講: 相機定屏問題分析四:【cameraserver 最大request buffer超…

從 PyTorch 到 TensorFlow Lite:模型訓練與推理

一、方案介紹 研發階段&#xff1a;利用 PyTorch 的動態圖特性進行快速原型驗證&#xff0c;快速迭代模型設計。 靈活性與易用性&#xff1a;PyTorch 是一個非常靈活且易于使用的深度學習框架&#xff0c;特別適合研究和實驗。其動態計算圖特性使得模型的構建和調試變得更加直…

4.2.5 Spark SQL 分區自動推斷

在本節實戰中&#xff0c;我們學習了Spark SQL的分區自動推斷功能&#xff0c;這是一種提升查詢性能的有效手段。通過創建具有不同分區的目錄結構&#xff0c;并在這些目錄中放置JSON文件&#xff0c;我們模擬了一個分區表的環境。使用Spark SQL讀取這些數據時&#xff0c;Spar…

數據結構:導論

目錄 什么是“第一性原理”&#xff1f; 什么是“數據結構”&#xff1f; 數據結構解決的根本問題是什么&#xff1f; 數據結構的兩大分類 數據結構的基本操作 數據結構與算法的關系 學習數據結構的底層目標 什么是“第一性原理”&#xff1f; 在正式進入數據結構之前&…