2023-01-29 Python 3 基礎一

Python 3 基礎

Java與Python的區(qū)別

1.Java必須顯式聲明變量名,而動態(tài)類型的Python不需要聲明變量。
2.Python虛擬機沒有Java強,Java虛擬機是Java的核心,Python的核心是可以很方便地使用c語言函數(shù)或c++庫。
3.Java是一種靜態(tài)類型語言,Python是一種動態(tài)類型語言
4.Java 的類型要聲明,Python 的類型不需要。
5.Python是全動態(tài)性的,可以在運行時自己修改自己的代碼,Java只能通過變通方法實現(xiàn)。
除了以上說到的這幾點外,其實Java和Python之間還有很多細節(jié)上的差別,這里就不一一列舉了。Java和Python二者的區(qū)別決定了它們各自會具備一定的優(yōu)劣勢,以下就為大家進行列舉。

Java源自C和C++的技術體系,于1995年推出,定位于給專門的程序員設計大型的復雜分布式應用而設計。

Python是1991年推出(比Java還早)主要面向于系統(tǒng)管理、科研、教育和非程序員群體等。

1、Python

Python是一種解釋型腳本語言。而提到Python,大部分會想到簡單易學。其在設計上也堅持了清晰劃一的風格,這使得Python成為易讀、易維護的語言。

Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經(jīng)常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態(tài)語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經(jīng)常有特殊情況和意外。

Python開發(fā)者有意讓違反了縮進規(guī)則的程序不能通過編譯,以此來強制程序員養(yǎng)成良好的編程習慣。并且Python語言利用縮進表示語句塊的開始和退出(Off-side規(guī)則),而非使用花括號或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出??s進成為了語法的一部分。

簡而言之:Python可直接調(diào)用別人的代碼接口。

2、Java

Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進行復雜的編程。

Java看起來設計得很像C++,但是為了使語言小和容易熟悉,設計者們把C++語言中許多可用的特征去掉了,例如Java不支持go to語句。Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件。因為Java沒有結構,數(shù)組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱。

簡而言之:Java的很多處理相對要原生一點,代碼要多一些。

Python3 簡介

Python 是一個高層次的結合了解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言。

Python 的設計具有很強的可讀性,相比其他語言經(jīng)常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。

Python 是一種解釋型語言: 這意味著開發(fā)過程中沒有了編譯這個環(huán)節(jié)。類似于PHP和Perl語言。

Python 是交互式語言: 這意味著,您可以在一個 Python 提示符 >>> 后直接執(zhí)行代碼。

Python 是面向?qū)ο笳Z言: 這意味著Python支持面向?qū)ο蟮娘L格或代碼封裝在對象的編程技術。

Python 是初學者的語言:Python 對初級程序員而言,是一種偉大的語言,它支持廣泛的應用程序開發(fā),從簡單的文字處理到 WWW 瀏覽器再到游戲。

Python 特點

1.易于學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。

2.易于閱讀:Python代碼定義的更清晰。

3.易于維護:Python的成功在于它的源代碼是相當容易維護的。

4.一個廣泛的標準庫:Python的最大的優(yōu)勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。

5.互動模式:互動模式的支持,您可以從終端輸入執(zhí)行代碼并獲得結果的語言,互動的測試和調(diào)試代碼片斷。

6.可移植:基于其開放源代碼的特性,Python已經(jīng)被移植(也就是使其工作)到許多平臺。

7.可擴展:如果你需要一段運行很快的關鍵代碼,或者是想要編寫一些不愿開放的算法,你可以使用C或C++完成那部分程序,然后從你的Python程序中調(diào)用。

8.數(shù)據(jù)庫:Python提供所有主要的商業(yè)數(shù)據(jù)庫的接口。

9.GUI編程:Python支持GUI可以創(chuàng)建和移植到許多系統(tǒng)調(diào)用。

10.可嵌入: 你可以將Python嵌入到C/C++程序,讓你的程序的用戶獲得"腳本化"的能力。

Python 應用

