巨蟒python全棧開發-第6天 is==

1.小數據池

2.id

3.decode和encode

?

小數據池

#小數據池:不要死磕就行
#python為了簡化,搞出來的一個東西


ID

(1)
# id()函數可以幫我們查看一個變量的內存地址
# a=10
# b=30
# c=10
# print(id(a)) #1712876864
# print(id(b)) #1712877504
# print(id(c)) #1712876864

(2)
# lst=['周杰倫','麻花藤']
# print(id(lst)) #1248606696968
# lst.append('胡辣湯')
# print(id(lst)) #1248606696968

#你哥還是你哥,你的包還是你的包
#在這個過程中,始終還是那個那個包
(3)
# lst=['周杰倫','麻花藤']
# print(id(lst)) #2415882876424
# lst=[] #重新定義一個列表
# lst.append('胡辣湯')
# print(id(lst)) #2415882876296
#
(4)#兩個對象的內存地址是不一樣的
'''
lst1=[1,2,3]
lst2=[1,2,3]
print(id(lst1)) #1845106652680
print(id(lst2)) #1845106652552
'''
(5)#python&java等等最慢的事情是:創建對象 作用:顯著提高程序的運行效率
#隨著時間的提升,內存會不斷被消耗
'''
s1='abc' #內存中是沒有'abc,創建一個新的 0.001
s2='abc' #內存中已經有了'abc',直接把abc拿來用 0.00000001
print(id(s1),id(s2)) #1351674474712 1351674474712
'''
#程序中出現最高的數據類型:字符串,為了能夠快速的創建字符串
#節省內存,把相同的規律的字符串進行緩存,當下次創建的時候就不再創建了
#把字符串的緩存 ->小數據池->String iterning ->常量池->字符串緩存

#其他語言:常量池,字符串緩存

#在創建字符串之前,先去小數據池對比,是否已經存在了該字符串,如果存在了.
#就不創建新的了,直接拿原來存在的數據,省略掉反復重復創建字符串的過程,節省內存

(6)#小數據池只針對:數字,字符串,布爾值
# 什么數據會被緩存?
#數字,字符串,布爾值=》 都是不可變的數據類型(因為他會被很多人使用)
#有緩存和駐留機制

#基本數據類型:int bool str list tuple dic set

1.#數字
'''
a=1000
b=1000
print(id(a),id(b)) #2811993566928 2811993566928
'''
#在CMD顯示不一樣 -5-256
#在pycharm是顯示一樣的

2.#字符串,如果單純的寫字符串,幾乎都會被緩存
'''
s1='alex昨天上廁所沒關門,韓紅沖進去了,風扇個出來了,alex昨天上廁所沒關門,韓紅沖進去了,風扇個出來了'
s2='alex昨天上廁所沒關門,韓紅沖進去了,風扇個出來了,alex昨天上廁所沒關門,韓紅沖進去了,風扇個出來了'
print(id(s1),id(s2)) #2793562660912 2793562660912
'''
'''
如果在py文件中寫的字符串,幾乎都是緩存的
在黑窗口里寫的幾乎都不會緩存
#不同的解釋器,緩存的機制也不一樣

# 優點:可以幫助我們快速的創建對象,節省內存
# 缺點:緩存如果過大,響應速度會比較慢
#但是我們 "不要糾結"
'''

# ==和 is
'''
硬盤: 80MB/S(數據庫)
內存: 緩沖的作用 2G/S
CPU: 3Ghz (應用)

#內存很滿很滿時,會直接找硬盤,也就是硬盤中的內存機制

#百萬并發:90萬人在等待
#中間機制:中間加上緩存,現在的就是緩存

#短期內不改的,就放在小數據池內,京東的頁面
#每天緩存一份,但是價格不緩存
'''

(7)#==(判斷內容)和 is(判斷內存地址) 的區別
#== 比較的是數據,外貌
#is 比較的是內存地址,比較身份證號

'''
lst1=[1,2,3]
lst2=[1,2,3]
#列表沒有小數據池
print(id(lst1),id(lst2)) #2231123785096 2231123785224#并且每次的運行結果都不一樣
print(lst1==lst2) #True
print(lst1 is lst2) #False

s1='我叫周潤發'
s2='我叫周潤發'
print(s1==s2) #True
#print(s1 is s2) #True #小數據池

tu1=('周一','周二')
tu2=('周一','周二')
print(tu1 is tu2) #False 內存地址不相同
print(tu1 == tu2) #True 內容一樣
'''


3.decode和encode

