国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

18 Python的sys模塊

這篇具有很好參考價值的文章主要介紹了18 Python的sys模塊。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

概述

????????在上一節(jié),我們介紹了Python的os模塊,包括:os模塊中一些常用的屬性和函數(shù)。在這一節(jié),我們將介紹Python的sys模塊。sys模塊提供了訪問解釋器使用或維護的變量,以及與解釋器進行交互的函數(shù)。 通俗來講,sys模塊負責程序與Python解釋器的交互,提供了一系列的函數(shù)和變量,用于操控Python運行時的環(huán)境。比如:它提供了一些與Python解釋器交互的方法,包括:獲取命令行參數(shù)、處理Python解釋器的退出等。

????????下面,我們將逐一介紹sys模塊中一些常用的屬性和函數(shù)。

sys.version屬性

????????sys.version是一個包含Python解釋器版本號和編譯版本號等額外信息的字符串,它會在Python交互式解釋器啟動時顯示。

import sys

# 輸出:3.11.4 (tags/v3.11.4:d2340ef, Jun  7 2023, 05:45:37) [MSC v.1934 64 bit (AMD64)]
print(sys.version)

sys.version_info屬性

????????sys.version_info是一個元組,包含了五個部分的信息,分別為:主版本號、次版本號、微版本號、發(fā)行級別('alpha'、'beta'、'candidate' 或 'final')和序列號。比如:對于Python 3.8.5,sys.version_info將返回(3, 8, 5, 'final', 0)。返回的元組可以用于比較Python版本。

import sys

# 輸出:sys.version_info(major=3, minor=11, micro=4, releaselevel='final', serial=0)
print(sys.version_info)
if sys.version_info < (3, 0):
    print('can only run in Python 3.x')
    sys.exit()
else:
    print('Python version passed')

sys.platform屬性

????????sys.platform是一個字符串,用于表示Python解釋器正在其上運行的平臺。如果你的Python解釋器運行在Windows上,sys.platform的值將是'win32';如果你的Python解釋器運行在Linux或Mac OS上,sys.platform的值將是'darwin'或'linux2'。

????????該屬性可以用來編寫依賴于特定操作系統(tǒng)的代碼,比如:如果我們需要使用一些只在Windows上可用的庫或者功能,可以先檢查sys.platform的值,然后根據(jù)需要選擇使用哪個庫或者功能,或者給用戶一個提示,讓他們知道程序無法在當前的操作系統(tǒng)上運行。

import sys

# 輸出:win32
print(sys.platform)

sys.path屬性

????????sys.path是一個Python列表,包含了許多目錄。當我們嘗試導(dǎo)入一個模塊時,Python會在這個列表中尋找那個模塊。該列表的初始值來自于以下三個方面:輸入腳本的目錄、PYTHONPATH環(huán)境變量、安裝的默認路徑??梢孕薷倪@個列表,以便Python能在我們指定的目錄中查找模塊。比如:如果模塊在一個非標準的目錄中,我們可以將那個目錄添加到sys.path中,這樣Python就能找到它了。

????????注意:修改sys.path只會影響當前Python進程的行為,不會影響其他進程或Python解釋器。

import sys

# 輸出:['F:\\', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\DLLs', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\Lib', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311', 
# 'C:\\Users\\H\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages']
print(sys.path)

sys.argv屬性

????????sys.argv是一個Python列表,包含了命令行參數(shù)。該列表的第一個元素是腳本名,也就是被調(diào)用的程序的名字,其余的元素是從命令行傳遞給程序的參數(shù)。比如:如果運行python test.py arg1 arg2,那么sys.argv將會是['test.py', 'arg1', 'arg2']。我們可以使用sys.argv來獲取命令行參數(shù),并根據(jù)需要對其進行處理。

import sys

# 輸出:['F:\\test.py']
print(sys.argv)

sys.stdout屬性

