做設(shè)計(jì)一般用的素材網(wǎng)站是什么長沙百度搜索排名
目錄
1. 內(nèi)建類型的布爾值
2. 對(duì)象身份的比較
3.?對(duì)象類型比較
4. 類型工廠函數(shù)
5. Python不支持的類型
總結(jié):
1. 內(nèi)建類型的布爾值
在Python中,布爾值的計(jì)算遵循如下規(guī)則:
None
、False
、空序列(如空列表[]
,空字符串""
,空元組()
,空字典{}
,空集合set()
)以及數(shù)值零(如整數(shù)0
,浮點(diǎn)數(shù)0.0
,復(fù)數(shù)0j
)在布爾上下文中被認(rèn)為是False
。- 其他值在布爾上下文中被認(rèn)為是
True
。
示例:
# 以下條件都為False
if not None:print("None is considered False") # 輸出if not False:print("False is considered False") # 輸出if not []:print("Empty list is considered False") # 輸出if not 0:print("Zero is considered False") # 輸出# 非零數(shù)值和非空序列為True
if 1:print("1 is considered True") # 輸出if [1, 2, 3]:print("Non-empty list is considered True") # 輸出
2. 對(duì)象身份的比較
在Python中,is
和 is not
用于比較兩個(gè)對(duì)象是否是同一個(gè)對(duì)象。這種比較檢查兩個(gè)對(duì)象的內(nèi)存地址是否相同。
示例:
a = [1, 2, 3]
b = a # b引用a的同一個(gè)對(duì)象
c = [1, 2, 3] # c創(chuàng)建了一個(gè)新的列表對(duì)象print(a is b) # True,因?yàn)閍和b引用同一個(gè)對(duì)象
print(a is c) # False,因?yàn)閍和c是不同的對(duì)象,即使它們的內(nèi)容相同# 一般情況下,使用 == 來比較對(duì)象的值
print(a == c) # True,因?yàn)閍和c的內(nèi)容相同
3.?對(duì)象類型比較
使用 type()
函數(shù)可以獲取對(duì)象的類型。直接比較類型可以用 type(a) == type(b)
。然而,這種比較方式不支持繼承關(guān)系的判斷。
示例:
a = 10
b = 3.14
c = "hello"print(type(a)) # <class 'int'>
print(type(b)) # <class 'float'>
print(type(c)) # <class 'str'>if type(a) == type(b):print("Same type")
else:print("Different types") # 輸出,因?yàn)閍是int,b是float
為了更靈活的類型檢查,可以使用 isinstance()
函數(shù)。isinstance()
可以檢查一個(gè)對(duì)象是否是某個(gè)類或其子類的實(shí)例。
示例:
class Animal:passclass Dog(Animal):passd = Dog()print(isinstance(d, Dog)) # True,因?yàn)閐是Dog類的實(shí)例
print(isinstance(d, Animal)) # True,因?yàn)閐是Animal類的子類的實(shí)例
print(isinstance(d, object)) # True,因?yàn)樗蓄惗际莖bject類的子類
4. 類型工廠函數(shù)
Python提供了一些內(nèi)置的工廠函數(shù),用于創(chuàng)建特定類型的對(duì)象。這些函數(shù)使得創(chuàng)建對(duì)象變得簡單直接。
示例:
# 將字符串轉(zhuǎn)換為整數(shù)
number = int("123")
print(number) # 123# 將整數(shù)轉(zhuǎn)換為字符串
text = str(123)
print(text) # "123"# 創(chuàng)建一個(gè)包含0到4的列表
numbers_list = list(range(5))
print(numbers_list) # [0, 1, 2, 3, 4]# 創(chuàng)建一個(gè)字典
numbers_dict = dict(a=1, b=2)
print(numbers_dict) # {'a': 1, 'b': 2}# 創(chuàng)建一個(gè)集合(自動(dòng)去重)
unique_numbers = set([1, 2, 2, 3, 4])
print(unique_numbers) # {1, 2, 3, 4}
5. Python不支持的類型
Python不支持一些底層類型,如指針。在低級(jí)編程語言(如C語言)中,指針用于直接操作內(nèi)存地址。然而,Python通過高級(jí)數(shù)據(jù)結(jié)構(gòu)和內(nèi)存管理機(jī)制,屏蔽了這些復(fù)雜性,使編程更簡潔和安全。
例如,在C語言中可以使用指針:
int a = 10;
int *p = &a;
printf("%d", *p); // 輸出10
而在Python中,沒有指針的概念:
a = 10
b = a
print(b) # 輸出10
總結(jié):
None
是一個(gè)特殊的常量,表示沒有值。- 在布爾上下文中,
None
、False
、空序列和零被視為False
。- 使用
is
和is not
進(jìn)行對(duì)象身份比較。- 使用
type()
或isinstance()
函數(shù)來比較對(duì)象類型。- 使用內(nèi)置工廠函數(shù)創(chuàng)建特定類型的對(duì)象。
- Python不支持一些底層類型,如指針,確保了高級(jí)數(shù)據(jù)結(jié)構(gòu)和內(nèi)存管理的簡潔性和安全性。