【人生苦短,我學 Python】(1)初識 Python

目錄

  • 1. 簡述
  • 2. 什么是 Python?
  • 3. 面向對象簡述
    • 3.1 面向過程
    • 3.2 面向對象
    • 3.3 面向對象的主要優點
    • 3.4 面向對象的基本概念
    • 3.5 面向對象程序設計
  • 4. Python語言的版本和解釋器
  • 5. Python 編程工具
  • 6. Python 的三種編程方式
  • 7. 簡單的 Python 程序
  • 8. 高級一點的 Python 程序

1. 簡述

這段時間在寫爬蟲和做數據分析,才發現有一些常用的函數已經不太記得了,因此接著這個機會,重新復習一下 Python,做做筆記,也回味一下那段美好的時光~

2. 什么是 Python?

Python 是一種解釋型、面向對象的編程語言,是一個開源語言,擁有大量的庫,可以高效地開發各種應用程序。它簡單、高級、面向對象、免費開源,有可擴展性、可移植性、豐富的庫和可嵌入性。

注意 PythonC 語言不一樣,C 語言是編譯型語言,而 Python 是解釋型語言。那么編譯型語言解釋型語言有什么區別呢?

  1. 編譯型語言
    它要求用戶先把整個程序代碼寫好,隨后進行編譯,把源代碼編譯成機器語言的文件,如 exe 格式的可執行文件。因為只需編譯一次,以后運行時不需要編譯,直接運行可執行文件即可,所以編譯型語言執行效率高。
  2. 解釋型語言
    它不要求用戶一次性把整個程序代碼寫好,用戶可以寫一行,執行一行。解釋型語言每次運行都需要將源代碼解釋稱機器碼并執行,效率較低。

用通俗易懂的例子來講吧:

比如現在在吃小龍蝦,我們的最終目的都是吃完蝦肉,

  • 如果你是先去除全部的蝦殼再吃蝦,那么這就是編譯
  • 如果你是剝好一只蝦就吃一只蝦,剝好一只蝦就吃一只蝦,那么這就是解釋

那么什么又是面向對象呢?

3. 面向對象簡述

3.1 面向過程

  • 需要求解的問題域被視為待處理的一個大過程,經分析處理后,并根據問題的復雜程度,整個系統最終被分解為一個個易于處理的子過程。
  • 面向過程方法將過程(或函數)作為系統的主要構件,數據和對數據的操作(函數)分離。
    該方法對需求變化的適應能力差,并且處理大型、復雜問題時,系統維護困難。

像大家熟悉的 C 語言就是面向過程的編程語言。

3.2 面向對象

  • 直接以問題域中的事物(對象)為中心來思考問題,把對象作為系統的基本構成單位,又通過將對象之間的相互作用、相互聯系映射到計算機系統來模擬現實客觀世界。
  • 面向對象把數據和對數據的處理看成一個整體——對象,其概念和處理方法比較符合人類認識問題、分析問題和解決問題的一般規律。

比如我們今天介紹的 Python 就像面向對象的編程語言。

3.3 面向對象的主要優點

  1. 自然高效:可更客觀更自然地描述現實世界。
  2. 易于重用:相關機制可方便繼承已有或已經完成的工作,而不必一切從頭開始。
  3. 便于維護:開發出的系統健壯,適應性和擴展性強。

3.4 面向對象的基本概念

  1. 對象

    • 人們進行研究的任何事物統稱為對象。
    • 對象可以是有形的實體,也可以是活動或事件等。
  2. 屬性和方法

    • 屬性是描寫對象靜態特性的數據元素。
    • 方法是用于描寫對象動態特性(行為特性)的一組操作。
  3. 封裝
    通過對象把數據以及對數據的操作結合在一起。


  4. 類是對一組具有相同特性的對象的抽象描述。

  5. 實例化
    實例化是指在類定義的基礎上構造對象的過程。

  6. 繼承
    一個新類(子類)從已有的類(父類)那里獲得已有特性和功能。

  7. 多態
    不同的對象可以以不同的方式響應相同的消息。

3.5 面向對象程序設計