Youtube - 視頻社交網(wǎng)站
Reddit - 社交分享網(wǎng)站
Dropbox - 文件分享服務
豆瓣網(wǎng) - 圖書、唱片、電影等文化產(chǎn)品的資料數(shù)據(jù)庫網(wǎng)站
知乎 - 一個問答網(wǎng)站
果殼 - 一個泛科技主題網(wǎng)站
Bottle - Python微Web框架
EVE - 網(wǎng)絡游戲EVE大量使用Python進行開發(fā)
Blender - 使用Python作為建模工具與GUI語言的開源3D繪圖軟件
Inkscape - 一個開源的SVG矢量圖形編輯器。
...

Python3 下載

Python3 最新源碼,二進制文檔,新聞資訊等可以在 Python 的官網(wǎng)查看到:

Python 官網(wǎng):https://www.python.org/

你可以在以下鏈接中下載 Python 的文檔,你可以下載 HTML、PDF 和 PostScript 等格式的文檔。

Python文檔下載地址:https://www.python.org/doc/

Python 安裝

Python 已經(jīng)被移植在許多平臺上(經(jīng)過改動使它能夠工作在不同平臺上)。

您需要下載適用于您使用平臺的二進制代碼,然后安裝 Python。

如果您平臺的二進制代碼是不可用的,你需要使用C編譯器手動編譯源代碼。

編譯的源代碼,功能上有更多的選擇性, 為 Python 安裝提供了更多的靈活性。

以下是各個平臺安裝包的下載地址:


image.png

Source Code 可用于 Linux 上的安裝。

以下為不同平臺上安裝 Python3 的方法。

Unix & Linux 平臺安裝 Python3:

以下為在 Unix & Linux 平臺上安裝 Python 的簡單步驟:

  • 打開 WEB 瀏覽器訪問 https://www.python.org/downloads/source/
  • 選擇適用于 Unix/Linux 的源碼壓縮包。
  • 下載及解壓壓縮包 Python-3.x.x.tgz,3.x.x 為你下載的對應版本號。
  • 如果你需要自定義一些選項修改 Modules/Setup

以** Python3.6.1** 版本為例:

# tar -zxvf Python-3.6.1.tgz
# cd Python-3.6.1
# ./configure
# make && make install

檢查 Python3 是否正常可用:

# python3 -V
Python 3.6.1

Window 平臺安裝 Python:

以下為在 Window 平臺上安裝 Python 的簡單步驟。

打開 WEB 瀏覽器訪問 https://www.python.org/downloads/windows/ ,一般就下載 executable installer,x86 表示是 32 位機子的,x86-64 表示 64 位機子的。

image.png

記得勾選 Add Python 3.6 to PATH。
image.png

按 Win+R 鍵,輸入 cmd 調(diào)出命令提示符,輸入 python:
image.png

也可以在開始菜單中搜索 IDLE:
image.png

MAC 平臺安裝 Python:

MAC 系統(tǒng)都自帶有 Python2.7 環(huán)境,你可以在鏈接 https://www.python.org/downloads/mac-osx/ 上下載最新版安裝 Python 3.x。

你也可以參考源碼安裝的方式來安裝。

環(huán)境變量配置

程序和可執(zhí)行文件可以在許多目錄,而這些路徑很可能不在操作系統(tǒng)提供可執(zhí)行文件的搜索路徑中。

path(路徑)存儲在環(huán)境變量中,這是由操作系統(tǒng)維護的一個命名的字符串。這些變量包含可用的命令行解釋器和其他程序的信息。

Unix 或 Windows 中路徑變量為 PATH(UNIX 區(qū)分大小寫,Windows 不區(qū)分大小寫)。

在 Mac OS 中,安裝程序過程中改變了 Python 的安裝路徑。如果你需要在其他目錄引用 Python,你必須在 path 中添加 Python 目錄。

