如今有如下需求,讓⽤戶輸入name, age, job,hobby 而後輸出以下所⽰:python
------------ info of Alex Li ----------- Name : Alex Li Age : 22 job : Teacher Hobbie: girl ------------- end -----------------
你怎麼實現呢?你會發現,⽤字符拼接的⽅式還難實現這種格式的輸出,因此⼀起來學⼀下新知識,只須要把要打印的格式先準備好, 因爲⾥⾯的⼀些信息是須要⽤戶輸⼊的,你沒辦法預先知道,所以能夠先放置個佔位符,再把字符串⾥的佔位符與外部的變量作個映射關係就好。學習
name = input("Name:") age = input("Age:") job = input("Job:") hobby = input("Hobbie:") info = ''' ------------ info of %s ----------- #這⾥的每一個%s就是⼀個佔位符,本⾏的表明 後⾯拓號⾥的 name Name : %s #表明 name Age : %s #表明 age job : %s #表明 job Hobbie: %s #表明 hobbie ------------- end ----------------- ''' % (name,name,age,job,hobbie) # 這⾏的 % 號就是 把前⾯的字符串 與拓號 後⾯的 變量 關聯起來 print(info)
%s就是表明字符串佔位符,除此以外,還有%d, 是數字佔位符, 若是把上⾯的age後⾯的換成%d,就表明你必須只能輸⼊數字。編碼
這時對應的數據必須是int類型,不然程序會報錯。spa
使⽤時,須要進⾏類型轉換。設計
int(str) # 字符串轉換成int str(int) # int轉換成字符串
相似這樣的操做在後⾯還有不少。code
若是, 你頭鐵。就不想轉換。覺着轉換很麻煩. 也能夠所有都⽤%s。由於任何東⻄均可以直接轉換成字符串--> 僅限%sorm
如今⼜來新問題了。若是想輸出:blog
我叫xxx, 今年xx歲了,咱們已經學習了2%的python基礎了
這⾥的問題出在哪⾥呢? 沒錯2%, 在字符串中若是使⽤了%s這樣的佔位符. 那麼全部的%都將變成佔位符. 咱們的2%也變成了 佔位符. ⽽"%的"是不存在的, 這⾥咱們須要使⽤%%來表⽰字符串中的%。ci
注意: 若是你的字符串中沒有使⽤過%s,%d站位。那麼不須要考慮這麼多,該%就%.沒⽑病老鐵。unicode
print("我叫%s, 今年22歲了, 學習python2%%了" % '王尼瑪') # 有%佔位符 print("我叫王尼瑪, 今年22歲, 已經涼涼了100%了") # 沒有佔位符
計算機能夠進行的運算有不少種,可不僅加減乘除這麼簡單,運算按種類可分爲:
算術運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算。
這章咱們暫只學習算數運算、⽐較運算、邏輯運算、賦值運算
如下假設變量:a=10,b=20
如下假設變量:a=10,b=20
如下假設變量:a=10,b=20
針對邏輯運算的進⼀步研究:
1.在沒有()的狀況下not 優先級⾼於 and,and優先級⾼於or,即優先級關係爲( )>not>and>or,同⼀優先級從左往 右計算。
() > not > and > or
例題: 判斷下列邏輯語句的True,False。
3>4 or 4<3 and 1==1 1 < 2 and 3 < 4 or 1>2 2 > 1 and 3 < 4 or 4 > 5 and 2 < 1 1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8 1 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2.
x or y , 若是x是0 返回y, 若是x是非零, 返回x
x and y, 若是x是0 返回x, 若是x是非零, 返回y
not x,若是是0,返回True,若是x是非零, 返回False
例題:求出下列邏輯語句的值。
8 or 4 0 and 3 0 or 4 and 3 or 7 or 9 and 6
如下假設變量:a=10,b=20
python2解釋器在加載 .py⽂件中的代碼時,會對內容進⾏編碼(默認ascill),⽽python3對內容進⾏編碼的默認爲utf8。
計算機:
早期,計算機是美國發明的,普及率不⾼,⼀般只是在美國使⽤。因此, 最先的編碼結構就是按照美國⼈的習慣來編碼的。 對應數字+字⺟+特殊字符⼀共也沒多少, 因此就造成了最先的編碼ASCII碼,直到今天ASCII依然深深的影響着咱們。
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字⺟的⼀套電腦編碼系統,主要⽤於顯示現代英語和其餘⻄歐語⾔,其最多隻能⽤ 8 位來表示(⼀個字節),即:2**8 = 256,因此,ASCII碼最多隻能表示 256個符號。
隨着計算機的發展,以及普及率的提⾼,流⾏到歐洲和亞洲,這時ASCII碼就不合適了。⽐如: 中⽂漢字有⼏萬個,⽽ASCII 最多也就256個位置,因此ASCII不⾏了。怎麼辦呢? 這時, 不一樣的國家就提出了不一樣的編碼⽤來適⽤於各⾃的語⾔環境,⽐如,中國的GBK,GB2312, BIG5,ISO-8859-1等等,這時各個國家均可以使⽤計算機了。
GBK,國標碼佔⽤2個字節。對應ASCII碼 GBK直接兼容,由於計算機底層是⽤英⽂寫的, 你不⽀持英⽂確定不⾏,⽽英⽂已經使⽤了ASCII碼, 因此GBK要兼容ASCII。
這⾥GBK國標碼,前⾯的ASCII碼部分,因爲使⽤兩個字節,因此對於ASCII碼⽽⾔,前9位都是0。
字⺟A:0100 0001 # ASCII 字⺟A:0000 0000 0100 0001 # 國標碼
國標碼的弊端: 只能中國⽤,⽇本就垮了,因此國標碼不滿⾜咱們的使⽤,這時提出了⼀個萬國碼Unicode。unicode⼀ 開始設計是每一個字符兩個字節,設計完了,發現我⼤中國漢字依然⽆法進⾏編碼,只能進⾏擴充,擴充成32位也就是4個字 節。這回夠了,可是,問題來了,中國字9萬多,⽽unicode能夠表⽰40多億,根本⽤不了,太浪費了,因而乎, 就提出了新的UTF編碼,可變⻓度編碼。
UTF-8: 每一個字符最少佔8位,每一個字符佔⽤的字節數不定,根據⽂字內容進⾏具體編碼。好比,英⽂,就⼀個字節就夠了,漢 字佔3個字節,這時即滿⾜了中⽂,也滿⾜了節約,也是⽬前使⽤頻率最⾼的⼀種編碼。
UTF-16: 每一個字符最少佔16位。
GBK: 每一個字符佔2個字節,16位。
單位轉換:
8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024TB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
補充1: while循環
while 條件:
循環體
else: 循環在正常狀況跳出以後會執⾏這⾥
index = 1 while index < 11: if index == 8: # break pass else: print(index) index = index+1 else:print("你好")
注意: 若是循環是經過break退出的,那麼while後⾯的else將不會被執⾏,只有在while條件判斷是假的時候纔會執⾏這個else。
pass: 不表⽰任何內容,爲了代碼的完整性,佔位⽽已。
補充2: in和not in
能夠判斷xxx字符串是否出如今xxxxx字符串中
content = input("請輸⼊你的評論") if "蒼⽼師" in content or '邱⽼師' in content: print('你輸⼊的內容不合法') else: print("評論成功")