面向對象程序設計(Object Oriented ProgrammingOOP

  • 主要針對大型軟件設計而提出,使得軟件設計更加靈活,能夠很好地支持代碼復用和設計復用,代碼具有更好的可讀性和可擴展性,大幅度降低了軟件開發的難度。
  • 將數據以及對數據的操作封裝在一起,組成一個相互依存、不可分割的整體(對象),不同對象之間通過消息機制來通信或者同步。
  • 對相同類型的對象進行分類、抽象后,得出共同的特征而形成了類,面向對象程序設計的關鍵就是如何合理地定義這些類并且組織多個類之間的關系。
  • 例如,繪圖程序中的定義矩形類,一次執行時可以創建很多矩形對象。

4. Python語言的版本和解釋器

  1. 版本

    • 2 個主要版本:Python 2Python 3
    • Python 3Python 2 不兼容。
    • Python 2 最遲將于 2020 年全面放棄維護和更新,建議學習和使用 Python 3,本次分享的代碼皆使用 Python 3
  2. Python 解釋器
    實現 Python 語言語法的程序是 Python 解釋器,常用的 Python 解釋器:

    • Cpython
    • Jython
    • IronPython
    • PyPy

5. Python 編程工具

Python 的編程工具:

  • IDLE(Python內置的集成開發環境)
  • Anaconda3(內含Jupyter Notebook和Spyder,做數據分析時常用)
  • PyCharm(本人使用的主要編程工具)
  • Visual Studio Code

6. Python 的三種編程方式

  1. 交互式

    對每個輸入語句即時運行結果,適合語法練習。
    例如,用 Python 解釋器提供的命令行方式。

  2. 文件式

    批量執行一組語句并運行結果,編程的主要方式。
    例如,用 Python 系統提供的 IDLE

  3. Web方式

    在網頁中編寫代碼塊,方便添加文字,顯示圖形,適合學習和算法研究。
    例如,AnacondaJupyter Notebook

7. 簡單的 Python 程序

  1. Hello World
    讓我們來試試入門每門編程語言前都會輸出的一句話:Hello World

    print("Hello World!")
    

    輸出:

    Hello World!
    
  2. 簡單的算術運算

    print(2023 + 10)
    print(2023 - 10)
    print(2023 * 10)
    print(2023 / 10)
    print(2023 % 10)
    print(2023 // 10)
    

    輸出:

    2033
    2013
    20230
    202.3
    3
    202
    
  3. 計算矩形的面積

    length = 3  # 矩形的長
    width = 4   # 矩形的寬
    print(f"矩形的面積為:{length * width}")
    

    輸出:

    矩形的面積為:12
    
  4. 畫圖

    import turtleturtle.pensize(2)
    turtle.circle(10)
    turtle.circle(40)
    turtle.circle(80)
    turtle.circle(160)
    

    輸出:

    python畫圖

8. 高級一點的 Python 程序

  1. 掃雷

    掃雷

  2. 畫圖——冰墩墩

    在這里插入圖片描述

  3. 爬蟲

  • 和平精英槍械庫圖片

    在這里插入圖片描述

  1. 可視化大屏

    在這里插入圖片描述

  2. 知識系統
    武漢大學建筑知識系統:

    在這里插入圖片描述

  3. 背詞軟件

    在這里插入圖片描述

  4. 發送郵件
    在這里插入圖片描述

  5. 人工智能(機器學習、深度學習以及強化學習等)
    復現美國OpenAI公司開發的機器學習系統-Hide and Seek(捉迷藏)游戲系統:

    在這里插入圖片描述

  6. 大數據分析

    • IMDB數據集分析:
      在這里插入圖片描述
  7. 此外還有諸如 web 開發等小程序,這里就不一一列舉了。

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

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

相關文章

數據通信與計算機網絡(精煉知識點)

前言 該部分知識點不多,分值3分 知識點 TCP TCP采用可變大小的滑動窗口協議進行流量控制。在前向糾錯系統中,當接收端檢測到錯誤后就根據糾錯編碼的規律自行糾錯;在后向糾錯系統中,接收方會請求發送方重發出錯分組。IP協議不預先建立虛電路,而是對每個數據報獨立地選擇…

Linux快速顯示文件行號并跳轉

有時候,想要在線上直接查看日志文件,搜索到關鍵詞后,如果一直按n找下去,很麻煩,我們可以先顯示出行號,確定好我們要找內容對應的行號,直接跳轉過去。 esc進入命令模式,輸入:set nu命…

Cesium:CGCS2000坐標和WGS84坐標互相轉換

作者:CSDN @ _樂多_ 本文記錄了CGCS2000坐標和WGS84經緯度互相轉換的js代碼。封裝成了函數。 文章目錄 一、WGS84ToCGCS2000二、CGCS2000ToWGS84一、WGS84ToCGCS2000 import proj4 from "proj4";convertWGS84ToCGCS2000(wgs84X, wgs84Y, wgs84Z)

Amlogic方案遙控器配置(Android11)

配置路線 鍵值變化路徑: ScanCode --> Keycode Lable --> KeyCode Layout --> KeyLable --> Keycode – > KeyEvent 文件映射路徑: *.dtsi --> input-event-codes.h --> *.kl --> InputEventLable.h --> kecodes.h --> P…

通過這個簡單的技巧讓我們的 JavaScript 代碼變得異常快

通過這個簡單的技巧讓我們的 JavaScript 代碼變得異常快 秘訣:了解JavaScript 虛擬機(VM)的內部工作原理。 首先,我們來談談像 V8 這樣的JavaScript 虛擬機(VM)。可以把它想象成我們的操作的大腦 —— 它將我們簡潔的代碼變成計算機可以理解和執行的東…

免費圖書教材配套資料:Spark大數據技術與應用(第2版)

《Spark大數據技術與應用(第2版)》課程內容全面介紹了Spark大數據技術的相關知識,內容包含包括Spark概述、Scala基礎、Spark編程、Spark編程進階、Spark SQL結構化數據文件處理、Spark Streaming實時計算框架、Spark GraphX圖計算框架、Spark…

方法簽名【C#】

1條件: 簽名的作用:為了在眾多方法中找到匹配的方法。【自己想要的方法】類似明星的簽名。雖然2個人的名字一樣,但并不是同一個人,這就需要用到簽名的條件。 方法名稱:注意大小寫。 參數個數。 參數類型及順序&…

STL—next_permutation函數

目錄 1.next_permutation函數的定義 2.簡單使用 2.1普通數組全排列 2.2結構體全排列 2.3string 3.補充 1.next_permutation函數的定義 next_permutation函數會按照字母表順序生成給定序列的下一個較大的排列,直到整個序列為降序為止。與其相對的還有一個函數—…

實用工具推薦 | 在線制作電子書

?隨著互聯網的發展,越來越多的人開始關注知識的傳播和分享。而電子書作為一種方便攜帶、易于分享的形式,越來越受到人們的青睞。今天,就為大家推薦一款實用的工具——FLBOOK在線制作電子雜志平臺,讓你輕松在線制作電子書&#xf…

【python學習】基礎篇-常用模塊-re模塊:正則表達式高效操作字符串

在Python中,正則表達式主要通過re模塊來實現。以下是一些常用的正則表達式用法: 匹配值: pattern r\d # 匹配一個或多個數字 pattern r\b\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\b #匹配日期格式 pattern rhello # 匹配字符串“hello”\…

【LeetCode】挑戰100天 Day12(熱題+面試經典150題)

【LeetCode】挑戰100天 Day12(熱題面試經典150題) 一、LeetCode介紹二、LeetCode 熱題 HOT 100-142.1 題目2.2 題解 三、面試經典 150 題-143.1 題目3.2 題解 一、LeetCode介紹 LeetCode是一個在線編程網站,提供各種算法和數據結構的題目&…

HTTP客戶端警告:Going to buffer response body of large or unknown size

HTTP客戶端警告:Going to buffer response body of large or unknown size 點關注不迷路,歡迎再訪! 精簡博客內容,盡量已行業術語來分享。 努力做到對每一位認可自己的讀者負責。 幫助別人的同時更是豐富自己的良機。 目錄 HTTP客…

IAR為恩智浦S32M2提供全面支持,提升電機控制能力

IAR Embedded Workbench for Arm已全面支持恩智浦最新的S32系列,可加速軟件定義汽車的車身和舒適性應用的開發 瑞典烏普薩拉,2023年11月22日 – 嵌入式開發軟件和服務的全球領導者IAR現已全面支持恩智浦半導體(NXP Semiconductors&#xff0…

python腳本后臺執行

nohup python script.py &

CMS垃圾收集器深入解析

1.CMS的兩種模式與一種特殊策略 1.1Backgroud CMS(沒有并發失敗的情況) 1.1.1并發標記還能被整理成兩個流程 (1)初始標記 (2)并發標記(3)(4)在這個階段發生(3)并發預處理 (4)可中止的預處理 (5)重新標記 (6)并發清除 1.1.2為什么我們的并發標記細化之后還會額外有兩個流…

【pandas數據處理】數據結構

數據結構 Series基于列表創建數據結構自定義元素的行標簽基于字典創建數據結構 DataFrame對象基于列表創建數據結構設置參數來定義行列標簽基于字典 Series 一維數組對象,不僅包含數據元素,還包含一組與數據元素對應的行標簽。 基于列表創建數據結構 …

C++設計模式之工廠模式(下)——抽象工廠模式

抽象工廠模式 介紹示例示例使用運行結果抽象工廠模式的優缺點優點缺點 總結 介紹 抽象工廠模式是一種創建型設計模式,它提供了一種封裝一組相關或相互依賴對象的方式,而無需指定它們具體的類。它允許客戶端使用抽象接口來創建一系列相關的對象&#xff…

Jquery ajax 同步阻塞引起的UI線程阻塞的坑(loading圖片顯示不出來 )

Jquery ajax 同步阻塞引起的UI線程阻塞的坑(loading圖片顯示不出來,layer.load延遲)jax重新獲取數據刷新頁面功能,因為ajax屬于耗時操作,想在獲取數據且加載頁面時顯示加載遮罩層,結果發現了ajax的好多坑。…

Elasticsearch自動清理腳本

腳本 我在data下創建的腳本文件就叫:vi /data/clear_log.sh,內容如下 #!/bin/sh #獲取時間 time=`date +%Y-%m-%d %H:%M:%S` cipan=`df -h| grep sda3` #查詢磁盤使用率 liang=`df -h| grep sda3 |grep -v grep |awk {print $5}|tr -d

【數據結構】一題帶你出師鏈表!

🦄個人主頁:修修修也 🎏所屬專欄:數據結構 ??操作環境:Visual Studio 2022 題目鏈接 138. 隨機鏈表的復制https://leetcode.cn/problems/copy-list-with-random-pointer/ 題目描述 給你一個長度為 n 的鏈表,每個節點包含一個額外增加的隨機…