1、流程控制-while循環,結構以下:python
while 條件:學習
結果編碼
若是條件是真,則直接執行結果,而後再次判斷條件,直到條件是假,中止循環設計
那麼咱們如何終止循環呢?code
1,改變循環條件orm
2,breakutf-8
注意:continue並不能結束循環,只是結束本次循環,繼續下一次循環ci
while循環補充:unicode
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、流程控制-break和continue
1,break:打斷,完全終止當前本層循環
2,continue:中止本次循環,繼續執行下一次循環
3、格式化輸出
如今有如下需求,讓用戶輸入name,age,job,hobby而後輸出以下所示:
--------------- info of Alex Li ---------------
Name : Alex Li
Age : 22
job : Teacher
Hobby : girl
-------------------- end ---------------------
要怎麼實現呢?你會發現,用字符拼接的方式很難實現這種格式的輸出,因此一塊兒來學一下新姿式,你須要把要打印的格式先準備好,因爲裏面的一些信息是須要用戶輸入的,你沒辦法預先知道,所以能夠先放置一個位置佔位符,再把字符串裏的佔位符與外部的變量作個映射關係就行了,具體以下:
name = input(「Alex Li」)
age = input(「22」)
job = input(「Teacher」)
hobby = input(「girl」)
info = ’’’
--------------- info of %s ----------------- # 這裏的每一個%s就是一個佔位符
Name : %s
Age : %s
job : %s
Hobby : %s
-------------------- end -------------------
’’’ % (name , name , age , job , hobby) # 這行的%就是把前面的字符串與後面的變量關聯起來
%s就是表明字符串佔位符,除此以外,還有%d,是數字佔位符,若是把上面age後面的換成%d,就表明你必須只能輸入數字,這時age對應的數據類型必須是int類型,不然程序會報錯。
int(str) # 字符串轉換成int類型
str(int) # int轉換成字符串類型
若是你以爲轉換類型麻煩,不想轉換,也能夠所有都用%s,由於任何東西均可以直接轉換成字符串(僅限%s)
如今問題又來了,若是想輸出: 我叫%s,今年多少歲,咱們已經學習了2%的python了
這裏的問題在哪裏呢?沒錯,就是2%,在字符串中若是使用了%s這樣的佔位符,那麼全部的%都將變成佔位符,咱們的2%也變成了佔位符,而上句中「%的」是不存在的,這裏咱們須要使用%%來表示字符串中的%。
注意:若是你的字符串中沒有使用過%s,%d佔位,那麼就不須要考慮那麼多,該%就%,程序不會報錯。
例如:print(「我叫%s,今年22歲了,學習python2%%了」 % ‘lily’) # 有%佔位符,想輸出「2%」就要寫成「2%%」
print(「我叫lily,今年22歲了,已經學了80%python了」) # 沒有佔位符,正常寫便可
4、基本運算符
計算機能夠進行的運算有不少種,可不僅有加減乘除這麼簡單,運算按種類可分爲:
算數運算
比較運算
邏輯運算
賦值運算
成員運算
身份運算
位運算
今天咱們暫時學習算數運算,比較運算,邏輯運算,賦值運算
4.1 算數運算
+,-,*,/,%(取餘),**(次冪),//(整除或地板除)
4.2 比較運算
==,!=,<>(不等於),>,<,>=,<=
4.3 邏輯運算
and -- 而且,兩邊同時爲真,結果纔是真,有一個是假,結果爲假
or -- 或者,兩邊只要有一個爲真,結果就爲真
not – 非真即假,非假即真
邏輯運算的進一步研究:
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
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6
2,x or y,x爲真,值就是x,x爲假,值是y
x and y,x爲真,值是y,x爲假,值是x
例題:求出下列邏輯語句的值
8 or 4
0 and 3
0 or 4 and 3 or 7 or 9 and 6
4.4 賦值運算
=,+=,-=,*=,/=,%=,**=,//=
5、編碼初識
Python2解釋器在加載 .py文件中的代碼時,會對內容進行編碼(默認ascill),而python3對內容進行編碼的默認爲utf-8。
早期,計算機是美國發明的,普及率不高,通常只是在美國使用,因此,最先的編碼結構就是按照美國人的習慣來編碼的,對應數字+字母+特殊字符一共也沒多少,因此就造成了最先的編碼: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。
字母A:0100 0001 #ASCII碼
字母A:0000 0000 0100 0001 #GBK國標碼
因爲國標碼使用兩個字節,因此對於ASCII 碼而言,前8位都是0
國標碼的弊端:只能中國用,日本用就垮了,因此國標碼不知足咱們的使用,這時提出了一個萬國碼Unicode,Unicode一開始設計是每一個字符兩個字節,設計完了,發現我大中國漢字依然沒法進行編碼,只能進行擴充,擴充成32位也就是4個字節,這回夠了,可是,問題來了,中國字9萬多,而unicode能夠表示40多億,根本用不了,太浪費了,因而乎,就是提出了新的UTF編碼,便可變長度編碼。
UTF-8:每一個字符最少佔8位,每一個字符佔用的字節數不定,根據文字內容進行具體編碼,好比:英文,就一個字節就夠了;漢字佔3個字節,這時既知足了中文,也知足了節約,也是目前使用頻率最高的一種編碼
UTF-16:每一個字符最少佔16位
GBK:每一個字符佔2個字節,16位
編碼小結:
1,ASCII是最先的編碼,至今還在使用,一個字符8位(一個字節)
2,GBK,國標碼,16位,2個字節
3,unicode,萬國碼,32位,4個字節
4,UTF-8,可變長度的unicode
英文:8位,1一個字節
歐洲文字:16位,2個字節
漢字:24位,3個字節
單位轉換(經常使用到TB就夠了):
8bit = 1byte 或者 8b = 1B
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
1024TB = 1PB
1024PB = 1EB
1024EB = 1ZB
1024ZB = 1YB
1024YB = 1NB
1024NB = 1DB
六、in 和not in
能夠判斷xxx字符串是否出如今xxxxx字符串中
例如:
content = input(「請輸入你的評論」)
if 「蒼老師」 in content or 「邱老師」 in content:
print(「你輸入的內容不合法」)
else:
print(「評論成功」)