????????sys.stdout是一個Python文件對象,代表了系統(tǒng)的標準輸出流。可以像操作文件一樣操作sys.stdout,比如:寫入文本。寫入sys.stdout的內(nèi)容將會被輸出到控制臺,也就是終端或者命令行窗口。注意:雖然我們可以像操作文件一樣操作sys.stdout,但是并不建議這樣做,因為這可能會導(dǎo)致一些難以預(yù)料的問題。如果需要輸出文本,最好使用print()函數(shù),而不是直接操作sys.stdout。

import sys

# 輸出:Hello, CSDN
sys.stdout.write('Hello, CSDN\n')

sys.maxsize屬性

????????sys.maxsize是一個Python整數(shù),用于表示Python可以處理的最大整數(shù)。這個值是根據(jù)Python的位數(shù)和配置來確定的:在32位Python中,sys.maxsize的值是2147483647(也就是2的31次方減1);在64位Python中,sys.maxsize的值是9223372036854775807(也就是2的63次方減1)。sys.maxsize可以用于檢查一個整數(shù)是否會在加法或乘法等操作后溢出,如果你嘗試添加一個大于sys.maxsize的數(shù)到一個整數(shù),Python會拋出一個OverflowError錯誤。

import sys

# 輸出:9223372036854775807
print(sys.maxsize)

sys.exit()函數(shù)

????????sys.exit()函數(shù)用于引發(fā)一個系統(tǒng)退出,它接受一個可選參數(shù),這個參數(shù)可以是一個整數(shù),或者一個異常對象。如果參數(shù)是一個整數(shù),那么這個整數(shù)會被用作Python解釋器的退出狀態(tài);如果參數(shù)是一個異常對象,那么這個異常會被拋出;如果沒有給這個函數(shù)提供任何參數(shù),或者參數(shù)是None,那么Python解釋器會退出,并且返回狀態(tài)碼0。該函數(shù)通常在想要立即結(jié)束程序,或者在程序中處理致命錯誤時使用。

import sys

a = 10
if a > 6:
    sys.exit(0)
else:
    print(a)

sys.getfilesystemencoding()函數(shù)

????????sys.getfilesystemencoding()函數(shù)用于返回文件系統(tǒng)的默認編碼,該函數(shù)取代了sys.getdefaultencoding()函數(shù)。

import sys

# 輸出:utf-8
print(sys.getfilesystemencoding())

sys.getrecursionlimit()函數(shù)

????????sys.getrecursionlimit()函數(shù)用于返回Python解釋器當前的遞歸深度限制。這個限制是一種防止無限遞歸導(dǎo)致程序崩潰的保護機制。在Python中,每次函數(shù)調(diào)用都會在調(diào)用棧中增加一個新的棧幀,每個棧幀都會占用一些內(nèi)存。如果函數(shù)調(diào)用層次過深,就會導(dǎo)致調(diào)用棧溢出,程序崩潰。注意:雖然可以使用sys.setrecursionlimit(limit)來提高這個限制,但是一般不建議這么做,因為這可能會導(dǎo)致大量的內(nèi)存被占用,甚至導(dǎo)致程序崩潰。文章來源地址http://www.zghlxwxcb.cn/news/detail-725081.html

import sys

# 輸出:1000
print(sys.getrecursionlimit())

