色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Python中的那些坑

馬哥Linux運維 ? 來源:博客園 ? 2024-07-16 17:52 ? 次閱讀

1.哪個是True,哪個是False?

這里要看三組代碼:

# 第一組:

>>>a=256

>>>b = 256

>>>a is b

# 第二組:

>>>a = 257

>>>b = 257

>>>a is b

# 第三組:

>>>a = 257; b = 257

>>>a is b

問題來了,這三組代碼的運行結(jié)果分別是什么呢?答案是True、False和True。第一組和第三組結(jié)果是True好像沒問題,那為什么第二組的結(jié)果是False呢?這里先用id()來查看一下a和b的地址是什么:

# 第一組:

>>>id(a)

>>>1426657040

>>>id(b)

>>>1426657040

# 第二組:

>>>id(a)

>>>363389616

>>>id(b)

>>>363392912

# 第三組:

>>>id(a)

>>>5722000

>>>id(b)

>>>5722000

可以看到第一組和第三組的a和b的id值是相同的,但是第二組是不同的。出現(xiàn)這種情況是因為Python為了避免重復(fù)的創(chuàng)建和回收,就把那些常用的整數(shù)緩存起來,每次需要使用時直接從緩存中拿,而不是重新創(chuàng)建,這些整數(shù)的范圍是[-5, 256],不在這個范圍之中的數(shù)字就要重新創(chuàng)建了。那為什么第三組的a和b是一樣的呢?這是因為Python內(nèi)部做了優(yōu)化,對于在同一個代碼塊中的代碼,如果出現(xiàn)兩個值相同的整數(shù),那么它們將被重用。這里可以用下面的代碼進行測試:

#Python學(xué)習(xí)交流群:778463939
a = 257
b = 257

def func():
    c = 257
    print(a is c)  # False

print(a is b)  # True
func()

這段代碼中a和b的id值是一樣的,和c的id值不同。這是因為a和b在同一個代碼塊,而c處在func函數(shù)里,屬于局部變量,和a不在同一個代碼塊。所以在創(chuàng)建c的時候會重新創(chuàng)建,但是創(chuàng)建b的時候會重用a這個對象。
在Python的交互式命令行中,每單獨一行都視為一個代碼塊,因此第三組中的a和b處在同一個代碼塊中,所以后者重用了前者,因此,兩個變量的id是相同的。

2.關(guān)于正則表達(dá)式re.sub()

都知道正則表達(dá)式中的re.sub()是用于字符串替換的,比如:

import re


def remove_tag(html):
text = re.sub('<.*?>', '', html, re.S)
return text

這段代碼的功能就是將html中的標(biāo)簽都替換為空,沒什么好說的,這里可以用一段html代碼來測試一下:

html = """


Document

"""
print(remove_tag(html))
# Document

運行結(jié)果和我們想象的一樣,但是如果html代碼再長一點呢?比如下面:

html = """
Document


h1標(biāo)題

h2標(biāo)題

h3標(biāo)題

""" print(remove_tag(html))

運行結(jié)果如下:

Document

 


h1標(biāo)題h2標(biāo)題h3標(biāo)題

為什么最后會多出來呢?這兩個標(biāo)簽不應(yīng)該被替換掉嗎?問題在于re.sub()的第四個參數(shù),這里先看下sub()函數(shù)的原型:

re.sub(pattern, repl, string, count=0, flags=0)

那為什么我們把re.S放在count的位置也沒有報錯呢?難道說re.S是一個數(shù)字?打印出來看一下:

import re

print(re.S)
# 16

原來re.S還可以當(dāng)數(shù)字用!這時候數(shù)一下上面那段html代碼中的標(biāo)簽個數(shù),發(fā)現(xiàn)是第17和第18個,而因為re.S被當(dāng)做16傳給count參數(shù)了,就導(dǎo)致最后兩個標(biāo)簽沒有被替換掉。

3.字符串的lstrip()

相信很多人都用過lstrip(),在處理字符串的時候很有用,比如:

print("aabbcc".lstrip('aa'))
# bbcc

這很簡單,也沒什么問題,但是看下面這個例子:

print("ababacac".lstrip("ab"))
# cac

為什么結(jié)果不是acac呢?這是因為當(dāng)lstrip()中傳入一個字符串后,lstrip()會把這個字符串拆成一個個字符,然后才從左往右進行檢查,如果匹配到就刪除,直到出現(xiàn)第一個不同的字符,所以最后"ababa"被刪掉了,結(jié)果也就是"cac"了。要避免這種情況的話,可以用replace()方法進行替換。

