計算機二級Python

一.靜態語言和腳本語言

高級語言根據計算機執行機制的不同分為兩類:靜態語言和腳本語言

靜態語言的核心特征:

  • 變量的類型在編譯時(寫代碼時)就必須確定并固定下來,即在使用一個變量前必須顯式地聲明它地類型
  • 一旦聲明,這個變量的類型就不能再改變
  • 執行方式為編譯
  • 性能通常較高
  • 可靠性和可維護性方面更優:編譯器像一個嚴格的代碼審查員,能在編譯的過程中就捕捉大量的類型錯誤、接口不匹配等問題,將很多Bug扼殺在搖籃里

腳本語言:

  • 變量無需聲明類型
  • 通常不需要顯式的編譯步驟,一般都是采用解釋作為執行方式
  • 性能通常較低,因為邊解釋邊執行,運行時需要額外的時間來運行語法、推斷類型,動態分配內存等。不過通過即時編譯技術(如V8引擎for JavaScript,PyPy for Python),這個性能差距在逐漸縮小
  • 更靈活:無需關注類型細節,代碼更短,開發速度更快
  • 運行時錯誤風險:一個拼寫錯誤或類型錯誤可能直到運行到那一行代碼時才會暴露,對于大型復雜項目,維護和重構的難度更高

兩種將高級語言代碼轉換成計算機能讀懂的指令的過程:

  1. 編譯:是一次性轉換的過程 (好比把一本中文書翻譯成英文,才能讓完全不懂中文的人看懂) ?? ? ?? ? ? ? ?技術過程如下:

  • 輸入:全部的源代碼文件
  • 處理:編譯器會讀通所有代碼,進行詞法分析,語法分析,優化等一系列操作、
  • 輸出:生成一個獨立的,全新的可執行文件(如Windows中的.exe文件)。這個文件里是純粹的機器指令
  • 執行:此后,源代碼就和執行無關了。可以直接運行這個可執行文件,即使源代碼被刪除,程序照樣可以運行

? ? ?2.解釋:是一個邊轉換邊執行的過程(好比同聲傳譯)

? ? ? ? ? ? ? ? 技術過程如下:

  • 輸入:源代碼文件
  • 處理:解釋器讀取原代碼的第一行,立即轉換成機器指令并讓CPU執行;然后讀取第二行,轉換成機器指令并讓CPU執行;如此重復直到結束
  • 輸出:沒有獨立的可執行文件生成(輸出的是程序的運行結果,如屏幕顯示,文件修改等)
  • 執行:程序的每次執行都離不開源代碼和解釋器,必須同時擁有兩者

編譯器和解釋器是執行上述編譯和解釋過程的軟件

編譯器如GCC(c\cpp編譯器),javac(java編譯器)

特點:

  • 速度快:程序運行時已經是機器碼,直接由CPU執行,效率高
  • 需額外步驟:修改代碼后,必須重新編譯才能看到變化
  • 跨平臺性差:編譯產生的可執行文件通常只適用于特定的操作系統和CPU架構(例如為Windows編譯的程序無法在Mac上運行)

解釋器如python解釋器,JavaScript引擎(如V8),Ruby解釋器

特點:

  • 靈活性高:修改代碼后,直接就可以再次運行,無需等待編譯
  • 跨平臺性好:只要有對應平臺的解釋器,同一份代碼就可以在任何平臺上運行,實現了“一次編寫,到處運行”
  • 速度相對慢:因為邊翻譯邊執行,每次運行都包含翻譯的開銷

注:現在純粹的編譯和解釋比較少了,很多語言采用混合模式,最典型的是Java和JavaScript

二.程序設計的統一模式(IPO)

Input:輸入

Process:處理

Output:輸出

三.基本語法格式

python采用嚴格的縮進(一般為4個空格)來表明程序的格式框架(代碼的層次和包含關系),但并不是所有的python代碼都需要縮進

四.Python中的轉義字符

轉義字符是一個以反斜杠\開頭的特殊字符序列,用于表示那些在字符串中難以直接表示或具有特殊含義的字符。

例如換行,引號,制表符等

下面是一些常見的轉義字符的形式和作用:

  • \\: 表示反斜杠\
  • \': 表示單引號? ?如 ' it\'s good '
  • \n :換行符
  • \t : 水平制表符? 一個\t表示4個空格
  • \r : 回車符
  • \b : 退格符

五.變量命名規定

分為硬性規則(必須遵守)和軟性規則(建議遵守)

1.硬性規則

