搜尋
首頁後端開發Python教學python變數資料型別和運算子怎麼使用

1 資料類型

不同類型的變數可以進行的運算是不同的,所以必須理解變數的類型,python中資料類型可以分為:

內建類型:

  • 數值型別:整數型int,浮點型float,複數(complex) 3 5j

  • #str:字串

  • bool:布林值【True,False】

  • None:空值,表示變數沒有確定的值

  • list:清單

  • tuple:元組

  • dict:字典

  • set:集合

自訂類型:

  • #class :類別

1.1 基礎型別

數值型別:

  • 整數型(int): python3中只有int一種,可以表示整數,例如:10,-5,10000

  • 浮點型(float): 表示帶有小數點的實數,有兩種表示法:

    • 小數表示: 1.9 .23

    • 科學計數法: 用e來表示10的指數,1e2就代表了100,注意e前面必須有數值,e後面必須為整數

  • 複數(complex):表示數學上的無理數,形如:a bj

  • 布林型(bool):表示事務的兩種狀態,男女、陰晴、亮暗等等,它只有兩個值:True,False

  • None:表示空對象,一般用於判斷,不同於0和空字元

  • 字串(str):在python中,用引號(單引號、雙引號、三引號)表示字串

字串的表示:

# 用單引號表示: 'hello'
# 用雙引號表示:"我用python"
# 用 3個單引號表示:可以表示多行文本,例如:
'''偉大

祖國
'''
# 用3個雙引號表示:可以表示多行文本,例如:
"""生死看淡,
不服就乾"""

  • #轉義字元:有些特殊字元無法從鍵盤輸入,可以使用轉義字元表示,另外,無論是單引號、雙引號還是三引號字串,其中引號是字串界定符,引號並不是字串的內容,那麼如何在單引號字串中表示一個單引號呢,這也可以使用轉義字元來表示。常見的轉義字元

##一個普通的三單引號一個普通的三雙引號\a響鈴#tab鍵

轉義字元

##說明

#轉義字元

描述

\'

表示一個普通字元單引號

\n

換行

\"

#表示一個普通字元雙引號

\r

回程

