python格式化輸出和運算符以及編碼的初識

格式化輸出

當你遇到這樣的需求:字符串中想讓某些位置變成動態可傳入的,首先要考慮到格式化輸出。
我們先看下如下一個個人信息

msg='''-----message----
Name : ssss
Age : 18
job : tea
hobbie : sai
----end----
'''

根據如上信息,製作一個公共的模版
我們需要讓一個字符串的某些位置變成動態可傳入的,我們先用%佔住這個位置,這就是%佔位符,s->str

name = input('請輸入你的姓名')
age = input('請輸入你的年齡')
job = input('請輸入你的工作')
hobbie = input('請輸入你的愛好')
msg='''-----message of %s----
Name : %s
Age : %s
job : %s
hobbie : %s
----end----
'''%(name,name,age,job,hobbie)
print(msg)

但是我們要注意一點,你只要用格式化輸出,就會把你所有的百分號當成佔位符,如下就會報錯,因爲1%中的%被當成了佔位符,後面沒有跟類型s

msg='我叫%s,今年%s,學習進度1%' %('aasdf',18)

在格式化輸出中如果你只想表示一個百分號,而不是作爲佔位符使用,你要在%前面再加一個%做轉義,就是1%%

運算符

算數運算符:加減乘除,%取餘,兩個乘號就是冪的運算,//取整除。
比較運算符:>,==,!= <>,<,>=,<=
賦值運算符:=,+=,-=,*=,%=,**=,//=
邏輯運算符:and,or,not
在沒有括號的情況下,優先級:not>and>or,同一優先級,從左至右依次計算
情況一:兩邊都是比較運算

print(2>1 and 3<4 or 4>5 and 2<1)
print(True or False)

情況二:兩邊都是整數
x or y,x爲真,值就是x,x爲假,值就是y
x and y,x爲真,值是y,x爲假,值是x

print(1 or 2)
print(3 or 2)
print(4 or 2)
print(-1 or 2)
print(0 or 2)

數字和布爾值之間的轉換

i=100
print(bool(i))
i=0
print(bool(i))發現是False,也就是,非零既是True

布爾值如何轉換成數字

print(int(True))1
print(int(False))0

編碼的初識

計算機存儲文件,存儲數據,以及將一些數據或者信息通過網絡發送出去,比如藉助qq發文件,它真正交換的是什麼,它的底層都是01010101。
假如我帶你穿越過去,要研究電報:
電報有個密碼本:
  滴滴    走
  滴滴滴  進攻

滴就是1,空就是0,假如密碼本對應如下
101 今
1101 晚
1 吃
11 雞
但是他給我發電報只能發1011101111,我該怎麼讀呢
所以要進行一個規定,比如,7位
0000101 今
0001101 晚
0000001 吃
0000011 雞
0000101000110100000010000011

所以密碼本承載的就是0101二進制與文字之間的對應關係

ASCII碼就是最早期的密碼本,是美國發明的,只考慮他們自己用,所以
ASCII碼:只包含英文字母,數字,特殊字符。
早期可能是
000 0001:a
000 1111:b
但是這7位只夠美國用,128剛好夠用,怕別的地方再用就預留了一位,所以最左邊全都是0,共8位,8bit=1byte
‘hello123’:8byte

那麼後來,各國都用了計算機,這個早期的密碼本不夠用了,各國就有了自己的密碼本
中國的就是gbk,gbk是國標(國家標準),包含英文字母,數字,特殊字符和中文
一個英文字母:0000 0001:1(一個字節)
一箇中文:0000 0001 0100 0001:中(佔2個字節)

後來國際上爲了統一,出現了Unicode:萬國碼:把世界上所有的文字都記錄到這個密碼本。
起初,一個字符用2個字節表示,比如一個a是0000 0001 0000 1100,一箇中是0001 0000 0010 0001
後來爲了涵蓋全部名字,一個字符佔4個字節
0000 0000 0000 0000 0000 0000 0000 0001
現在全世界所有的文字,加起來,超不過2的21次方,一個字符佔4個字節共2的32次方,確實能表示完,但是很浪費空間,浪費資源

所以,對Unicode升級,變成了UTF-8
UTF-8:最少用8bit(1個字節)表示一個字符
0000 0011:a
0000 0011 0000 0001:歐洲2個字節
0000 0000 0001 0001 0000 0111 中國三個字節

‘中國12he’:這個字符串用gbk去編譯,佔幾個字節
一箇中文佔2個字節,字母數字佔1個字節,共8個
如果是用UTF-8,共用了10個字節
用什麼編碼,佔用的字節數不同,這是重點

8bit = 1byte
1024byte=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB
1024TB=1PB
1024PB=1EB
1024EB=1ZB
1024ZB=1YB
1024YB=1NB
1024NB=1DB

7.6MB–>7.610241024*8 bit

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章