只能包含以下字符:

  • 大小寫英文字母
  • 數字0~9
  • 下劃線

不能以數字開頭

不能是python的保留字(也稱關鍵字)

區分大小寫

2.命名約定(軟性規則)

變量名應該清晰地表明意圖

python3可以適用漢字以及大多數Unicode字符作為變量名,但是不推薦這么做,¥,$ 都不能做變量名,所以盡量不要用英文和數字及下劃線以外的作為變量名

六.重要的代碼知識

1.print()函數中的end參數

控制print()函數在輸出完后要以什么字符結尾,end參數的默認值為'\n',即默認輸出完會換行,end參數取值為空字符串或者空格的時候可以讓多次輸出打印在同一行,即取消換行

2.復數

形如a+bj的形式,其中a,b都是浮點數。

注意在數學中一般用i表示復數,但是在工程和python中都用j表示

在python中直接在數字后面加j或J就能表示復數,或者使用complex()函數

complex(4,5) # (4+5j)
3+4j # 3+4j

每個復數都有.real和.imag兩個屬性,用來獲取復數的實部和虛部

(3+4j).real # 3.0
(3+4j).imag # 4.0

同時python支持復數的所有運算,+-*/ **

3.divmod()函數

divmod(a,b)返回一個包含兩個元素的元組,第一個元素為a//b,即在a除以b的基礎上向下取整,第二個元素為a%b ,即a與b的模運算(求余數)

divmod(11,3) # (3,2)

4.%模運算

模運算是一種求余運算,基本概念是:對于兩個整數a和b(b為不為零),存在唯一的整數q(商)和r(余數),使得:

a = b * q + r, 并且0 <= r < |b|

其中,r就是a對b取模的結果,在python中表示為a % b

需要注意的是,python的模運算結果的符號始終與除數(第二個操作數)的符號相同

7 % 3 # 1
7 % -3 # -2
-7 % 3 # 2

分析:

對于 7 % -3? ? 我們要找到一個r,范圍為0<= r < |-3| = 3, 使得7 = (-3) * 某個整數 + r

這要求 -3? * 這個整數 的 值 不能和 7 相差 太大,差在[0,3)之間,

所以考慮這個整數為-3或者-2? 但r要和-3符號相同,因此這個整數只能是-3,r的值容易得出為-2

或者還可以這樣分析,r要為負數,說明-3和商要比7大,所以商只能是-3

同理對于-7 % 3,商為-3 余數為2 所以r=2

4.pow()函數

也是python的內置函數,用于計算冪運算(指數運算)

語法:pow(base,exp[,mod])

base:底數,必須要有的參數

exp:指數,必須要有的參數

mod:模數,可選,如果提供,將返回 base ** exp % mod

pow(2,3) # 8
pow(2,3,5) # 3
pow(-2,3,5) # 2

5.字符串格式化format方法

基本語法:"字符串{占位符}".format(值)

print("小明今年{}歲".format(18)) # 小明今年18歲
print("{1}喜歡{0}".format('蘋果','小紅')) # 小紅喜歡蘋果# 使用關鍵字參數
print("{name} 今年 {age} 歲,喜歡 {hobby}".format(name="小紅", age=20, hobby="讀書"
))
# 輸出:小紅 今年 20 歲,喜歡 讀書# 可以重復使用
print("{fruit} 很甜,我喜歡吃 {fruit}".format(fruit="西瓜"))
# 輸出:西瓜 很甜,我喜歡吃 西瓜print("{0} 買了 {1} 個 {fruit}".format("小李", 3, fruit="蘋果"))
# 輸出:小李 買了 3 個 蘋果# 右對齊,寬度10,用空格填充
print("|{:>10}|".format("hello"))    # 輸出:|     hello|# 左對齊,寬度10
print("|{:<10}|".format("hello"))    # 輸出:|hello     |# 居中對齊,寬度10
print("|{:^10}|".format("hello"))    # 輸出:|  hello   |# 指定填充字符
print("|{:*^10}|".format("hello"))   # 輸出:|**hello***|
print("|{:=^10}|".format("hello"))   # 輸出:|==hello===|# 十進制
print("{:d}".format(42))        # 輸出:42# 二進制
print("{:b}".format(42))        # 輸出:101010# 八進制
print("{:o}".format(42))        # 輸出:52# 十六進制(小寫)
print("{:x}".format(255))       # 輸出:ff# 十六進制(大寫)
print("{:X}".format(255))       # 輸出:FF# 帶前綴的十六進制
print("{:#x}".format(255))      # 輸出:0xff
print("{:#X}".format(255))      # 輸出:0XFF# 顯示正負號
print("{:+d}".format(42))       # 輸出:+42
print("{:+d}".format(-42))      # 輸出:-42# 只顯示負號(默認)
print("{:d}".format(42))        # 輸出:42
print("{:d}".format(-42))       # 輸出:-42# 正數前加空格
print("{: d}".format(42))       # 輸出: 42
print("{: d}".format(-42))      # 輸出:-42# 千位分隔符
print("{:,}".format(123456789)) # 輸出:123,456,789
print("{:_}".format(123456789)) # 輸出:123_456_789# 復雜的數字格式化
num = 1234.5678
print("|{:>15,.2f}|".format(num))   # 輸出:|       1,234.57|
print("|{:0>15,.2f}|".format(num))  # 輸出:|00000001,234.57|

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

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