在 Unix/Linux 設置環(huán)境變量
在 csh shell 輸入:
setenv PATH "PATH:/usr/local/bin/python", 按下 Enter。 在 bash shell (Linux) 輸入 : export PATH="PATH:/usr/local/bin/python" 按下 Enter 。
在 sh 或者 ksh shell 輸入:
PATH="$PATH:/usr/local/bin/python" 按下 Enter。
注意: /usr/local/bin/python 是 Python 的安裝目錄。

在 Windows 設置環(huán)境變量
在環(huán)境變量中添加Python目錄:

在命令提示框中(cmd) : 輸入

path=%path%;C:\Python 按下"Enter"。
注意: C:\Python 是Python的安裝目錄。

也可以通過以下方式設置:

右鍵點擊"計算機",然后點擊"屬性"
然后點擊"高級系統(tǒng)設置"
選擇"系統(tǒng)變量"窗口下面的"Path",雙擊即可!
然后在"Path"行,添加python安裝路徑即可(我的D:\Python32),所以在后面,添加該路徑即可。 ps:記住,路徑直接用分號";"隔開!
最后設置成功以后,在cmd命令行,輸入命令"python",就可以有相關顯示。


image.png

集成開發(fā)環(huán)境(IDE:Integrated Development Environment): PyCharm

PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系統(tǒng)。

PyCharm 功能 : 調(diào)試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制……

PyCharm 下載地址 : https://www.jetbrains.com/pycharm/download/

PyCharm 安裝地址:http://www.runoob.com/w3cnote/pycharm-windows-install.html

Professional(專業(yè)版,收費):完整的功能,可試用 30 天。

Community(社區(qū)版,免費):閹割版的專業(yè)版。


image.png
image.png

安裝 PyCharm 中文插件,打開菜單欄 File,選擇 Settings,然后選 Plugins,點 Marketplace,搜索 chinese,然后點擊 install 安裝:


image.png

Python3 基礎語法

編碼

默認情況下,Python 3 源碼文件以 UTF-8 編碼,所有字符串都是 unicode 字符串。 當然你也可以為源碼文件指定不同的編碼:

# -*- coding: cp-1252 -*-

上述定義允許在源文件中使用 Windows-1252 字符集中的字符編碼,對應適合語言為保加利亞語、白羅斯語、馬其頓語、俄語、塞爾維亞語。

標識符

第一個字符必須是字母表中字母或下劃線 _ 。
標識符的其他的部分由字母、數(shù)字和下劃線組成。
標識符對大小寫敏感。
在 Python 3 中,可以用中文作為變量名,非ASCII 標識符也是允許的了。

python保留字

保留字即關鍵字,我們不能把它們用作任何標識符名稱。Python 的標準庫提供了一個 keyword 模塊,可以輸出當前版本的所有關鍵字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

第一個python程序

# 第一個注釋
print ("Hello, Python!") # 第二個注釋

執(zhí)行以上代碼,輸出結果為:

Hello, Python!

注釋

Python中單行注釋以 # 開頭,實例如下:

#!/usr/bin/python3
 
# 第一個注釋
print ("Hello, Python!") # 第二個注釋

多行注釋可以用多個 # 號,還有 ''' 和 """:

#!/usr/bin/python3
 
# 第一個注釋
# 第二個注釋
 
'''
第三注釋
第四注釋
'''
 
"""
第五注釋
第六注釋
"""
print ("Hello, Python!")

行與縮進

python最具特色的就是使用縮進來表示代碼塊,不需要使用大括號 {} 。

縮進的空格數(shù)是可變的,但是同一個代碼塊的語句必須包含相同的縮進空格數(shù)。實例如下:

if True:
    print ("True")
else:
    print ("False")

以下代碼最后一行語句縮進數(shù)的空格數(shù)不一致,會導致運行錯誤:

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 縮進不一致,會導致運行錯誤

以上程序由于縮進不一致,執(zhí)行后會出現(xiàn)類似以下錯誤:

 File "test.py", line 6
    print ("False")    # 縮進不一致,會導致運行錯誤
                                      ^
IndentationError: unindent does not match any outer indentation level

數(shù)字(Number)類型

