python 基礎第三篇

一. 編碼python


  1. 最先的計算機編碼是ASCII. 美國人建立的. 包含了英文字母(大寫字母, 小寫字母). 數字, 標點等特殊字符!@#$%
    128個碼位 2**7 在此基礎上加了一位 2**8
      8位. 1個字節(byte)
  2. GBK 國標碼 16位. 2個字節(雙字節字符)
  3. unicode 萬國碼 32位, 4個字節
  4. utf-8: 英文 8 bit 1個字節
    歐洲文字 16bit 2個字節
    中文 24bit 3個字節git

8bit => 1 byte
1024 byte = > 1kb
1024 kb => 1mb
1024mb => 1gb
1024gb = > 1tb
二.python基本數據類型api

  1. int ==> 整數. 主要用來進行數學運算
  2. str ==> 字符串, 能夠保存少許數據並進行相應的操做
  3. bool==>判斷真假, True, False
  4. list==> 存儲大量數據.用[ ]表示
  5. tuple=> 元組, 不能夠發生改變 用( )表示
  6. dict==> 字典, 保存鍵值對, 這樣能夠保存大量數據
  7. set==> 集合, 保存大量數據. 不能夠重複. 其實就是不保存value的dict

1). 整數(int)
在python3中全部的整數都是int類型. 但在python2中若是數據量比較⼤. 會使⽤long類型.
在python3中不存在long類型
整數能夠進行的操做:
bit_length(). 計算整數在內存中佔用的二進制碼的長度函數

 

三. 布爾值(bool)
    取值只有True, False. bool值沒有操做.
  轉換問題:
  str => int int(str)
  int => str str(int)
  int => bool bool(int). 0是False 非0是True
  bool=>int int(bool) True是1, False是0
  str => bool bool(str) 空字符串是False, 不空是True
  bool => str str(bool) 把bool值轉換成相應的"值"編碼

