1. 程式人生 > 其它 >Python全棧開發【第二篇】:運算子、基本型別與字串

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 in
2 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