\'''

\\

一個普通的字元\

\"""

\t

#########\b#############回刪除一個字元###############
  • 字串編碼:電腦只能辨識二進制,那麼字串如何儲存到電腦裡呢

電腦不能直接儲存字串,但我們可以將字符編碼,例如用65表示大寫字符A,66表示大寫字符B....等這種表示方式就是美國類的ASCII碼,只能表示127個字符,但對於美國人來說已經足夠了。一但能用整數表示字符,我們可以很方便的把整數用二進位表示,那麼字串也就和容易儲存到計算機了。
但還有很多其他國家的語言是不能用ASCII表示的,所有ISO組織就推出了unicode碼,用來表示任何一種語言的字符,unicode碼也稱之為萬國碼,通用碼,可以表示任何一種語言的任何一個字元。 unicdoe碼有多中表示方式,例如:utf-8、utf-16、utf-32等。一般使用較多的是utf-8,utf-8是一種變長的編碼,表示一個字元可能用一個位元組,也可能是三個位元組
中文常用編碼一般用GBK編碼,用2個位元組表示一個漢字

1.2 類型判斷

我們可以使用type和isinstance來測試和判斷資料類型

#type用法:
type(obj)
功能:返回obj的数据类型
参数:obj是你要测试变量或数值
示例:
age = 10
name = 'hello'
print(type(name),type(age))
#判断变量是否是指定类型
if type(age) is int:
print('是')
else:
print('否')

#isinstance用法:
isinstance(obj,typename)
功能:判断obj是否是指定类型,是返回True,否返回False
参数: objobj是你要判断的变量或数值
typename是指定数据类型,可以是int,float,str等。也可是一个
类型的元组,例如:(int,float)
示例:
age = 10
name = 'hello'
print(isinstance(age,int))
print(isinstance(name,(str,int)) #只要name是str或int的一种就返回True

if isinstance(age,int):
print('是')
else:
print('否')

#type和isinstance的区别
type判断基本类型是没问题的,但无法判断子类对象是父类的一种
isinstance可以判断子类对象是父类的一种
class A:
pass
class B(A):
pass

objA = A()
objB = B()

#输出否
if type(objB) is A:
print('是')
else:
print('否')
print(isinstance(objB,A)) #True

結論:優先使用isinstance

2. 運算子和運算式

在數學上為了計算結果,我們會寫一些式子計算,例如:

30 5

這是數學中的計算式,python中為了計算也有類似的式子,叫做表達式。在表達式中30和5稱作操作數, 稱為運算子。表達式的目的在於計算結果。表達式構成:

  • 最基本的表達式就是一些數值,變數、函數,例如: 3, a(變數) print(‘hello’)

  • #由基本表達式加上適當的運算子構成複雜的表達式: 3 a

#綜合上述,所謂表達式就是由運算子和運算子組成䄦符合python語法的式子。要寫表達式首先要學習運算子。關於運算子要知道兩件事

  • 計算順序: 是從左向右算還是從右向左算

##運算子說明#範例- 負號,取原數的相反數#a = 10 print(-a) #-10

優先:

例如先乘除後加減

2.1 算術運算子

a = 20
b = 10

    - * /
  • 加上減乘除,在同數學上一樣
  • a b = 30 a - b = 10 a * b = 200 a / b = 2
  • %

模運算,即求a整除以b的餘數

a % 10 = 0a // b = 2a ** b 表示20的10次方模運算的計算公式:r = a % b = a - n * b,其中n是小於a/b的最大整數函數名稱abs##x的y次方pow(10,2)求10的平方浮點數的4舍5入, n代表保留小數的位數round(3.456)max()

##//

#整除

**

#對運算子進行指數(冪)計算

2.2 模運算說明

模運算的符號取決於第二個運算元(右運算元)

整除(//)運算如果有一個運算數是浮點數,結果是浮點數

# 用途:判斷奇偶、判斷是否能整除、最大公約數、水仙花數

2.3 數學函數

函數的說明

範例

#取絕對值

##abs(- 10)

pow(x,y)

#round(x,[n])

#########求給定參數的最大值#############max(21,43,65,75,86,32, 3,45)##################min()############求給定參數的最小值###### ######min(21,43,65,75,86,32,3,45)##################math.ceil()### #########需要導入import math函式庫向上取整#############math.ceil(18.1) #19############## #####math.floor()############需要匯入import math函式庫向下取整############math.floor(18.1) # 18##################math.sqrt#############需要導入import math函式庫求平方根########## ###math.sqrt(100)################## python3.5.2中文幫助文件######### ###### ## ##########

2.4 随机函数

获取随机数,需要引入random库。

import random

函数名

函数说明

random.randrange(start,stop,step)

start 指定范围的起始值 包含本身,默认是0;stop 指定范围的结束值 不包含本身; step 步长,默认步长是1。该函数返回一个整数

random.randint(start,end)

返回[start end]之间的一个随机整数,start必须小于end

random.random()

返回一个[0.0,1.0)之间的随机小数

注意:

  • 优先级: ** >正负号 > // % * / > + -

  • 从左向右算

  • 在幂运算和一元运算符联合计算时,从右向左算,例如: -1 ** 2 = -1

2.5 赋值运算符

a = 5; b = 10; c = 20

运算符

说明

示例

=

简单赋值, 将b+c的结果赋给a

a = b +c #a=30

+=

a += b等价于 a = a +b

a = 15

-=

a -= b等价于 a = a - b

a = -5

*=

a *= b等价于 a = a * b

a = 50

/=

a /= b 等价于a = a / b

a = 0.5

%=

a %= b等价于a = a % b

a = 5

//=

a //= b等价于 a = a // b

a = 0

**=

a **= b等价于a = a ** b

 

注意:

  • 赋值运算符左边必须是变量

  • 从右向左算

  • 没有赋值表达式

  • 所有赋值运算符优先级相同,赋值运算符优先级非常低,仅高于成员运算符和身份运算符、逻辑运算符

  • 注意在复合赋值中

a = 2
b = 3
a *= b + 2 #等价于 a = a * (b + 2)
print(a) # a = 10

2.6 关系运算

关系运算就是比较运算,如果表达式成立,返回True,否则返回False。关系运算的结果是布尔值。

运算符

示例

说明

==

a == b

a和b值相等,结果是True,a和b值不相等结果为False

!=

a != b

a不等于b 结果为True,否则结果为True

>

a > b

a大于b结果为True,否则为False

>=

a >= b

a大于等于b结果为True,否则为False

a

a小于b结果为True,否则为False

a

a小于等于b结果为True,否则为False

注意

  • 优先级: 比较运算符优先级相同

  • 从左向右算

  • 可以这样算:1 等价于 a > 1 and a

2.7 逻辑运算

逻辑运算符可以用于构造复杂条件。逻辑运算符包括:

  • 逻辑与 and 对应汉语的意思是“并且” 、 “同时”

  • 逻辑或 or 对应汉语意思为"或者"

  • 逻辑非 not 对应汉语意思为”相反“

在逻辑运算中,False、None、0、0.0、‘’(空字符串)被看做假(False),其它的看做真(True)

2.7.1 逻辑与

a

b

a and b

任意值

b的值

任意值

a的值

  • 表达式 a and b的值为: 如果a为真,结果为b的值,否则结果是a的值

2.7.2 逻辑或

a

b

a or b

任意值

a的值

任意值

b的值

  • 表達式a or b的值為:若a為真結果為a的值,否則結果是b的值

2.7.3 邏輯非

a

#not a

False

#True

小結:a為真則表達式為False,否則表達式為True

2.8 短路計算

  • #對於邏輯與表達式a and b,如果a為假,則不計算b

  • 對於邏輯或表達式a or b ,如果a為真,則不計算b

2.9 注意事項

  • #優先權not > and >or

2.10 身分運算子

is: 判斷兩個識別碼是否引用自同一個實體【物件】,比較的是兩個物件的id是否一樣,如果相同為真,否則為假

is not:判斷兩個識別符是否引用自不同的實體【物件】如果兩個物件的id不同結果為真,否則為假

id()函數取得實體的id(位址)

注意:is和==的差異

  • is用來判斷兩個變數引用實體是否為同一個【id】

  • #==用於判斷兩個變數的值是否相同,但id不一定相同

#2.11 成員運算子

主要應用在序列中

in:如果在指定的序列中找到指定的值,則傳回True,否則傳回False

not in:如果在指定的序列中找不到指定的值,則傳回True,否則傳回False

2.12 if-else表達式

表達式1 if 條件else 表達式2,如果條件為真假結果是表達式1的值,否則結果是表達式式2的值

以上是python變數資料型別和運算子怎麼使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
您如何切成python陣列?您如何切成python陣列?May 01, 2025 am 12:18 AM

Python列表切片的基本語法是list[start:stop:step]。 1.start是包含的第一個元素索引,2.stop是排除的第一個元素索引,3.step決定元素之間的步長。切片不僅用於提取數據,還可以修改和反轉列表。

在什麼情況下,列表的表現比數組表現更好?在什麼情況下,列表的表現比數組表現更好?May 01, 2025 am 12:06 AM

ListSoutPerformarRaysin:1)DynamicsizicsizingandFrequentInsertions/刪除,2)儲存的二聚體和3)MemoryFeliceFiceForceforseforsparsedata,butmayhaveslightperformancecostsinclentoperations。

如何將Python數組轉換為Python列表?如何將Python數組轉換為Python列表?May 01, 2025 am 12:05 AM

toConvertapythonarraytoalist,usEthelist()constructororageneratorexpression.1)intimpthearraymoduleandcreateanArray.2)USELIST(ARR)或[XFORXINARR] to ConconverTittoalist,請考慮performorefformanceandmemoryfformanceandmemoryfformienceforlargedAtasetset。

當Python中存在列表時,使用數組的目的是什麼?當Python中存在列表時,使用數組的目的是什麼?May 01, 2025 am 12:04 AM

choosearraysoverlistsinpythonforbetterperformanceandmemoryfliceSpecificScenarios.1)largenumericaldatasets:arraysreducememoryusage.2)績效 - 臨界雜貨:arraysoffersoffersOffersOffersOffersPoostSfoostSforsssfortasssfortaskslikeappensearch orearch.3)testessenforcety:arraysenforce:arraysenforc

說明如何通過列表和數組的元素迭代。說明如何通過列表和數組的元素迭代。May 01, 2025 am 12:01 AM

在Python中,可以使用for循環、enumerate和列表推導式遍歷列表;在Java中,可以使用傳統for循環和增強for循環遍歷數組。 1.Python列表遍歷方法包括:for循環、enumerate和列表推導式。 2.Java數組遍歷方法包括:傳統for循環和增強for循環。

什麼是Python Switch語句?什麼是Python Switch語句?Apr 30, 2025 pm 02:08 PM

本文討論了版本3.10中介紹的Python的新“匹配”語句,該語句與其他語言相同。它增強了代碼的可讀性,並為傳統的if-elif-el提供了性能優勢

Python中有什麼例外組?Python中有什麼例外組?Apr 30, 2025 pm 02:07 PM

Python 3.11中的異常組允許同時處理多個異常,從而改善了並發方案和復雜操作中的錯誤管理。

Python中的功能註釋是什麼?Python中的功能註釋是什麼?Apr 30, 2025 pm 02:06 PM

Python中的功能註釋將元數據添加到函數中,以進行類型檢查,文檔和IDE支持。它們增強了代碼的可讀性,維護,並且在API開發,數據科學和圖書館創建中至關重要。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。