格式化輸出,while迴圈,運算子,初識編碼

想吃橙子發表於2019-03-02

1.pycharm的使用

快捷操作例如 shift + enter 無論游標在哪,都可以迅速切換到下一行

                      ctrl + / 將全選內容新增為註釋

2.格式化輸出

可以將編碼中想要改變的量先用佔位符%s佔位,然後再編寫改變條件等內容 例如: (例題來自day 02作業)

⽤戶登陸(三次輸錯機會)且每次輸錯誤時顯示剩餘錯誤次數(提示:使⽤字串格式化)

 

jihui = 3
while jihui >= 1:
username = input('請輸入使用者名稱')
password = input('請輸入密碼')
if username == 'ojbk' and password == 'nice':
print('登入成功')
break
else:
jihui -= 1
print('''使用者名稱或密碼錯誤,當前嘗試%s次,還可嘗試%s次'''%(jihui,3-jihui))
else:
print('登入失敗')

3.while 迴圈
什麼是迴圈? 太陽東昇西落 單曲迴圈 吃飯睡覺 程式碼中的迴圈 用while來表示
表示形式為
while 條件:
迴圈體
(此處可以視情況新增else)
可以讓程式重複之前做的事情 比如輸入賬號 密碼等操作
如何終止迴圈呢?
1.改變條件 2.break 3.呼叫系統命令 例 quit() exit() 但不建議使用
break和continue
break是程式遇到他立即停止並跳出迴圈
continue是程式遇到他只跳出本次迴圈 重新開始新一輪迴圈
例題:
while True:
print(222)
print(333)
break
print(555)
print(666)
此處執行時表示為 222 333 666 迴圈執行222 333後遇到break 立即跳出while迴圈 因此555無法執行 而666不在while迴圈中 所以可以執行

while True:
print(111)
print(222)
continue
print(333)
此處執行是表示為 111 222 迴圈執行到 111 222 後遇到continue 立即跳出本次迴圈並重新開始迴圈 因此 333無法執行 把print(333)移動到while迴圈裡面時同樣無法執行。
while迴圈中的else : 只要迴圈不被break打斷 就不會執行else中的程式

4.運算子
有算術運算,賦值運算,比較運算,成員運算,位運算,邏輯運算等等。
算數運算: + - * / % ** //
比較運算: == > < >= <= !=
賦值運算: = += -= *= /= ....
count = count + 1 count += 1
邏輯運算:and or not
成員運算:in not in
優先順序: () > not > and > or ,同一個優先順序從左至右依此計算
bool ---> int  True   1      Flase    0
a and b a 不是 Flase 輸出結果為b
a or b a不是False 輸出結果為a
成員運算
s = 'alex 中'
s1 = 'a'
s = 'alexsb'
print('a' in s)
print('al' in s)
print('ae' in s) # False
print('alex' in s) # False
print('alexsb' in s) # False
day 02作業裡運算子部分例題:
3 and 2 > 1    True
0 and 3 > 1 0
2 > 1 and 3 3
3 > 1 and 0 0
3 > 1 and 2 or 2 < 3 and 3 and 4 or 3 > 2 2
not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6   False
0 or 2 and 3 and 4 or 6 and 0 or 3     3

5.編碼的初識
ascii:是最早期的密碼本 只包含了英文字母 數字 特殊符號
一開始是七位一段 創始人為了以後的發展 增加到了八位一段
00100110 a
'0' '1' 是1bit
8個bit 是一個字元 一個字元用一個位元組表示 例如 'a' 1個位元組表示 'apple' 5個位元組表示

unicode: 也叫萬國碼
隨著計算機的發展 ascii不足以表示所有字元 因此世界的編碼協會寫出了能被所有國家使用的密碼本
英文字母: '01101011 01101011' 18個bit為2個位元組 漢字和英文字母你用2個位元組表示1個字元
漢字: '01001011 01110011' 後因不足夠表示所有漢字 進行一次升級

升級之後 32bit表示1個字元
英文字母: '01001110 01000011 11001100 00101011'
漢字 : '01110001 11100011 10001111 10000101'
升級之後unicode過於浪費空間

utf-8: 至少用8個位元組表示1個字元
英文字母: '00101100'
歐洲文字: '01000010 01001110'
漢字: '01001110 11000001 10100001'
例如 :'老Boy' 1個漢字3個英文字母 佔用6個位元組

gbk :gb2312等等 國標 中國人自己發明的密碼本
英文字母: '10110001'
漢字 : '01001110 01010100'
'老Boy' 一個漢字 三個英文字母 佔用5位元組
gbk是由utf-8轉化而來

相關文章