1、執行Python腳本的兩種方式
python解釋器 python 1.py
2、簡述位、字節的關系
8 bits = 1 byte (8位一字節)
計算機處理以字節(byte)為單位
存儲以位(bit)為單位
3、簡述ascii、unicode、utf-‐8、gbk的關系
ascii 英文編碼,8個二進制位代表一個字母,總共可以有2的8次方減去1個等於255個
gbk是中文編碼,是用的16個二進制代表一個漢字,有點浪費空間
uft-8也是中文編碼,也是用的16個二進制代表一個漢字,但是能用8位表示就用位了
4、請寫出“李傑”分別用utf-‐8和gbk編碼所占的位數
utf-8:6
gbk:4
a="李傑"
python3:
len(a) >>>>輸出:李 傑 2個字符
python2:
len(a) >>>輸出:六個亂碼 6個字節
5、Pyhton單行注釋和多行注釋分別用什么?
單行: #
多行: ''' ''' or """ """
6、聲明變量注意事項有那些?
聲明:變量只能由字母、下划線、數字組成,且數字不能開頭
盡量不適用python內置的名字(sum,class。。。。。)
7、如有一下變量n1 = 5,請使用int的提供的方法,得到該變量少可以用多少個二進制位表示?
3個二進制位
a=5 v=int.bit_length(a) print(v)
8、布爾值分別有什么?
True False
"" >>>False "有內容" >>> True
0 >>>False 其他 >>>True
######################################
a = 123 b="i"
bool(a) bool(b) >>>>>>布爾值
######################################
類型轉換: new = 要轉換類型(old)
例: 字符串轉換為數字
#字符串轉換成數字 其他類型轉換方式相同
a="123" b=int(a)
9、閱讀代碼,請寫出執行結果
a = "alex"
b = a.capitalize()
print(a)
print(b)
請寫出輸出結果:
"alex"
"Alex"
10、寫代碼,有如下變量,請按照要求實現每個功能
name = " witharusH"
a.移除name變量對應的值兩邊的空格,並輸出移除后的內容
name = " WitharusH" v = name.strip() #清楚字符串中左右兩邊的空格 中間的無法去除 print(name)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
WitharusH
b.判斷name變量對應的值是否以"wi" 開頭,並輸出結果
name = " WitharusH" v = name.startswith('Wi') #判斷字符串以什么開頭 print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
True
c.判斷name變量對應的值是否以 "H" 結尾,並輸出結果
name = " WitharusH" v = name.endswith('H') print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
True
d.將name變量對應的值中的“i”替換為 “p”,並輸出結果
name = " WitharusH" v = name.replace('i','p') print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
WptharusH
e.將name變量對應的值根據 “r” 分割,並輸出結果。
name = " WitharusH" v = name.split('r') print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
[' Witha', 'usH']
f.請問,上一題 e 分割之后得到值是什么類型(可選)?
列表
g.將name變量對應的值變大寫,並輸出結果
name = " WitharusH" v = name.upper() print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
WITHARUSH
h.將name變量對應的值變小寫,並輸出結果
name = " WitharusH" v = name.lower() print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
witharush
i.請輸出name變量對應的值的第2個字符?
name = " WitharusH" print(name[1]) #第二個字符是下標為1的字符
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
W
j.請輸出name變量對應的值的前3個字符?
方法一:
name=" WitharusH" n=0 while n <3: print(name[n]) n=n+1
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
W
i
方法二:
name=" WitharusH" print(name[0:3]) #切片
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
Wi
k.請輸出name變量對應的值的后2個字符?
name=" WitharusH" print(name[-2:])
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
sH
l.請輸出name變量對應的值中“r”所在索引位置?
name = " WitharusH"
for item in range(len(name)): if name[item] == "r": print(name[item], item) else: pass
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
r 6
m.獲取子序列,僅不包含后一個字符。如:oldboy則獲取oldbo;root則獲取roo
name = " WitharusH" print(name[0:-1])
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
Witharus
21、字符串是否可迭代對象?如可以請使用for循環每一個元素?
是;只要可執行for 循環就約等於可迭代對象
for item in "我最帥": print(item)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
我
最
帥
22、請用代碼實現:
a.利用下划線將列表的每一個元素拼接成字符串,li="alexericrain"
li = "alexericrain" v="_".join(li) print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
a_l_e_x_e_r_i_c_r_a_i_n
v="_".join("alexericrain") print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
a_l_e_x_e_r_i_c_r_a_i_n
b.利用下划線將列表的每一個元素拼接成字符串,li=['alex','eric','rain'](可選)
v="_".join(['alex','eric','rain']) print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
alex_eric_rain
23、Python2中的range和Python3中的range的區別?
2:在python2.7里面,range可以直接幫我們打印出來范圍內的數字,這個就有缺點了,比如我打印出來1萬個數字,它得先把一萬個數字打印出來,這個時候我們得等着了。並且占用很多內存
若想和python3里的range效果相同 >>>>>>用 xrange
3:range創建之后,並不會把這些數字打印出來,而是在什么時候調用的時候才去一個一個的打印,比如for循環調用的時候才會挨個打印,這樣就省內存了
#############################################
range(起始,終止,步長)
range(0,100,1) 從0到100
range(100,0,-1) 從100到0
#############################################
24、實現一個整數加法計算器:
如:
content = input('請輸入內容:') # 如: 5+9 或 5+ 9 或 5 + 9
content = input('請輸入內容:') # input輸入的值是字符串類型,先用split從‘+’號分隔出‘5’和‘9’ 再轉換int類型做加法 v1, v2 = content.split('+') v1 = int(v1) v2 = int(v2) print(v1 + v2)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
請輸入內容: 5 + 9
14
25、計算用戶輸入的內容中有幾個十進制小數?幾個字母?
如:
content = input('請輸入內容:') # 如:asduiaf878123jkjsfd-‐213928
num = 0 zimu = 0 content = input('請輸入內容: ') for item in content: if item.isdigit() == True: num += 1 elif item.isalpha() == True: zimu += 1 else: pass print('十進制數字共有: ', num) print('字母共有: ', zimu)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
請輸入內容: asdasdasdas-sda2165
十進制數字共有: 4
字母共有: 14
26、簡述 int 和 9 等數字 以及 str 和 "xxoo" 等字符串的關系?
類和對象的關系
int str 是不同類
9 ”xxoo"是根據類所創造的對象
27、制作趣味模板程序
需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實
如:敬愛可親的 xxx,最喜歡在 xxx 地方干 xxx
c = "帥氣的{0},最喜歡{1}" a = input(">>>") b = input(">>>") v = c.format(a, b) print(v)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
>>>Witharush
>>>Python
帥氣的Witharush,最喜歡Python
28、制作隨機驗證碼,不區分大小寫。
流程:
-‐ 用戶執行程序
-‐ 給用戶顯示需要輸入的驗證碼
-‐ 用戶輸入的值
用戶輸入的值和顯示的值相同時現實正確信息;否則繼續生成隨機驗證碼繼續等待用戶輸入
生成隨機驗證碼代碼示例:
方法1: 先判斷輸入的字母是否為大寫 若是 則判斷 若不是 先轉換成大寫再判斷