Python 數(shù)字數(shù)據(jù)類型用于存儲數(shù)值。
數(shù)據(jù)類型是不允許改變的,這就意味著如果改變數(shù)字數(shù)據(jù)類型的值,將重新分配內(nèi)存空間。
以下實例在變量賦值時 Number 對象將被創(chuàng)建:

var1 = 1
var2 = 10

您也可以使用del語句刪除一些數(shù)字對象的引用。
del語句的語法是:

del var1[,var2[,var3[....,varN]]]

python中數(shù)字有四種類型:整數(shù)、布爾型、浮點數(shù)和復數(shù)。
int (整數(shù)), 如 1, 只有一種整數(shù)類型 int,表示為長整型,沒有 python2 中的 Long。
bool (布爾), 如 True。
float (浮點數(shù)), 如 1.23、3E-2
complex (復數(shù)), 如 1 + 2j、 1.1 + 2.2j
我們可以使用十六進制和八進制來代表整數(shù):

>>> number = 0xA0F # 十六進制
>>> number
2575

>>> number=0o37 # 八進制
>>> number
31

Python支持復數(shù),復數(shù)由實數(shù)部分和虛數(shù)部分構成,可以用a + bj,或者complex(a,b)表示, 復數(shù)的實部a和虛部b都是浮點型。

Python 數(shù)字類型轉換

有時候,我們需要對數(shù)據(jù)內(nèi)置的類型進行轉換,數(shù)據(jù)類型的轉換,你只需要將數(shù)據(jù)類型作為函數(shù)名即可。
int(x) 將x轉換為一個整數(shù)。
float(x) 將x轉換到一個浮點數(shù)。
complex(x) 將x轉換到一個復數(shù),實數(shù)部分為 x,虛數(shù)部分為 0。
complex(x, y) 將 x 和 y 轉換到一個復數(shù),實數(shù)部分為 x,虛數(shù)部分為 y。x 和 y 是數(shù)字表達式。
以下實例將浮點數(shù)變量 a 轉換為整數(shù):

>>> a ,b= 1.0,12
>>> int(a)
1
>>> float(b)
12.0

Python 數(shù)字運算

Python 解釋器可以作為一個簡單的計算器,您可以在解釋器里輸入一個表達式,它將輸出表達式的值。
表達式的語法很直白: +, -, * 和 /, 和其它語言(如Pascal或C)里一樣。例如:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # 總是返回一個浮點數(shù)
1.6

注意:在不同的機器上浮點運算的結果可能會不一樣。
在整數(shù)除法中,除法 / 總是返回一個浮點數(shù),如果只想得到整數(shù)的結果,丟棄可能的分數(shù)部分,可以使用運算符 // :

>>> 17 / 3  # 整數(shù)除法返回浮點型
5.666666666666667
>>>
>>> 17 // 3  # 整數(shù)除法返回向下取整后的結果
5
>>> 17 % 3  # %操作符返回除法的余數(shù)
2
>>> 5 * 3 + 2 
17

注意:// 得到的并不一定是整數(shù)類型的數(shù),它與分母分子的數(shù)據(jù)類型有關系。

>>> 7//2
3
>>> 7.0//2
3.0
>>> 7//2.0
3.0
>>> 

等號 = 用于給變量賦值。賦值之后,除了下一個提示符,解釋器不會顯示任何結果。

>>> width = 20
>>> height = 5*9
>>> width * height
900

Python 可以使用 ** 操作來進行冪運算:

>>> 5 ** 2  # 5 的平方
25
>>> 2 ** 7  # 2的7次方
128

變量在使用前必須先"定義"(即賦予變量一個值),否則會出現(xiàn)錯誤:

>>> n   # 嘗試訪問一個未定義的變量
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

不同類型的數(shù)混合運算時會將整數(shù)轉換為浮點數(shù):

>>> 3 * 3.75 / 1.5
7.5
>>> 7.0 / 2
3.5

在交互模式中,最后被輸出的表達式結果被賦值給變量 _ 。例如:

>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

此處, _ 變量應被用戶視為只讀變量。