四. 字符串(str)
  把字符連成串. 在python中', ", ''', """引發來的內容被稱爲字符串.spa

  4.1 切片和索引
    1. 索引. 索引就是下標. 切記, 下標從0開始code

    2. 切片, 咱們可使⽤下標來截取部分字符串的內容
      語法: str[start: end]
  規則: 顧頭不顧腚, 從start開始截取. 截取到end位置. 但不包括endorm

  步長: 若是是整數, 則從左往右取. 若是是負數. 則從右往左取. 默認是1
  切片語法:
    str[start:end:step]
    start: 起始位置
    end: 結束位置
    step:步長對象

複製代碼
s = "alex和wusir常常在一塊兒搞基" s1 = s[5:10] print(s1) s2 = s[0:4] + s[5:10] print(s2) s3 = s[5:] # 默認到結尾 print(s3) s4 = s[:10] # 從頭開始 print(s4) s5 = s[:] # 從頭至尾都切出來 print(s5) s6 = s[-2:] # 從-2 切到結尾 默認從左往右切 print(s6) 步長 語法:s[起始位置: 結束位置: 步長] s = "我是梅西,我很慌" s1 = s[1:5:2] # 從1開始, 到5結束, 每2個取1個 print(s1) s2 = s[::3] print(s2) s3 = s[6:2:-1] # - 表示反着來. 每兩個取1個 print(s3) s = "這個標點符號很蛋疼" # s1 = s[7::-2] # print(s1) s2 = s[-1:-6:-2] print(s2)
複製代碼

4.2 字符串的相關操做方法
  切記, 字符串是不可變的對象, 因此任何操做對原字符串是不會有任何影響的blog

1. 大小寫轉來轉去

複製代碼
s = "alex and wusir and taibai" s1 = s.capitalize() # 首字母大寫 print(s) # 原字符串不變 print(s1) s = "Alex is not a Good Man. " print(s.upper()) print(s.lower()) 在程序須要判斷不區分大小寫的時候. 確定能用上 while True: content = input("請噴:") if content.upper() == 'Q': break print("你噴了:", content) s = "taiBai HenBai feicahngBai" print(s.swapcase()) # 大小寫轉換 s = "al麻花藤ex and wu sir sir se" print(s.title())
複製代碼

2. 切來切去

複製代碼
s = "麻花藤" print(s.center(9, "*")) username = input("用戶名:").strip() # 去掉空格. password = input("密碼:").strip() # 去掉空格 if username == 'alex' and password == '123': print("登陸成功") else: print("登陸失敗") s = "*******呵a呵呵呵****************" print(s.strip("*")) # strip去掉的是左右兩端的內容. 中間的無論 s = "alex wusir alex sb taibai" s1 = s.replace("alex", "曉雪") # 原字符串不變 print(s1) # 去掉上述字符串中的全部空格 s2 = s.replace(" ", "") print(s2) s3 = s.replace("alex", "sb", 2) print(s3) s = "alex_wuse_taibai_bubai" lst = s.split("_taibai_") # 刀是_ 切完的東西是列表. 列表裝的是字符串 print(lst)
複製代碼

3. 格式化輸出

複製代碼
s = "我叫{}, 我今年{}歲了, 我喜歡{}".format("sylar", 18, "周杰倫的老婆") print(s) 能夠指定位置 s = "我叫{1}, 我今年{0}歲了, 我喜歡{2}".format("sylar", 18, "周杰倫的老婆") print(s) s = "我叫{name}, 我今年{age}歲了, 我喜歡{mingxing}".format(name="sylar", mingxing="汪峯的老婆", age=18) print(s) 你喜歡用哪一個就用哪一個
複製代碼

4. 查找

複製代碼
s = "汪峯的老婆不愛汪峯" print(s.startswith("汪峯")) # 判斷字符串是否以xxx開頭 print(s.endswith("愛妃")) # 判斷字符串是否以xxx結尾 print(s.count("國際章")) # 計算xxx在字符串中出現的次數 print(s.find("汪峯", 3)) # 計算xxx字符串在原字符串中出現的位置, 若是沒出現返回 -1 print(s.index("國際章")) # index中的內容若是不存在. 直接報錯
複製代碼

5. 條件判斷

複製代碼
s = "abc123" print(s.isdigit()) # 判斷字符串是否由數字組成 print(s.isalpha()) # 是否由字母組成 print(s.isalnum()) # 是否由字母和數字組成 s = "二千136萬萬" print(s.isnumeric()) # 數字
複製代碼

6. 計算字符串的長度

s = "你今天喝酒了麼" i = len(s) # print() input() len() python的內置函數 print(i) i = s.__len__() # 也能夠求長度 len()函數執行的時候實際執行的就是它 print(i)

  注意: len()是python的內置函數. 因此訪問方式也不同.

7. 迭代
  咱們可使⽤for循環來便利(獲取)字符串中的每⼀個字符
  語法:
    for 變量 in 可迭代對象:
  pass
    可迭代對象: 能夠⼀個⼀個往外取值的對象

複製代碼
#把字符串從頭至尾進行遍歷 s = "曉雪老師.你好漂亮" print(len(s)) # 長度是:8 索引到7 #1. 使用while循環來進行遍歷 count = 0 while count < len(s): print(s[count]) count = count + 1 #2. 用for循環來遍歷字符串 #優點:簡單 #劣勢:沒有索引 for c in s: # 把s中的每個字符交給前面的c 循環 print(c) #語法: #for bianliang in 可迭代對象: #循環體
複製代碼

練習:

一.有變量name = "aleX leNb" 完成以下操做:
複製代碼
name = "aleX leNb" #1)移除 name 變量對應的值兩邊的空格,並輸出處理結果 s = name.strip() print(s) #2)移除name變量左邊的"al"並輸出處理結果 s = name.lstrip("al") print(s) #3)移除name變量右⾯的"Nb",並輸出處理結果 s = name.rstrip("Nb") print(s) #4)移除name變量開頭的a"與最後的"b",並輸出處理結果 s = name.lstrip("a").rstrip("b") print(s) #5)判斷 name 變量是否以 "al" 開頭,並輸出結果 s = name.startswith("al") print(s) #6)判斷name變量是否以"Nb"結尾,並輸出結果 s = name.endswith("Nb") print(s) #7)將 name 變量對應的值中的 全部的"l" 替換爲 "p",並輸出結果 s = name.replace("l","p") print(s) #8)將name變量對應的值中的第⼀個"l"替換成"p",並輸出結果 s = name.replace("l","p",1) print(s) #9)將 name 變量對應的值根據 全部的"l" 分割,並輸出結果。 s = name.split("l") print(s) #10)將name變量對應的值根據第⼀個"l"分割,並輸出結果。 s = name.split("l",1) print(s) #11)將 name 變量對應的值變⼤寫,並輸出結果 s = name.upper() print(s) #12)將 name 變量對應的值變⼩寫,並輸出結果 s = name.lower() print(s) #13)將name變量對應的值⾸字⺟"a"⼤寫,並輸出結果 s = name.replace("a","A") print(s) #14)判斷name變量對應的值字⺟"l"出現⼏次,並輸出結果 s = name.count("l") print(s) #15)若是判斷name變量對應的值前四位"l"出現⼏次,並輸出結果 s = name[0:3].count("l") print(s) #16)從name變量對應的值中找到"N"對應的索引(若是找不到則報錯),並輸出結果 s = name.index("N") print(s) #17)從name變量對應的值中找到"N"對應的索引(若是找不到則返回-1)輸出結果 s = name.find("N") print(s) #18)從name變量對應的值中找到"X le"對應的索引,並輸出結果 s = name.find("X le") print(s) #19)請輸出 name 變量對應的值的第 2 個字符? print(name[2]) #20)請輸出 name 變量對應的值的前 3 個字符? print(name[0:3]) #21)請輸出 name 變量對應的值的後 2 個字符? print(name[-2:]) #22)請輸出 name 變量對應的值中 "e" 所在索引位置? s = name.find("e") print(s)
複製代碼
二..有字符串s = "123a4b5c"
複製代碼
s = "123a4b5c" #1)經過對s切⽚造成新的字符串s1,s1 = "123" s1 = s.strip("a4b5c") print(s1) #2)經過對s切⽚造成新的字符串s2,s2 = "a4b" s2 = s.lstrip("123").rstrip("5c") print(s2) #3)經過對s切⽚造成新的字符串s3,s3 = "1345" s3 = s[0::2].strip("") print(s3) #4)經過對s切⽚造成字符串s4,s4 = "2ab" s4 = s[1:6:2].strip("") print(s4) #5)經過對s切⽚造成字符串s5,s5 = "c" s5 = s.strip("123ab45") print(s5) #6)經過對s切⽚造成字符串s6,s6 = "ba2" s6 = s[-3:-8:-2].strip("") print(s6)
複製代碼
三.使用while和for循環分別打印字符串s="asdfer"中每一個元素。
複製代碼
#1.while循環打印 s = "asdfer" count = 0 while count <= len(s) - 1: print(s[count]) count = count +1 #2.for循環打印 s = "asdfer" for a in s : print(a)
複製代碼
四.使用for循環對s="asdfer"進行循環,可是每次打印的內容都是"asdfer"。
s = "asdfer" for a in s : print(s)
五.使用for循環對s="abcdefg"進行循環,每次打印的內容是每一個字符加上sb,例如:asb, bsb,csb,...gsb。
s = "abcdefg" for a in s : print(a + "sb")
六.使用for循環對s="321"進行循環,打印的內容依次是:"倒計時3秒","倒計時
  2秒","倒計時1秒","出發!"。
s = "321" for a in s : print("倒計時%s秒" % (a)) else: print("出發!")
七,實現一個整數加法計算器(兩個數相加):
  如:content = input("請輸入內容:") 用戶輸入:5+9或5+ 9或5 + 9,而後進
    行分割再進行計算。
content = input("請輸⼊內容:").strip() s = content.split("+") s2 = int(s[0])+int(s[1]) print(s2)
八,升級題:實現一個整數加法計算器(多個數相加):
  如:content = input("請輸入內容:") 用戶輸入:5+9+6 +12+ 13,而後進行
    分割再進行計算。
複製代碼
content = input("請輸⼊內容:").strip() lis = content.split("+") a1 =len(lis) count = 0 sum = 0 while count < a1: sum = sum + int(lis[count]) count = count + 1 print(sum)
複製代碼
九,計算用戶輸入的內容中有幾個整數(以個位數爲單位)。
  如:content = input("請輸入內容:") # 如fhdal234slfh98769fjdla
複製代碼
content = input("請輸⼊內容:").strip() count = 0 b = 0 while count < len(content): c = content[count] if c.isdigit(): b += 1 count += 1 print("輸入的有%s個整數" % (b))
複製代碼
十.寫代碼,完成下列需求:
  用戶可持續輸入(用while循環),用戶使用的狀況:
  輸入A,則顯示走大路回家,而後在讓用戶進行選擇:
    是選擇公交,仍是步行?
    選擇公交,顯示10分鐘到家,並退出整個程序。
    選擇步行,顯示20分鐘到家,並退出整個程序。
  輸入B,則顯示走小路回家,並退出整個程序。
  輸入C,則顯示繞道回家,而後在讓用戶進行步選擇:
    是選擇遊戲廳玩會,仍是網吧?
    選擇遊戲廳,則顯示 ‘一個半小時到家,爸爸在家,拿棍等你。’並讓其
    從新輸入A,B,C選項。
    選擇網吧,則顯示‘兩個小時到家,媽媽已作好了戰鬥準備。’並讓其重
    新輸入A,B,C選項。
複製代碼
while True: s = input("請輸入A,B,C中的某一個:").upper() if s == "A": print("走大路回家") s1 = input("選擇公交車仍是步行:") if s1 == "步行": print("20分鐘到家") break if s1 == "公交車": print("10分鐘到家") break if s == "B": print("走小路回家") break if s == "C": while True: print("繞道回家") s2 = input("選擇去遊戲廳仍是去網吧:") if s2 == "遊戲廳": print("⼀個半⼩時到家,爸爸在家,拿棍等你。") break if s2 == "網吧": print("兩個⼩時到家,媽媽已作好了戰⽃準備。") break
複製代碼
十一.寫代碼:計算 1 - 2 + 3 ... + 99 中除了88之外全部數的總和?
複製代碼
count = 1 sum = 0 while count < 100: if count == 88: count += 1 continue if count % 2 == 0: sum = sum - count else: sum = sum + count count = count + 1 print(sum)
複製代碼
十二. (升級題)判斷一句話是不是迴文. 迴文: 正着念和反着念是同樣的. 例如, 上海
    自來水來自海上(升級題)
s = input("請輸入一句話") if s[::-1] == s: print("是迴文") else: print("不是迴文")
十三. 輸入一個字符串,要求判斷在這個字符串中大寫字母,小寫字母,數字,
    其它字符共出現了多少次,並輸出出來
複製代碼
s = input("請輸入一句話") upper_num = 0 lower_num = 0 num = 0 other = 0 for a in s: if a.isupper(): upper_num += 1 elif a.islower(): lower_num += 1 elif a.isdigit(): num += 1 else: other += 1
print("大寫字母有%s個,小學字母有%s個,數字有%s個,其餘有%s個" % (upper_num,lower_num,num,other))
複製代碼
十4、製做趣味模板程序需求:等待用戶輸入名字、地點、愛好,根據用戶的名
字和愛好進行任意現實 如:敬愛可親的xxx,最喜歡在xxx地方xxx
name = input("請輸入你的名字:") address = input("請輸入地點:") hobby = input("請輸入愛好:") print("敬愛可親的{name},最喜歡在{address}地方幹{hobby}".format(name=name,address=address,hobby=hobby))
相關文章
相關標籤/搜索