相關文章

Mybatis Log Plugin打印日志,會導致CPU升高卡死

原因 大量日志輸出:MyBatis Log Plugin 會打印大量的 SQL 日志,包括 SQL 語句及其參數。如果項目中 SQL 查詢頻繁且復雜,日志量會非常大,導致 CPU 使用率升高,甚至卡死。 日志級別設置不當:如果將日志級別設置為 DEBUG 或 TRACE,MyBatis 會輸出非常詳細的日志信息,這會…

鴻蒙:深色模式適配和淺色模式的切換

前言&#xff1a; 有些時候我們需要對應用進行深色模式的適配處理&#xff0c;并且在不需要的時候切換到淺色狀態&#xff0c;下面和大家一起照著官方文檔來學習。 下面是官方文檔的鏈接&#xff1a; https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-dark-…

Coze源碼分析-資源庫-刪除插件-后端源碼-數據訪問和基礎設施層

5. 數據訪問層 5.1 倉儲接口定義 插件倉儲接口 文件位置&#xff1a;backend/domain/plugin/repository/plugin.go type PluginRepository interface {// DeleteDraftPlugin 刪除插件草稿DeleteDraftPlugin(ctx context.Context, pluginID int64) error// DeleteAPPAllPlugins …

案例一: 對基礎選擇器的使用【網頁盒子】

【1】樣例&#xff1a;首先&#xff0c;觀察到&#xff0c;幾個元素豎著排列的&#xff0c;所以使用塊級元素&#xff0c;而不是行內元素。【2】代碼演示<head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,…

爬蟲項目優化:如何用 Redis 實現 “斷點續爬”?避免重復采集電商數據

在電商數據采集場景中&#xff0c;爬蟲常因網絡波動、服務器重啟、IP 封禁等問題中斷。若缺乏斷點續爬機制&#xff0c;重啟后需從頭開始&#xff0c;不僅浪費帶寬與時間&#xff0c;還可能因重復采集導致數據冗余。Redis 憑借其高性能、原子操作、多樣數據結構的特性&#xff…

決策樹概念與原理

決策樹簡介決策樹是一種樹形結構樹中每個內部節點表示一個特征上的判斷&#xff0c;每個分支代表一個判斷結果的輸出&#xff0c;每個葉子節點代表一種分類結果(僅舉例無其他意義或隱喻)就像一個女孩去相親&#xff0c;那么首先詢問是否大于30&#xff0c;大于則不見&#xff0…

SQL面試題及詳細答案150道(116-135) --- 高級查詢與函數篇

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,MySQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 116. 如何使用CASE語句實…

VeRL:強化學習與大模型訓練的高效融合框架

本文由「大千AI助手」原創發布&#xff0c;專注用真話講AI&#xff0c;回歸技術本質。拒絕神話或妖魔化。搜索「大千AI助手」關注我&#xff0c;一起撕掉過度包裝&#xff0c;學習真實的AI技術&#xff01; 1 概述&#xff1a;VeRL的起源與核心價值 VeRL&#xff08;Versatile…

2. 計算機系統基礎知識

1 計算機系統概述 計算機系統 (Computer System) 是指用于數據管理的計算機硬件、軟件及網絡組成的系統。 計算機系統可劃分為硬件(子系統)和軟件(子系統)兩部分。硬件由機械、電子元器件、磁介質和光介質等物理實體構成&#xff0c;例如處理器(含運算單元和控制單元)、存儲器、…

國產EtherCAT從站芯片FCE1353與N32G435 MCU功能板測試流程