到了這里,關(guān)于18 Python的sys模塊的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 30 Python的matplotlib模塊

    30 Python的matplotlib模塊

    概述 ????????在上一節(jié),我們介紹了Python的pandas模塊,包括:Series、DataFrame、數(shù)據(jù)讀取和寫入等內(nèi)容。在這一節(jié),我們將介紹Python的matplotlib模塊。matplotlib模塊是一個Python的2D繪圖庫,可以實現(xiàn)各種類型的圖形繪制,包括:線圖、柱狀圖、餅圖、散點圖等。matplotlib支持各種

    2024年02月08日
    瀏覽(39)
  • 挑戰(zhàn)30天學(xué)完P(guān)ython:Day12 模塊

    ?? 本系列為Python基礎(chǔ)學(xué)習(xí),原稿來源于 30-Days-Of-Python 英文項目,大奇主要是對其本地化翻譯、逐條驗證和補充,想通過30天完成正兒八經(jīng)的系統(tǒng)化實踐。此系列適合零基礎(chǔ)同學(xué),或僅了解Python一點知識,但又沒有系統(tǒng)學(xué)習(xí)的使用者??傊绻阆胩嵘约旱腜ython技能,歡迎

    2023年04月27日
    瀏覽(17)
  • 30天拿下Rust之切片

    概述 ????????在Rust中,切片是一種非常重要的引用類型。它允許你安全地引用一段連續(xù)內(nèi)存中的數(shù)據(jù),而不需要擁有這些數(shù)據(jù)的所有權(quán)。切片不包含分配的內(nèi)存空間,它僅僅是一個指向數(shù)據(jù)開始位置和長度的數(shù)據(jù)結(jié)構(gòu)。切片是對數(shù)組的一個連續(xù)引用,它提供了一種方便、

    2024年03月13日
    瀏覽(27)
  • 30天拿下Rust之泛型

    概述 ????????在Rust語言中,泛型是一種強大的工具,它允許我們編寫可復(fù)用且靈活的代碼。通過泛型,我們可以創(chuàng)建適用于多種類型的數(shù)據(jù)結(jié)構(gòu)和函數(shù),而無需為每種類型都重復(fù)編寫相同的邏輯。在Rust中,泛型通過指定類型參數(shù)來實現(xiàn),這些類型參數(shù)會在編譯時被具體類

    2024年03月17日
    瀏覽(25)
  • 30天拿下Rust之引用

    概述 ????????在Rust語言中,引用機制是其所有權(quán)系統(tǒng)的重要組成部分,它為開發(fā)者提供了一種既高效又安全的方式來訪問和共享數(shù)據(jù)。引用可以被視為一個指向內(nèi)存地址的指針,它允許我們間接地訪問和操作存儲在內(nèi)存中的數(shù)據(jù)。與其他語言中的指針不同,Rust中的引用是

    2024年03月10日
    瀏覽(22)
  • 30天拿下Rust之高級類型

    概述 ????????Rust作為一門系統(tǒng)編程語言,以其獨特的內(nèi)存管理方式和強大的類型系統(tǒng)著稱。其中,高級類型的應(yīng)用,為Rust的開發(fā)者提供了豐富的編程工具和手段,使得開發(fā)者可以更加靈活和高效地進行編程。 Newtype模式 ????????Newtype模式是一種輕量級的設(shè)計模式,用

    2024年04月15日
    瀏覽(62)
  • 30天拿下Rust之輸入輸出

    概述 ????????在軟件開發(fā)中,輸入輸出(I/O)是任何應(yīng)用程序的基本構(gòu)建模塊。Rust作為一門注重安全和性能的語言,在其標準庫中提供了強大的I/O功能。這些功能使得Rust程序員能夠非常輕松地進行標準I/O、文件讀寫等操作。 標準I/O ????????在Rust中,標準輸入通常通

    2024年03月24日
    瀏覽(21)
  • 30天拿下Rust之生命周期

    概述 ????????在Rust中,生命周期是一個非常重要的概念,是保證內(nèi)存安全和防止懸垂引用的核心機制之一。通過精確地跟蹤引用的生命周期,Rust能夠在編譯階段就防止許多其他語言在運行時才會遇到的內(nèi)存問題。在Rust中,生命周期代表了引用的有效時間段。當我們創(chuàng)建

    2024年03月20日
    瀏覽(29)
  • 30天拿下Rust之Trait

    概述 ????????在Rust中,Trait是一個核心概念,它允許我們定義類型應(yīng)該具有的行為。Trait類似于其他語言中的接口,但Rust的Trait更為強大和靈活。它不僅定義了一組方法,還允許我們指定方法的默認實現(xiàn)、泛型約束和繼承。通過Trait,我們可以定義一組方法的簽名和關(guān)聯(lián)類

    2024年03月17日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包