數(shù)學函數(shù)

1、 abs(x) 返回數(shù)字的絕對值,如abs(-10) 返回 10
2、 ceil(x) |返回數(shù)字的上入整數(shù),如math.ceil(4.1) 返回 5
3、cmp(x, y) 如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已廢棄,使用 (x>y)-(x<y) 替換。
4、 exp(x) 返回e的x次冪(ex),如math.exp(1) 返回2.718281828459045
5、 fabs(x) 返回數(shù)字的絕對值,如math.fabs(-10) 返回10.0
6、 floor(x) 返回數(shù)字的下舍整數(shù),如math.floor(4.9)返回 4
7、 log(x) 如math.log(math.e)返回1.0,math.log(100,10)返回2.0
8、 log10(x) 返回以10為基數(shù)的x的對數(shù),如math.log10(100)返回 2.0
9、 max(x1, x2,...) 返回給定參數(shù)的最大值,參數(shù)可以為序列。
10、 min(x1, x2,...) 返回給定參數(shù)的最小值,參數(shù)可以為序列。
11、 modf(x) 返回x的整數(shù)部分與小數(shù)部分,兩部分的數(shù)值符號與x相同,整數(shù)部分以浮點型表示。
12、 pow(x, y) x**y 運算后的值。
13、 round(x [,n]) 返回浮點數(shù) x 的四舍五入值,如給出 n 值,則代表舍入到小數(shù)點后的位數(shù)。
其實準確的說是保留值將保留到離上一位更近的一端。
14、 sqrt(x) | 返回數(shù)字x的平方根。

隨機數(shù)函數(shù)

隨機數(shù)可以用于數(shù)學,游戲,安全等領域中,還經(jīng)常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。
Python包含以下常用隨機數(shù)函數(shù):
1、 choice(seq) 從序列的元素中隨機挑選一個元素,比如random.choice(range(10)),從0到9中隨機挑選一個整數(shù)。
2、 randrange ([start,] stop [,step]) 從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個隨機數(shù),基數(shù)默認值為 1
3、 random() 隨機生成下一個實數(shù),它在[0,1)范圍內(nèi)。
4、 seed([x]) 改變隨機數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設定seed,Python會幫你選擇seed。
5、 shuffle(lst) 將序列的所有元素隨機排序
6、 uniform(x, y) 隨機生成下一個實數(shù),它在[x,y]范圍內(nèi)。

數(shù)學常量

pi 數(shù)學常量 pi(圓周率,一般以π來表示)
e 數(shù)學常量 e,e即自然常數(shù)(自然常數(shù))。

字符串(String)