(1)
'''
s='我今天非常的困'
bs=s.encode('utf-8') #把字符串轉化成utf-8格式bytes
print(bs)
#bytes不是給人看的,給機器用的
#21個字節
# b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'

bs=s.encode('gbk') #把字符串轉化成utf-8格式bytes
print(bs)
#b'\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7'

#utf-8和gbk是不能直接轉換的,必須使用unicode來轉換
'''

(2)
'''
bs=b'\xce\xd2\xbd\xf1\xcc\xec\xb7\xc7\xb3\xa3\xb5\xc4\xc0\xa7'
s=bs.decode('gbk')
print(s)

sb = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
s=sb.decode('utf-8')
print(s)
#爬蟲中,在網站上,有的用的是GBK,有的就是utf-8
'''

#練習
'''
sb = b'\xe6\x88\x91\xe4\xbb\x8a\xe5\xa4\xa9\xe9\x9d\x9e\xe5\xb8\xb8\xe7\x9a\x84\xe5\x9b\xb0'
gb=sb.decode('utf-8') #解碼
gbk_1=gb.encode('gbk') #編碼
print(gbk_1)
'''


# 關于bytes,非ascii中的內容,展示的是\x..,如果是ascii中的內容,原樣輸出
# name='alex昨天吃多了'
# bs=name.encode('gbk')
# print(bs)

name='alex昨天吃多了'
bs=name.encode('GBK')
print(bs)



轉載于:https://www.cnblogs.com/studybrother/p/10060489.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395839.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395839.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395839.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

安裝mysql8._安裝MySQL8(附詳細圖文)

安裝MySQL8(附詳細圖文)刪除mysql服務:mysqld -remove mysql1、下載 mysql 8下載地址:https://dev.mysql.com/downloads/mysql/2、配置 mysql 配置文件打開 mysql 8 的安裝目錄:my.ini注意設置自己對應的 mysql 安裝目錄 和數據存放目錄[mysq…

win10安裝windows live writer 錯誤:OnCatalogResult:0x80190194

到官網下載了一個在線安裝程序,可是一運行就提示無法安裝,顯式錯誤“OnCatalogResult:0x80190194”,如下圖所示 找到windows live安裝程序的安裝日志文件。具體位置是:C:\Users\All Users\Microsoft\WLSetup\Logs 需要下載安裝文件…

C# 實現一個可取消的多線程操作 示例