上期推薦&#xff0c;我們在前期介紹了FCE1353與國民N32G435 MCU開發板的基本情況&#xff0c;本期主要介紹此開發板的測試流程&#xff0c;以便用戶拿到此板做功能驗證、兼容性測試、可靠性測試時更加便捷地提高開發驗證效率。01概述FCE1353_N32G435RBL7_GPIO_V1 開發板主要通…

向日葵亮點16功能解析:被控端“快速解鎖”

向日葵16重磅上線&#xff0c;本次更新新增了諸多實用功能&#xff0c;提升遠控效率&#xff0c;實現應用融合突破設備邊界&#xff0c;同時全面提升遠控性能&#xff0c;操作更順滑、畫質更清晰&#xff01;無論遠程辦公、設計、IT運維、開發還是游戲娛樂&#xff0c;向日葵16…

深度解析:IService 與 ServiceImpl 的區別

在使用 MyBatis-Plus 開發業務邏輯時&#xff0c;IService 和 ServiceImpl 是經常遇到的兩個核心類。很多初學者會疑惑&#xff1a; 為什么要定義 IService&#xff1f;ServiceImpl 又解決了什么問題&#xff1f;它們之間到底有什么區別與聯系&#xff1f; 本文將結合源碼與應用…

YOLO12 改進、魔改|通道自注意力卷積塊CSA-ConvBlock,通過動態建模特征圖通道間的依賴關系,優化通道權重分配,在強化有效特征、抑制冗余信息

在分割的研究中&#xff0c;傳統卷積神經網絡&#xff08;CNN&#xff09;存在兩大關鍵問題&#xff1a;一是池化操作雖能降低計算復雜度&#xff0c;卻會導致特征圖中有效空間信息丟失&#xff0c;尤其太陽暗條這類不規則、精細結構的特征易被削弱&#xff1b;二是傳統 CNN 對…

JuiceFS分布式文件系統

對象存儲雖然具備極高的擴展性和成本優勢&#xff0c;卻缺乏對POSIX語義的支持&#xff0c;導致許多應用無法直接使用。正是在這樣的背景下&#xff0c;JuiceFS 應運而生——它巧妙地融合了對象存儲的彈性與傳統文件系統的易用性&#xff0c;為現代應用提供了一種全新的存儲解決…

nginx配置前端請求轉發到指定的后端ip

nginx conf配置 配置把“前端靜態文件”和“后端接口”統一收在 同一個 server{} 塊 里&#xff0c;通過 兩條 location 做分流&#xff0c;其中 /api 這條 location 用到了一點“小技巧”把路徑裁掉后再轉發。下面按執行順序逐句拆解&#xff0c;告訴你“請求是怎么被轉發到 1…

HTML 各種標簽的使用說明書

HTML 各種標簽的使用說明書 1. HTML 簡介 HTML&#xff08;HyperText Markup Language&#xff0c;超文本標記語言&#xff09;是用于創建網頁的標準標記語言。它使用一系列標簽來描述網頁的結構和內容&#xff0c;這些標簽被瀏覽器解釋并渲染成用戶看到的網頁。HTML是構建We…

從關鍵詞到語義理解:小陌引擎如何重構AI搜索優化邏輯?

引言&#xff1a;AI搜索時代的范式轉變在傳統互聯網時代&#xff0c;SEO&#xff08;搜索引擎優化&#xff09;是企業數字營銷的核心策略&#xff0c;通過關鍵詞密度、外鏈建設等技術手段提升網頁在搜索引擎結果頁&#xff08;SERP&#xff09;中的排名。然而&#xff0c;隨著生…

ADE explorer遇到XVFB服務器的問題

遇到這個報錯&#xff0c;是因為服務器沒有安裝xvfb的原因。yum install Xvfb即可解決問題。

期權的套利怎么理解?

期權套利是利用期權價格之間的不合理偏差&#xff0c;通過構建對沖組合獲取無風險利潤的策略。其核心邏輯基于“無套利定價原則”——若存在價格偏差&#xff0c;市場力量會迅速修正&#xff0c;套利者通過反向操作鎖定利潤。期權的套利怎么理解&#xff1f;一、主要套利類型與…

RabbitMQ 重試機制 和 TTL

目錄 1. 重試機制 1.1 簡介 1.2 配置文件 1.3 消費者確認機制為 auto 時 1.4 消費者確認機制為 manual 時 2. TTL 2.1 設置消息的過期時間 2.2 設置隊列的過期時間 2.3 給過期隊列中消息設置過期時間 1. 重試機制 1.1 簡介 在消息傳遞過程中, 可能會遇到各種問題, …