-
在Python中,布爾類型還可以與其他數(shù)據(jù)類型(字符串,數(shù)字等)做 and、or和not運(yùn)算,請(qǐng)看下面的代碼:
a = True
print(a and 0 or 99) # ==> 99
得到的計(jì)算結(jié)果不是布爾類型,而是數(shù)字99,這是為什么呢?
因?yàn)镻ython把0、空字符串和None看成False,其他數(shù)值和非空字符串都看成True,所以:
True and 0計(jì)算結(jié)果是0
繼續(xù)計(jì)算0 or 99計(jì)算結(jié)果是 99
因此,結(jié)果是99。
需要注意的是,not計(jì)算的優(yōu)先級(jí)是高于and和or的。
True and not False # ==> True
在上述布爾計(jì)算中,先計(jì)算not False = True,然后再計(jì)算True and True,因此得到True的結(jié)果。
短路計(jì)算
在計(jì)算a and b時(shí),如果 a 是 False,則根據(jù)與運(yùn)算法則,整個(gè)結(jié)果必定為 False,因此返回 a;如果 a 是 True,則整個(gè)計(jì)算結(jié)果必定取決與 b,因此返回 b。
在計(jì)算a or b時(shí),如果 a 是 True,則根據(jù)或運(yùn)算法則,整個(gè)計(jì)算結(jié)果必定為 True,因此返回 a;如果 a 是 False,則整個(gè)計(jì)算結(jié)果必定取決于 b,因此返回 b。
所以Python解釋器在做布爾運(yùn)算時(shí),只要能提前確定計(jì)算結(jié)果,它就不會(huì)往后算了,直接返回結(jié)果。查看全部 -
num = 10 / 3
print(num) # ==> 3.3333333333333335
# 使用round保留兩位小數(shù)
round(num, 2) # ==> 3.33查看全部 -
count()方法用來(lái)統(tǒng)計(jì)tuple中某個(gè)元素出現(xiàn)的次數(shù)。print(T.count(1))
index()方法可以返回指定元素的下標(biāo),當(dāng)一個(gè)元素多次重復(fù)出現(xiàn)時(shí),則返回第一次出現(xiàn)的下標(biāo)位置。T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
T.index(9) # ==> 10
T.index(5) # ==> 8
T.index(1) # ==> 0查看全部 -
pop()方法默認(rèn)刪除列表的最后一個(gè)元素,并返回。例如A=B.pop().
pop()方法,除了可以刪除最后一個(gè)元素以外,pop()還可以接收一個(gè)參數(shù),指定需要?jiǎng)h除的元素的位置。
查看全部 -
append()方法總是將元素添加到list的尾部.例如names.append('Candy')
insert()方法需要兩個(gè)參數(shù),分別是需要插入的位置,以及需要插入的元素。例如names.insert(2, 'Candy')
查看全部 -
List 有序 可重復(fù)
set 無(wú)序 不可重復(fù)
查看全部 -
這是一個(gè)Python編程腳本,用于根據(jù)輸入的年齡值判斷并打印出相應(yīng)的年齡階段。代碼中首先定義了一個(gè)變量age并賦值為15,然后使用一個(gè)if-else語(yǔ)句來(lái)判斷age是否大于17,如果是,則定義一個(gè)字符串a(chǎn)為'adult,{}',其中{}是一個(gè)占位符,用于后續(xù)填充具體的年齡值;接著使用format()方法將age變量的值插入到占位符位置,并打印輸出結(jié)果。如果age不大于17,則定義字符串a(chǎn)為'teenage,{}',同樣使用format()方法插入年齡值并打印。
由于代碼中age的值為15,不大于17,因此最終會(huì)輸出:
Unknown
teenage,15
查看全部 -
這是一個(gè)Python編程腳本,用于檢查一個(gè)人的年齡是否達(dá)到成年標(biāo)準(zhǔn),并打印相關(guān)信息。
第一行# Enter a code是一個(gè)注釋行,用于提醒讀者以下內(nèi)容是代碼。
第二行age = 19定義了一個(gè)變量age并將其賦值為19。
第三行if age>=18:開始一個(gè)條件判斷語(yǔ)句,檢查age是否大于或等于18。
第四行print('adult', age)在條件滿足時(shí)打印字符串'adult'和變量的值age。
第五行print('your age = {}'.format(age))打印一條消息,其中包含字符串'your age is'和變量的值age。
第六行print('adult')再次打印字符串'adult'。
第七行是空行,表示代碼塊的結(jié)束。
如果運(yùn)行這個(gè)腳本,因?yàn)閍ge被定義為19,所以條件age>=18為真,腳本會(huì)輸出:
Unknown
adult 19
your age = 19
adult
查看全部 -
這一段Python代碼中包含了多個(gè)print語(yǔ)句,用于輸出不同的字符串。這些字符串中包含了中英文混合的文本,并且展示了Python中字符串格式化的不同方式。以下是對(duì)每個(gè)print語(yǔ)句的詳細(xì)解釋:
第一個(gè)print語(yǔ)句:
python
print('這是一句中英文混合的Python字符串:Hello World!"')
這個(gè)語(yǔ)句會(huì)輸出以下文本:
Unknown
這是一句中英文混合的Python字符串:Hello World!"
這里展示了在Python字符串中可以直接包含中文和英文字符。
第二個(gè)print語(yǔ)句:
python
print('這是一句中英文混合的Python字符串:\n{}'.format('Hello World!'))
這個(gè)語(yǔ)句會(huì)輸出以下文本:
Unknown
這是一句中英文混合的Python字符串:
Hello World!
這里使用了\n來(lái)創(chuàng)建一個(gè)新行,使得"Hello World!"顯示在新的一行。{}是字符串格式化的一種方式,format函數(shù)中的字符串會(huì)替換{}中的內(nèi)容。
第三個(gè)print語(yǔ)句:
python
print('學(xué)習(xí)Python是一件很有趣的事兒:{0},{1},{2}'.format('simple','efficient','inexpensive.'))
這個(gè)語(yǔ)句會(huì)輸出以下文本:
Unknown
學(xué)習(xí)Python是一件很有趣的事兒:simple,efficient,inexpensive.
這里使用了{(lán)0}、{1}和{2}來(lái)指定字符串中插入的位置,分別對(duì)應(yīng)format函數(shù)中提供的第一個(gè)、第二個(gè)和第三個(gè)參數(shù)。
第四個(gè)print語(yǔ)句:
python
print('學(xué)習(xí)Python是一件很有趣的事兒:{2},{1},{0}'.format('simple','efficient','inexpensive.'))
這個(gè)語(yǔ)句會(huì)輸出以下文本:
Unknown
學(xué)習(xí)Python是一件很有趣的事兒:inexpensive.,efficient,simple
這里展示了可以通過(guò)在{}中指定數(shù)字來(lái)改變插入?yún)?shù)的順序。
第五個(gè)print語(yǔ)句:
python
print('學(xué)習(xí)Python是一件很有趣的事兒:{a},,{c}'.format(b='simple',a='efficient',c='inexpensive.'))
這個(gè)語(yǔ)句會(huì)輸出以下文本:
Unknown
學(xué)習(xí)Python是一件很有趣的事兒:efficient,simple,inexpensive.
這里使用了命名參數(shù)的方式,在{}中指定了參數(shù)的名稱,然后在format函數(shù)中通過(guò)關(guān)鍵字參數(shù)來(lái)傳遞這些值。這樣可以更加靈活地指定字符串中插入的內(nèi)容和順序。
查看全部 -
字符串模板的使用和格式化輸出
在Python中,我們可以使用字符串模板來(lái)生成動(dòng)態(tài)的字符串。字符串模板是一種包含占位符的字符串,這些占位符可以在后續(xù)的過(guò)程中被具體的值替換。下面我們將詳細(xì)解釋字符串模板的使用方法,并通過(guò)示例進(jìn)行說(shuō)明。
基本使用
字符串模板的基本使用方法是通過(guò)format函數(shù)將模板數(shù)據(jù)填充到模板字符串中。例如:
python
template = '林 {}'? ? # 定義一個(gè)字符串模板,其中'{}'是占位符
a = '書豪'? ? ? ? ? ?# 定義模板數(shù)據(jù)
result = template.format(a)? ?# 使用format函數(shù)將數(shù)據(jù)填充到模板中
print(result)? ? ? ? ?# 輸出結(jié)果:林書豪
在這個(gè)例子中,'林 {}'是一個(gè)模板,'書豪'是要填充到模板中的數(shù)據(jù)。format(a)函數(shù)調(diào)用會(huì)將a變量的值填充到模板的{}位置,生成一個(gè)新的字符串'林書豪'。
指定順序
在模板中,我們可以指定占位符的填充順序。通過(guò)在{}中寫入數(shù)字索引來(lái)實(shí)現(xiàn)這一點(diǎn)。例如:
python
template = 'hello {0}, hello {1}, hello {2}, hello {3}'??
result = template.format('world', 'china', 'beijing', 'imooc')
print(result)? # 輸出:hello world, hello china, hello beijing, hello imooc
在這個(gè)例子中,{0}會(huì)被'world'替換,{1}會(huì)被'china'替換,以此類推。
調(diào)整順序
我們還可以改變填充的順序,例如:
python
template = '林 {1}, 林 {2}, 林 {3}, 林 {0}.'??
result = template.format('書豪', '國(guó)豪', '俊杰', '妙可')
print(result)? # 輸出:林 國(guó)豪, 林 俊杰, 林 妙可, 林 書豪.
這里{1}對(duì)應(yīng)的是第二個(gè)參數(shù)'國(guó)豪',以此類推。
指定對(duì)應(yīng)的名字
除了使用數(shù)字索引,我們還可以使用命名參數(shù)來(lái)指定占位符對(duì)應(yīng)的值。例如:
python
template = 'hello {m}, hello {w}, hello {h}, hello {y}.'??
meixi = 'eixi'
wujiayu = 'wujiayu'
huangshang = 'huangshang'
yazi = 'yazi'
result = template.format(m=meixi, w=wujiayu, h=huangshang, y=yazi)
print(result)? # 輸出:hello meixi, hello wujiayu, hello huangshang, hello yazi.
在這個(gè)例子中,{m}會(huì)被變量meixi的值替換,{w}會(huì)被wujiayu的值替換,以此類推。
復(fù)雜的指定對(duì)應(yīng)名字
在指定對(duì)應(yīng)名字時(shí),模板中的順序和變量的賦值順序可以不同,Python會(huì)根據(jù)指定的參數(shù)名來(lái)填充值。例如:
python
template = '3 {w}, 0 {c}, 2 , 1 {i}.'??
c = 'www'
w = 'ccc'
b = 'bbb'
i = 'iii'
result = template.format(b=c, c=w, w=i, i=w)
print(result)? # 輸出:3 iii, 0 ccc, 2 www, 1 ccc
在這個(gè)例子中,雖然template中{w}在第一個(gè)位置,但是通過(guò)w=i的賦值,實(shí)際填充的是變量i的值'iii'。
通過(guò)以上的例子,我們可以看到字符串模板在Python中的靈活使用,可以根據(jù)不同的需求來(lái)動(dòng)態(tài)生成字符串。
查看全部 -
以上文本是一段Python代碼,主要展示了如何使用Python的type()函數(shù)來(lái)查詢不同數(shù)據(jù)類型的對(duì)象。以下是對(duì)這段代碼的詳細(xì)解釋:
print(type(3.41415926)): 這行代碼使用了type()函數(shù)來(lái)查詢數(shù)字3.41415926的數(shù)據(jù)類型,并使用print()函數(shù)輸出結(jié)果。3.41415926是一個(gè)浮點(diǎn)數(shù)(float),因此輸出將是<class 'float'>。
print(type('Learn python imooc')): 這行代碼查詢了字符串'Learn python imooc'的數(shù)據(jù)類型,并輸出結(jié)果。由于'Learn python imooc'是一個(gè)字符串(str),所以輸出將是<class 'tr'>。
print(type(100)): 這行代碼查詢了整數(shù)100的數(shù)據(jù)類型,并輸出結(jié)果。100是一個(gè)整數(shù)(int),所以輸出將是<class 'int'>。
print(type(0b1101)): 這行代碼查詢了二進(jìn)制數(shù)0b1101的數(shù)據(jù)類型,并輸出結(jié)果。0b1101是一個(gè)二進(jìn)制表示的整數(shù),同樣屬于整數(shù)類型(int),所以輸出將是<class 'int'>。
綜上所述,這段代碼通過(guò)type()函數(shù)演示了Python中不同類型的數(shù)據(jù),包括浮點(diǎn)數(shù)、字符串和整數(shù),并且展示了如何輸出這些數(shù)據(jù)類型的信息。
查看全部 -
def info(**kwargs):? ? ? ? ? ? ? ?# 1. 使用 **kwargs 接收任意數(shù)量的關(guān)鍵字參數(shù)
? ? names = kwargs['names']? ? ? ? # 2. 從字典中提取鍵為 'names' 的值(姓名列表)
? ? gender_list = kwargs['gender'] # 3. 提取鍵 'gender' 的值(性別列表)
? ? age_list = kwargs['age']? ? ? ?# 4. 提取鍵 'age' 的值(年齡列表)
? ? index = 0? ? ? ? ? ? ? ? ? ? ? # 5. 初始化索引,用于遍歷列表
? ? for name in names:? ? ? ? ? ? ?# 6. 遍歷姓名列表中的每個(gè)名字
? ? ? ? gender = gender_list[index] # 7. 按當(dāng)前索引獲取性別
? ? ? ? age = age_list[index]? ? ? # 8. 按當(dāng)前索引獲取年齡
? ? ? ? # 9. 格式化輸出當(dāng)前人員信息
? ? ? ? print('name: {}, gender: {}, age: {}'.format(name, gender, age))
? ? ? ? index += 1? ? ? ? ? ? ? ? ?# 10. 索引自增,指向下一項(xiàng)
查看全部 -
因此,要定義只有一個(gè)元素的tuple,需要在元素后面添加一個(gè)逗號(hào),。
查看全部 -
tuple 元組 和 list 一樣,是有序容器。元組和列表之間可以互相轉(zhuǎn)化
定義元組的方式是使用小括號(hào)()將元組內(nèi)的元素括起來(lái)。
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
print(L) # ==> ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
T = tuple(L)
print(T) # ==> ('Alice', 'Bob', 'Candy', 'David', 'Ellena')T = ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
print(T) # ==> ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
L = list(T)
print(L) # ==> ['Alice', 'Bob', 'Candy', 'David', 'Ellena']但是,tuple和list不一樣的是,tuple是固定不變的,一旦變成tuple,tuple中的每一個(gè)元素都不可被改變,同時(shí)也不能再往tuple中添加數(shù)據(jù),而list是可以的。
T = ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
# 替換元素
T[1] = 'Boby'
# 報(bào)錯(cuò)
Traceback (most recent call last):
?File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment查看全部 -
append()方法總是將元素添加到list的尾部。?
insert()方法和append()方法不一樣,insert()方法需要兩個(gè)參數(shù),分別是需要插入的位置,以及需要插入的元素。
注意,將Candy插入到第三的位置之后,原來(lái)的名字,都將自動(dòng)往后移動(dòng)一位,這個(gè)時(shí)候再使用相同的索引獲取后面的元素,將會(huì)得到不一樣的結(jié)果
查看全部 -
L[-1]代表反向訪問(wèn),從列表最后一個(gè)進(jìn)行范文。
查看全部 -
# ========================# 數(shù)據(jù)類型對(duì)比表# ========================'''
| 類型 ? ? ?| 可變性 | 有序性 | 元素要求 ? | 示例 ? ? ? ? ? |
|-----------|--------|--------|------------|----------------|
| 數(shù)字(Number) | 不可變 | - ? ? ?| 數(shù)值 ? ? ? | x = 10 ? ? ? ? |
| 字符串(String)| 不可變 | 有序 ? | 字符 ? ? ? | s = "text" ? ? |
| 列表(List) ?| 可變 ? | 有序 ? | 任意 ? ? ? | lst = [1,"a"] ?|
| 元組(Tuple) | 不可變 | 有序 ? | 任意 ? ? ? | t = (1,) ? ? ? |
| 字典(Dict) ?| 可變 ? | 無(wú)序 ? | 鍵可哈希 ? | d = {"k":"v"} ?|
| 集合(Set) ? | 可變 ? | 無(wú)序 ? | 元素可哈希 | s = {1,2,3} ? ?|查看全部 -
這里有幾個(gè)需要注意的地方:
可以看到print('抱歉,考試不及格')這行代碼明顯比上一行代碼縮進(jìn)了,這是因?yàn)檫@行代碼是if判斷的一個(gè)子分支,因此需要縮進(jìn),在Python規(guī)范中,一般使用4個(gè)空格作為縮進(jìn)
在if語(yǔ)句的最后,有一個(gè)冒號(hào):,這是條件分支判斷的格式,在最后加入冒號(hào):,表示接下來(lái)是分支代碼塊
python是嚴(yán)格依賴縮進(jìn)的語(yǔ)言,if-else 塊必須正確縮進(jìn)。
查看全部 -
# coding: utf-8
a='這是一句中英文混合的Python字符串'
b="Hello World!"
print(a+":"+b)
注意+的使用
查看全部 -
python3使用了utf-8 Unicode進(jìn)行編碼,使得python2中的編碼問(wèn)題得到了解決,也使得中英文可以同時(shí)正常使用顯示。
查看全部 -
format 字符串,由字符串模板和模板數(shù)據(jù)組成。通過(guò){}實(shí)現(xiàn)。
template寫模板,在“變量”位置寫{}
result=template.format()可以顯示作為變量的內(nèi)容,其中順序可以通過(guò)template='x{0},x{1}...'內(nèi)的數(shù)字進(jìn)行調(diào)整。
或者通過(guò)指定{}的名字
# 指定{}的名字w,c,b,i
template = 'Hello {w}, Hello {c}, Hello , Hello {i}.'
world = 'World'
china = 'China'
beijing = 'Beijing'
imooc = 'imooc'
# 指定名字對(duì)應(yīng)的模板數(shù)據(jù)內(nèi)容
result = template.format(w = world, c = china, b = beijing, i = imooc)
print(result) # ==> Hello World, Hello China, Hello Beijing, Hello imooc.查看全部 -
小知識(shí)點(diǎn):
常用的轉(zhuǎn)義字符還有:
\n表示換行
\t?表示一個(gè)制表符
\\表示?\?字符本身查看全部 -
count()方法
count()方法用來(lái)統(tǒng)計(jì)tuple中某個(gè)元素出現(xiàn)的次數(shù)。
ndex()方法
index()方法可以返回指定元素的下標(biāo),當(dāng)一個(gè)元素多次重復(fù)出現(xiàn)時(shí),則返回第一次出現(xiàn)的下標(biāo)位置。
注意,index()方法和count()方法不一樣,當(dāng)指定的元素不存在時(shí),使用index()方法Python會(huì)報(bào)錯(cuò)。
查看全部 -
定義元組的方式是使用小括號(hào)()將元組內(nèi)的元素括起來(lái)。
查看全部 -
list通過(guò)索引指定位置,并賦值新的元素,即可替換列表中原有的元素。
查看全部 -
L = ['Alice', 'Bob', 'Candy', 'David', 'Ellena']
L.pop(2)
L.pop(3)
print(L)可以正常運(yùn)行但與題目不符
Candy轉(zhuǎn)學(xué)后被刪除后位置會(huì)發(fā)生改變,David現(xiàn)在排在第三位也就是L.pop(2)
查看全部 -
pop()方法默認(rèn)刪除列表的最后一個(gè)元素,并返回
查看全部 -
print('helloworld')查看全部
-
raw字符串(\不表示文中'的作用)
查看全部
舉報(bào)