private void button1_Click(object sender, EventArgs e){//定義一個為可取消資源標志CancellationTokenSource cts new CancellationTokenSource();//定義二個為可取消資源標志CancellationTokenSource cts1 new CancellationTokenSource();//實現一個可取消操作的回調函數…

這些工具將提高您的Android生產率

by Michal Bialas由Michal Bialas 這些工具將提高您的Android生產率 (These tools will boost your Android productivity) The main purpose of this post is to list and describe tools (mainly free ones), which allow you to boost your productivity, efficiency, and …

python四位玫瑰數的解題思路_入門python知識點總結以及15道題的解題思路分析

知識點總結python1、序列app操做符idex in s 若是x是列表s的元素,返回True,不然Falses t 鏈接兩個序列s和ts*n或者n*s 將序列s復制n次s[i] 返回s中第i元素s[i:j]或s[i:j: k] 切片,返回序列s中第i到j-1以k為步長的元素子序列函數函數len(s) 返…

TZOJ--5480: 孤衾易暖 // POJ--3735 Training little cats (矩陣快速冪)

5480: 孤衾易暖 時間限制(普通/Java):1000MS/3000MS 內存限制:65536KByte 描述 哇,好難,我要放棄了(扶我起來,我還能A 寒夜縱長,孤衾易暖,鐘鼓漸清圓。 生活也許有些不如意的地方,但是沒有什么是擁有一…

IntelliJ IDEA2017 修改緩存文件的路徑

IDEA的緩存文件夾.IntelliJIdea2017.1,存放著IDEA的破解密碼,各個項目的緩存,默認是在C盤的用戶目錄下,目前有1.5G大小。現在想要把它從C盤移出。 在IDEA的安裝路徑下中,進入bin目錄后找到屬性文件:idea.pr…

解決iphone填寫表單時,表單項獲取焦點時往下拉屏,導致頂部標題欄下滑錯位...

$(function () {//解決iphone填寫表單時,表單項獲取焦點時往下拉屏,導致頂部標題欄下滑錯位var u navigator.userAgent;var isiOS !!u.match(/\(i[^;];( U;)? CPU.Mac OS X/); //ios終端if (isiOS true) {var pageHeight window.innerHeight;$(&quo…

aws cognito_AWS Cognito的用戶管理—(2/3)核心功能

aws cognitoby Kangze Huang黃康澤 AWS Cognito的用戶管理—(2/3)核心功能 (User Management with AWS Cognito — (2/3) The Core Functionality) 完整的AWS Web樣板-教程1B (The Complete AWS Web Boilerplate — Tutorial 1B) Main Table of Contents Click Here主要目錄請…

python字符串后面添加字符串_什么是字符串?怎樣在Python中添加字符串?

字符串是一種表示文本的數據類型,字符串中的字符可以是ASCII字符、各種符號以及各種Unicode字符。Python中的字符串有如下三種表現方式。第1種方式:使用單引號包含字符。示例代碼如下:a 123注意,單引號表示的字符串里不能包含單引…

surround360

1.讀入配置文件2.創建底部和頂部投影線程3.將側面圖投影到球座標(1)load側面相機圖像(2)創建投影線程(3)等待線程結束4.渲染立體全景圖(側邊)(1)計算重疊區域寬度(2)創建準備生成新視圖的線程: 送入相鄰兩個相機的投影圖,計算光流flowLtoR,flowRtoL, 保存在novelViewGenerators…

snapchat_我剛剛在Snapchat獲得開發人員職位。

snapchatby Jon Deng喬恩鄧 我剛剛在Snapchat獲得開發人員職位。 這是我學到的東西,以及它如何幫助您進行求職。 (I just got a developer job at Snapchat. Here’s what I learned and how it can help you with your job search.) About a year ago, while depl…

sys.argv

import sysi0 print len(sys.argv) while i < len(sys.argv):print sys.argv[%d]:%s %(i,sys.argv[i])i i1 import sysprint len(sys.argv) for i in range(len(sys.argv)):print sys.argv[%d]:%s %(i,sys.argv[i]) 執行 結果 &#xff1a;E:\MyScript>python sysargs.py…

Docker安裝java-Zookeeper進行操作

Docker安裝Zookeeper下載Zookeeper鏡像 docker pull zookeeper啟動容器并添加映射 docker run --privilegedtrue -d --name zookeeper --publish 2181:2181 -d zookeeper:latest 查看容器是否啟動 docker ps idea提供了一個Zookeeper插件&#xff0c;以供連接Zookeeper服務中心…

java反射獲取注解_Java自定義注解和運行時靠反射獲取注解

java自定義注解Java注解是附加在代碼中的一些元信息&#xff0c;用于一些工具在編譯、運行時進行解析和使用&#xff0c;起到說明、配置的功能。注解不會也不能影響代碼的實際邏輯&#xff0c;僅僅起到輔助性的作用。包含在 java.lang.annotation 包中。1、元注解元注解是指注解…

進程間的通訊(IPC)方式

內存映射 為什么要進行進程間的通訊(IPC (Inter-process communication)) 數據傳輸&#xff1a;一個進程需要將它的數據發送給另一個進程&#xff0c;發送的數據量在一個字節到幾M字節之間共享數據&#xff1a;多個進程想要操作共享數據&#xff0c;一個進程對共享數據的修改&a…

開發人員避免編寫測試的2個最常見原因

This post was originally published on Medium這篇文章最初發表于Medium Writing tests represents one of those few stages of software development that is usually overlooked, even though it may be one of the most important one. Developers mention it and usuall…

java ews_Java---使用EWS 寫個ExchangeMailUtil

依賴包&#xff1a;commons-httpclient-3.1.jarcommons-codec-1.10.jarcommons-logging-1.2.jarjcifs-1.3.17.jar代碼示例&#xff1a;創建MailBean類&#xff1a;import java.util.Date;public class MailBean {public BigDecimal getId() {return id;}public void setId(BigD…

Ilya Muromets(DP or 思維)

Ilya Muromets Gym - 100513F Силачом слыву недаром — семерых одним ударом!From the Russian cartoon on the German fairy tale.Ilya Muromets is a legendary bogatyr. Right now he is struggling against Zmej Gorynych, a drago…

C# 裝箱和拆箱

C#的值類型可以分為在棧上分配內存的值類型和在托管堆上分配內存的引用類型。 1、那么值類型和引用類型能否相互轉換呢? 答案是肯定的,C#通過裝箱和拆箱來實現兩者的相互轉換。 (1)、裝箱 ---把值類型強制轉換成引用類型(object類型) (2)、拆箱 ---把引用類型強制轉換成值…