def check_code(): import random check_code = ''
for i in range(4): current = random.randrange(0, 4) if current != i: temp = chr(random.randint(65, 90)) else: temp = random.randint(0, 9) check_code += str(temp) return check_code while True: code = check_code() print(code) v = input(">>>") if v.isupper() == True: if v == code: print('正確') break
else: print('錯誤') elif v.isupper() == False: v = v.upper() if v == code: print('正確') break
else: print('錯誤')
方法2:2:直接把輸入的字母改成大寫的進行判斷,省了近一半的判斷代碼
def check_code(): import random check_code = '' for i in range(4): current = random.randrange(0, 4) if current != i: temp = chr(random.randint(65, 90)) else: temp = random.randint(0, 9) check_code += str(temp) return check_code while True: code = check_code() print(code) v = input(">>>") v = v.upper() if v == code: print('正確') break else: print('錯誤')
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
MPBN
>>>mpbn
正確
29、開發敏感詞語過濾程序,提示用戶輸入內容,如果用戶輸入的內容中包含特殊的字符:
方法一
a = input(">>>") a = a.replace("帥", "*") a = a.replace("逼", "*") print(a)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
>>>Witharush大帥逼
Witharush大**
方法二
while True: name = input('請輸入內容:') if "帥逼" in name in name: v = name.replace('帥逼', '**') print(v) exit() else: print(name)
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
請輸入內容:witharush大帥逼
witharush大**
30、制作表格
循環提示用戶輸入:用戶名、密碼、郵箱 (要求用戶輸入的長度不超過 20 個字符,如果超過則只有前 20 個字符有效)
如果用戶輸入 q 或 Q 表示不再繼續輸入,將用戶輸入的內容以表格形式打印
s = " " while True: name = input("請輸入名字") password = input("請輸入密碼") mail = input("請輸入郵箱") temp = "{0}\t{1}\t{2}\n" name1 = name[0:20] #只輸出前20個字符 password1 = password[0:20] mail1 = mail[0:20] v = temp.format(name1, password1, mail1) s = s + v if name == 'q' or name == 'Q': break print(s.expandtabs(20))
D:\PyProject\day11\venv\Scripts\python.exe D:/PyProject/day11/first_homework.py
請輸入名字a
請輸入密碼s
請輸入郵箱d
請輸入名字z
請輸入密碼x
請輸入郵箱c
請輸入名字q
請輸入密碼w
請輸入郵箱e
a s d
z x c
q w e