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

python變數資料型別和運算子怎麼使用

王林
發布: 2023-05-13 18:22:06
轉載
1518 人瀏覽過

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 < b

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

<=

a <= b

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

注意

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

  • 从左向右算

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

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中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板