Python 中單引號 ' 和雙引號 " 使用完全相同。
使用三引號(''' 或 """)可以指定一個多行字符串。
轉義符 \。
反斜杠可以用來轉義,使用 r 可以讓反斜杠不發(fā)生轉義。 如 r"this is a line with \n" 則 \n 會顯示,并不是換行。
按字面意義級聯(lián)字符串,如 "this " "is " "string" 會被自動轉換為 this is string。
字符串可以用 + 運算符連接在一起,用 * 運算符重復。
Python 中的字符串有兩種索引方式,從左往右以 0 開始,從右往左以 -1 開始。
Python 中的字符串不能改變。
Python 沒有單獨的字符類型,一個字符就是長度為 1 的字符串。
字符串的截取的語法格式如下:變量[頭下標:尾下標:步長]

Python3 基本數(shù)據(jù)類型

Python 中的變量不需要聲明。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。

在 Python 中,變量就是變量,它沒有類型,我們所說的"類型"是變量所指的內(nèi)存中對象的類型。

等號(=)用來給變量賦值。

等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。例如:

#!/usr/bin/python3

counter = 100          # 整型變量
miles   = 1000.0       # 浮點型變量
name    = "runoob"     # 字符串

print (counter)
print (miles)
print (name)

執(zhí)行以上程序會輸出如下結果:

100
1000.0
runoob

多個變量賦值

Python允許你同時為多個變量賦值。例如:

a = b = c = 1

以上實例,創(chuàng)建一個整型對象,值為 1,從后向前賦值,三個變量被賦予相同的數(shù)值。

您也可以為多個對象指定多個變量。例如:

a, b, c = 1, 2, "runoob"

以以上實例,兩個整型對象 1 和 2 的分配給變量 a 和 b,字符串對象 "runoob" 分配給變量 c。上實例,兩個整型對象 1 和 2 的分配給變量 a 和 b,字符串對象 "runoob" 分配給變量 c。

標準數(shù)據(jù)類型

Python3 中有六個標準的數(shù)據(jù)類型:
Number(數(shù)字)
String(字符串)
List(列表)
Tuple(元組)
Set(集合)
Dictionary(字典)
Python3 的六個標準數(shù)據(jù)類型中:
不可變數(shù)據(jù)(3 個):Number(數(shù)字)、String(字符串)、Tuple(元組);
可變數(shù)據(jù)(3 個):List(列表)、Dictionary(字典)、Set(集合)。

Number(數(shù)字)

Python3 支持 int、float、bool、complex(復數(shù))。
在Python 3里,只有一種整數(shù)類型 int,表示為長整型,沒有 python2 中的 Long。
像大多數(shù)語言一樣,數(shù)值類型的賦值和計算都是很直觀的。
內(nèi)置的 type() 函數(shù)可以用來查詢變量所指的對象類型。

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

此外還可以用 isinstance 來判斷:

>>> a = 111
>>> isinstance(a, int)
True
>>>

isinstance 和 type 的區(qū)別在于:
type()不會認為子類是一種父類類型。
isinstance()會認為子類是一種父類類型。

>>> class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False

注意:Python3 中,bool 是 int 的子類,True 和 False 可以和數(shù)字相加, True==1、False==0 會返回 True,但可以通過 is 來判斷類型。

>>> issubclass(bool, int) 
True
>>> True==1
True
>>> False==0
True
>>> True+1
2
>>> False+1
1
>>> 1 is True
False
>>> 0 is False
False

在 Python2 中是沒有布爾型的,它用數(shù)字 0 表示 False,用 1 表示 True。
當你指定一個值時,Number 對象就會被創(chuàng)建:

var1 = 1
var2 = 10

您也可以使用del語句刪除一些對象引用。
del語句的語法是:

del var1[,var2[,var3[....,varN]]]
# 您可以通過使用del語句刪除單個或多個對象。例如:
del var
del var_a, var_b

數(shù)值運算

>>> 5 + 4  # 加法
9
>>> 4.3 - 2 # 減法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一個浮點數(shù)
0.5
>>> 2 // 4 # 除法,得到一個整數(shù)
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32

注意:
1、Python可以同時為多個變量賦值,如a, b = 1, 2。
2、一個變量可以通過賦值指向不同類型的對象。
3、數(shù)值的除法包含兩個運算符:/ 返回一個浮點數(shù),// 返回一個整數(shù)。
4、在混合計算時,Python會把整型轉換成為浮點數(shù)。

String(字符串)

Python中的字符串用單引號 ' 或雙引號 " 括起來,同時使用反斜杠 \ 轉義特殊字符。
字符串的截取的語法格式如下:

變量[頭下標:尾下標]

索引值以 0 為開始值,-1 為從末尾的開始位置。


image.png

image.png

加號 + 是字符串的連接符, 星號 * 表示復制當前字符串,與之結合的數(shù)字為復制的次數(shù)。實例如下:

#!/usr/bin/python3

str = 'Runoob'

print (str)          # 輸出字符串
print (str[0:-1])    # 輸出第一個到倒數(shù)第二個的所有字符
print (str[0])       # 輸出字符串第一個字符
print (str[2:5])     # 輸出從第三個開始到第五個的字符
print (str[2:])      # 輸出從第三個開始的后的所有字符
print (str * 2)      # 輸出字符串兩次,也可以寫成 print (2 * str)
print (str + "TEST") # 連接字符串

執(zhí)行以上程序會輸出如下結果:

Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST

Python 使用反斜杠 \ 轉義特殊字符,如果你不想讓反斜杠發(fā)生轉義,可以在字符串前面添加一個 r,表示原始字符串:

>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob
>>>

另外,反斜杠()可以作為續(xù)行符,表示下一行是上一行的延續(xù)。也可以使用 """...""" 或者 '''...''' 跨越多行。
注意,Python 沒有單獨的字符類型,一個字符就是長度為1的字符串。

>>> word = 'Python'
>>> print(word[0], word[5])
P n
>>> print(word[-1], word[-6])
n P

與 C 字符串不同的是,Python 字符串不能被改變。向一個索引位置賦值,比如 word[0] = 'm' 會導致錯誤。
注意:
1、反斜杠可以用來轉義,使用r可以讓反斜杠不發(fā)生轉義。
2、字符串可以用+運算符連接在一起,用*運算符重復。
3、Python中的字符串有兩種索引方式,從左往右以0開始,從右往左以-1開始。
4、Python中的字符串不能改變。

Python 字符串更新

你可以截取字符串的一部分并與其他字段拼接,如下實例:

#!/usr/bin/python3
 
var1 = 'Hello World!'
 
print ("已更新字符串 : ", var1[:6] + 'Runoob!')
已更新字符串 :  Hello Runoob!

Python 字符串格式化

Python 支持格式化字符串的輸出 。盡管這樣可能會用到非常復雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用與 C 中 sprintf 函數(shù)一樣的語法。

#!/usr/bin/python3
 
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
我叫 小明 今年 10 歲!

python字符串格式化符號:
%c: 格式化字符及其ASCII碼
%s: 格式化字符串
%d: 格式化整數(shù)
%u: 格式化無符號整型
%o: 格式化無符號八進制數(shù)
%x: 格式化無符號十六進制數(shù)
%X: 格式化無符號十六進制數(shù)(大寫)
%f: 格式化浮點數(shù)字,可指定小數(shù)點后的精度
%e: 用科學計數(shù)法格式化浮點數(shù)
%E: 作用同%e,用科學計數(shù)法格式化浮點數(shù)
%g: %f和%e的簡寫
%G: %f 和 %E 的簡寫
%p: 用十六進制數(shù)格式化變量的地址
f-string
f-string 是 python3.6 之后版本添加的,稱之為字面量格式化字符串,是新的格式化字符串的語法。
之前我們習慣用百分號 (%):

>>> name = 'Runoob'
>>> 'Hello %s' % name
'Hello Runoob'

f-string 格式化字符串以 f 開頭,后面跟著字符串,字符串中的表達式用大括號 {} 包起來,它會將變量或表達式計算后的值替換進去,實例如下:

>>> name = 'Runoob'
>>> f'Hello {name}'  # 替換變量
'Hello Runoob'
>>> f'{1+2}'         # 使用表達式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'

用了這種方式明顯更簡單了,不用再去判斷使用 %s,還是 %d。
在 Python 3.8 的版本中可以使用 = 符號來拼接運算表達式與結果:

>>> x = 1
>>> print(f'{x+1}')   # Python 3.6
2

>>> x = 1
>>> print(f'{x+1=}')   # Python 3.8
x+1=2

Python 的字符串內(nèi)建函數(shù)

1、capitalize()
將字符串的第一個字符轉換為大寫
2、center(width, fillchar)
返回一個指定的寬度 width 居中的字符串,fillchar 為填充的字符,默認為空格。
3、count(str, beg= 0,end=len(string))
返回 str 在 string 里面出現(xiàn)的次數(shù),如果 beg 或者 end 指定則返回指定范圍內(nèi) str 出現(xiàn)的次數(shù)
4、bytes.decode(encoding="utf-8", errors="strict")
Python3 中沒有 decode 方法,但我們可以使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象,這個 bytes 對象可以由 str.encode() 來編碼返回。
5、encode(encoding='UTF-8',errors='strict')
以 encoding 指定的編碼格式編碼字符串,如果出錯默認報一個ValueError 的異常,除非 errors 指定的是'ignore'或者'replace'
6、endswith(suffix, beg=0, end=len(string))
檢查字符串是否以 suffix 結束,如果 beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 suffix 結束,如果是,返回 True,否則返回 False。
7、expandtabs(tabsize=8)
把字符串 string 中的 tab 符號轉為空格,tab 符號默認的空格數(shù)是 8 。
8、find(str, beg=0, end=len(string))
檢測 str 是否包含在字符串中,如果指定范圍 beg 和 end ,則檢查是否包含在指定范圍內(nèi),如果包含返回開始的索引值,否則返回-1
9、index(str, beg=0, end=len(string))
跟find()方法一樣,只不過如果str不在字符串中會報一個異常。
10、isalnum()
如果字符串至少有一個字符并且所有字符都是字母或數(shù)字則返 回 True,否則返回 False
11、isalpha()
如果字符串至少有一個字符并且所有字符都是字母或中文字則返回 True, 否則返回 False
12、isdigit()
如果字符串只包含數(shù)字則返回 True 否則返回 False..
13、islower()
如果字符串中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是小寫,則返回 True,否則返回 False
14、isnumeric()
如果字符串中只包含數(shù)字字符,則返回 True,否則返回 False
15、isspace()
如果字符串中只包含空白,則返回 True,否則返回 False.
16、istitle()
如果字符串是標題化的(見 title())則返回 True,否則返回 False
17、isupper()
如果字符串中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫,則返回 True,否則返回 False
18、join(seq)
以指定字符串作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串
19、len(string)
返回字符串長度
20、ljust(width[, fillchar])
返回一個原字符串左對齊,并使用 fillchar 填充至長度 width 的新字符串,fillchar 默認為空格。
21、lower()
轉換字符串中所有大寫字符為小寫.
22、lstrip()
截掉字符串左邊的空格或指定字符。
23、maketrans()
創(chuàng)建字符映射的轉換表,對于接受兩個參數(shù)的最簡單的調(diào)用方式,第一個參數(shù)是字符串,表示需要轉換的字符,第二個參數(shù)也是字符串表示轉換的目標。
24、max(str)
返回字符串 str 中最大的字母。
25、min(str)
返回字符串 str 中最小的字母。
26、replace(old, new [, max])
把 將字符串中的 old 替換成 new,如果 max 指定,則替換不超過 max 次。
27、rfind(str, beg=0,end=len(string))
類似于 find()函數(shù),不過是從右邊開始查找.
28、rindex( str, beg=0, end=len(string))
類似于 index(),不過是從右邊開始.
29、rjust(width,[, fillchar])
返回一個原字符串右對齊,并使用fillchar(默認空格)填充至長度 width 的新字符串
30、rstrip()
刪除字符串末尾的空格或指定字符。
31、split(str="", num=string.count(str))
以 str 為分隔符截取字符串,如果 num 有指定值,則僅截取 num+1 個子字符串
32、splitlines([keepends])
按照行('\r', '\r\n', \n')分隔,返回一個包含各行作為元素的列表,如果參數(shù) keepends 為 False,不包含換行符,如果為 True,則保留換行符。
33、startswith(substr, beg=0,end=len(string))
檢查字符串是否是以指定子字符串 substr 開頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定范圍內(nèi)檢查。
34、strip([chars])
在字符串上執(zhí)行 lstrip()和 rstrip()
35、swapcase()
將字符串中大寫轉換為小寫,小寫轉換為大寫
36、title()
返回"標題化"的字符串,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle())
37、translate(table, deletechars="")
根據(jù) table 給出的表(包含 256 個字符)轉換 string 的字符, 要過濾掉的字符放到 deletechars 參數(shù)中
38、upper()
轉換字符串中的小寫字母為大寫
39、zfill (width)
返回長度為 width 的字符串,原字符串右對齊,前面填充0
40、isdecimal()
檢查字符串是否只包含十進制字符,如果是返回 true,否則返回 false。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容