4.嵌套列表

如果要你創(chuàng)建一個包含三個空列表的列表,你會怎么做呢?

# 選項1
li =[[] for i in range(3)]

# 選項2
li = [[]*3]

# 選項3
li = [[]]*3

如果你運行一下,就會知道選項1和選項3能夠得到我們想要的結(jié)果。這時候再運行一下下面這段代碼:

li = [[]]*3
li[0].append(1)
print(li)
# [[1], [1], [1]]

為什么我們明明只給第一個列表增加了一個1,但是其他兩個列表也增加了一個1呢?這是因為[[]]*3并不是創(chuàng)建了三個不同的列表,而是創(chuàng)建了三個指向同一個列表的對象,所以,當(dāng)我們操作第一個列表時,其他兩個列表內(nèi)容也會發(fā)生變化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    589

    瀏覽量

    21089
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4886

    瀏覽量

    70229
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4823

    瀏覽量

    86135

原文標(biāo)題:Python中的那些“坑”

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 0人收藏

    評論

    相關(guān)推薦
    熱點推薦

    如何避開智能硬件創(chuàng)業(yè)的那些!

    大數(shù)據(jù)等附加價值。今天我們邀請到幻響神州創(chuàng)始人兼CEO張總,為大家解答如何避開智能硬件創(chuàng)業(yè)的那些。專家介紹:張昕尉是十年創(chuàng)業(yè)老兵,2016年2月帶領(lǐng)幻響新三板上市,堅持原創(chuàng)態(tài)度,以虔誠之心做企業(yè)做產(chǎn)品
    發(fā)表于 03-14 10:13

    python2和python3同時安裝的詳細(xì)步驟

    整理下python2和python3同時安裝詳細(xì)步驟希望對大家有幫助已踩過(親測可用!?。。?/div>
    發(fā)表于 10-27 09:31

    運放那些——第二篇

    運放那些——第二篇
    的頭像 發(fā)表于 08-31 11:37 ?1.5w次閱讀
    運放<b class='flag-5'>中</b>的<b class='flag-5'>那些</b><b class='flag-5'>坑</b>——第二篇

    運放那些——第一篇

    運放那些——第一篇
    的頭像 發(fā)表于 08-31 11:40 ?4.6w次閱讀
    運放<b class='flag-5'>中</b>的<b class='flag-5'>那些</b><b class='flag-5'>坑</b>——第一篇

    Python程序員必須掌握從Python2到Python3的轉(zhuǎn)型

    本書的目標(biāo)讀者是那些正在使用 Python,又想熟悉 Python 3 的程序員。如果你懂 Python2,但是想遷移到 Python 3.
    發(fā)表于 09-14 10:54 ?10次下載

    如何讓你的Python編程不出現(xiàn)反模式?避免初學(xué)Python常見的錯誤

    篇文章收集了我在Python新手開發(fā)者寫的代碼中所見到的不規(guī)范但偶爾又很微妙的問題。本文的目的是為了幫助那些新手開發(fā)者渡過寫出丑陋的Python代碼的階段。
    的頭像 發(fā)表于 09-24 10:38 ?2981次閱讀

    如何快速學(xué)習(xí)Python?學(xué)習(xí)Python有哪些

    此外,作為人工智能的主要編程語言,未來的幾年,Python勢必繼續(xù)高歌。而近期,數(shù)據(jù)科學(xué)網(wǎng)站KDnuggets,發(fā)布的2018數(shù)據(jù)科學(xué)和機器學(xué)習(xí)工具調(diào)查結(jié)果也顯示:Python榮登第一,成為最受青睞
    的頭像 發(fā)表于 11-29 10:11 ?4178次閱讀
    如何快速學(xué)習(xí)<b class='flag-5'>Python</b>?學(xué)習(xí)<b class='flag-5'>Python</b>有哪些<b class='flag-5'>坑</b>?

    關(guān)于 STM32 時鐘配置的那些

    關(guān)于STM32時鐘配置的那些
    的頭像 發(fā)表于 03-08 12:06 ?6309次閱讀

    python的優(yōu)缺點有哪些

    Python的定位是“優(yōu)雅”、“明確”、“簡單”,所以Python程序看上去總是簡單易懂,初學(xué)者學(xué)Python,不但入門容易,而且將來深入下去,可以勝任那些非常非常復(fù)雜的應(yīng)用程序開發(fā)。
    的頭像 發(fā)表于 01-16 09:20 ?3686次閱讀

    “I2C”的那些

    “I2C”的那些 一般情況下, i2c 設(shè)備焊接沒什么問題,按照設(shè)備手冊一步步來,基本上就順風(fēng)順?biāo)軌蛴闷饋?。如果這么一個簡單的東西,有時候想要的結(jié)果死活不出來,反復(fù)的檢查問題的原因,查詢解決辦法
    發(fā)表于 11-06 10:05 ?8次下載
    “I2C”的<b class='flag-5'>那些</b><b class='flag-5'>坑</b>

    Arduino-IDE配置ESP32-CAM開發(fā)環(huán)境踩過的那些

    Arduino-IDE配置ESP32-CAM開發(fā)環(huán)境踩過的那些
    發(fā)表于 11-30 18:36 ?24次下載
    Arduino-IDE配置ESP32-CAM開發(fā)環(huán)境踩過的<b class='flag-5'>那些</b><b class='flag-5'>坑</b>

    EFM32PG1B使用時遇到那些

    EFM32PG1B使用時遇到那些的坑坑一:引腳功能定義二:外部中斷的使用官網(wǎng)鏈接一:引腳功能定義?公司項目需要用到EFM32系列的單片機,初看芯片手冊,看到引腳定義的時候著實有些疑惑?初看的第一
    發(fā)表于 12-03 15:06 ?3次下載
    EFM32PG1B使用時遇到<b class='flag-5'>那些</b>的<b class='flag-5'>坑</b>

    EFM32PG1B關(guān)于RTCC和EM4的那些

    EFM32PG1B關(guān)于RTCC和EM4的那些EFM32PG1B關(guān)于RTCC和EM4的那些坑坑一:RTCC初始化二:EM4低功耗模式的初始化
    發(fā)表于 12-04 19:36 ?10次下載
    EFM32PG1B關(guān)于RTCC和EM4的<b class='flag-5'>那些</b><b class='flag-5'>坑</b>

    pythonnumber代表什么

    Python,number(數(shù)字)是一種內(nèi)置的數(shù)據(jù)類型,用于表示數(shù)值。Python提供了幾種不同的number類型,分別是整數(shù)(int)、浮點數(shù)(float)、復(fù)數(shù)(complex)和布爾值
    的頭像 發(fā)表于 11-22 09:50 ?2488次閱讀

    pythontext的用法

    Python的text是一個常見的數(shù)據(jù)類型,它用于存儲和處理文本數(shù)據(jù)。在Python,文本常常被表示為字符串(string),字符串是一系列Unicode字符的有序序列。 在
    的頭像 發(fā)表于 11-23 15:46 ?4623次閱讀
    主站蜘蛛池模板: 成人免费视频无遮挡在线看 | 久久综合色视频 | 青青草原社区 | 在线 国产 欧美 亚洲 天堂 | 阿娇和冠希13分钟在线观看 | 最近高清日本免费 | 久久精品动漫99精品动漫 | 伊人香蕉在线播放视频免费 | 3D内射动漫同人资源在线观看 | 野花视频在线观看免费 | 蜜臀AV99无码精品国产专区 | 最近2019年日本中文免费字幕 | 在线观看亚洲 日韩 国产 | 久久伊人精品青青草原2021 | 国产精品99久久久精品无码 | 精品午夜中文字幕熟女人妻在线 | 久久精品成人免费网站 | 色狠狠xx| 啊灬啊灬啊灬快灬深高潮啦 | 99热久这里都是精品小草 | 美女洗澡脱得一二干净 | 不卡的在线AV网站 | 肉动漫h黄动漫日本免费观看 | 秋霞电影院兔费理论84MB | 日韩精品免费在线观看 | 45分钟做受片免费观看 | 果冻传媒在线完整免费播放 | 国产精品白浆精子流水合集 | 免费视频久久只有精品 | 色欲人妻AAAAAAA无码 | 黑人阴茎插女人图片 | 亚洲另类欧美综合在线 | 丰满的美女射精动态图 | 久久国产香蕉视频 | 免费光看午夜请高视频 | 欧美日韩永久久一区二区三区 | 嗯呐啊唔高H兽交 | 亚洲精品国产一区二区贰佰信息网 | 国产欧美一区二区三区免费 | 啪啪激情婷婷久久婷婷色五月 | 国产乱人偷精品视频A人人澡 |

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品