Python全棧開發【第二篇】:運算子、基本型別與字串
上一篇補充:
1、編碼:一個位元組為8位二進位制,編碼方式最初為ASCII,然後出現Unicode,後來出現Unicode的壓縮版--Utf-8,之後又Gbk編碼方式。一個漢字,以Utf-8編碼是3個位元組,以Gbk編碼是2個位元組。
2、while迴圈:a.while else
b.continue break
continue,跳出當前迴圈,進入下一次迴圈
break,跳出所有迴圈
3、上一篇習題最後一道比較難處理:
1 count = 0 2 while count < 3: 3 user = input('>>>') 4 pwd = input('>>>') 5 if user == 'alex' and pwd == '123': 6 print('歡迎登陸') 7 print('..........') 8 break 9 else: 10 print('使用者名稱或者密碼錯誤') 11 count = count + 1
python開發IDE:pycharm、eclipse,二者選一個安裝使用即可,前幾天做畢設重灌系統,導致我現在的pycharm打不開了,試了幾種方法也不好用,打算過幾天裝個eclipse嚐嚐,現在寫的都是單個檔案執行,使用python自帶的IDE也是可以的,後期多個檔案不知道能不能繼續用python自帶的IDE,如果使用python自帶的IDE,則添加註釋為Alt + 3,消除註釋為Alt + 4,如果使用pycharm記得要是專業版,不要漢化,具體安裝和啟用參考其他網際網路文章,ctrl + ? 為註釋快捷鍵。
1、運算子
結果是數值
算數運算
1 a = 10 * 10 2 print(a)
賦值運算
1 a = a + 1 #亦可寫為 a+=1 2 print(a)
結果是布林值 True 真 假 False
比較運算
1 a = 1 > 2 2 print(a)
輸出結果為False
邏輯運算 與 and 、或 or 、非 !
1 a = 1>2 or 1==1 2 print(a)
輸出結果為True
成員計算 in
1 a = "飯" in "不吃飯" #in 或者 not in2 print(a)
輸出結果為True
2、基本資料型別
1、數字 int ,所有的功能,都放在int裡,在pycharm中,按一下Enter,新起一行,輸入int,長按Ctrl,滑鼠由箭頭變成小手,然後用小手點一下 之前輸入的 int ,就會彈出一個檔案,檔案中就是int的所有功能。(其他資料型別也同樣操作)
1 a1 = 123
#將字串轉換為數字
1 a = "123" 2 print(type(a),a) 3 4 b = int(a) 5 print(type(b),b) 6 7 num = "0011" 8 v = int(num, base=16) 9 print(v)
輸出結果為
<class 'str'> 123
<class 'int'> 123
17
第八行的語句base=16表示變數num為16進位制編碼 ,轉換為10進位制輸出結果。
#當前數字的二進位制,至少用n位表示
1 a = 12 2 r = a.bit_length() 3 print(r)
輸出結果為 4
2、字串 str
1 s1 = "asdf"
#首字母大寫
1 test = "aLex" 2 v = test.capitalize() 3 print(v)
輸出結果為 Alex
#所有變小寫,casefold更牛一些:很多未知的對相應變小寫
1 test = "aLex" 2 v1 = test.casefold() 3 print(v1) 4 v2 = test.lower() 5 print(v2)
輸出結果為alex alex
#設定寬度,並將內容居中
#20代指總長度
#*空白未知填充,一個字元,可有可無
1 test = "aLex" 2 v = test.center(20,"*") 3 print(v)
輸出結果為 ********aLex********
#去字串中尋找,尋找子序列的出現次數
1 test = "aLexalexr" 2 v = test.count('ex') 3 print(v)
輸出結果為 2
#定區間尋找子序列的出現次數
1 test = "aLexalexr" 2 v = test.count('ex',5,6) 3 print(v)
輸出結果為 0 ,表示在第五個字元和第六個字元之間沒有對應子序列
#以什麼開始,以什麼結尾
1 test = "alex" 2 v1 = test.endswith('ex') 3 v2 = test.startswith('ex') 4 print(v1) 5 print(v2)
輸出結果為 True False
#從開始往後找,找到第一個之後,獲取其位置,未找到則為-1
1 test = "alexalex" 2 v = test.find('ex') 3 print(v)
輸出結果為 2
#index找到對應字元的第一個位置並輸出,找不到,報錯 忽略
1 test = "alexalex" 2 v = test.index('x') 3 print(v)
輸出結果為 3
#格式化,將一個字串中的佔位符替換為指定的值
1 test = 'i am {name}, age {a}' 2 print(test) 3 v = test.format(name='alex',a=19) 4 print(v)
輸出結果為
i am {name}, age {a}
i am alex, age 19
亦可用下面程式碼代替,實現同樣輸出結果
1 test = 'i am {0}, age {1}' 2 print(test) 3 v = test.format('alex',19) 4 print(v)
#格式化,傳入的值{“name”:"alxe","a":19}
1 test = 'i am {name}, age {a}' 2 v1 = test.format(name='df',a=10) 3 v2 = test.format_map({"name": 'alex', "a": 19}) 4 print(v1) 5 print(v2)
輸出結果為
i am df, age 10
i am alex, age 19
#判斷字串中是否只包含字母和數字
1 test = "123" 2 v = test.isalnum() 3 print(v)
輸出結果為 True