day11 基礎測試題(python概念、基本資料型別
1.執行python指令碼的兩種方式
第一種:通過在cmd中輸入python進入直譯器;
第二種:python 檔案路徑
在linux下:給檔案賦予可執行許可權 ./1.py 執行它
2.簡述位、位元組的關係
8位等於一個位元組
儲存的時候以位為單位,計算機處理時以自己為單位
3.簡述 ascii、unicode、utf-‐8、gbk 的關係
最開始是ascii碼,然後出現unicode,然後每個國家有自己的編碼,utf-8作為unicode的壓縮版
4、請寫出 “李傑” 分別用 utf-8 和 gbk 編碼所佔的位數
utf-8:6
gbk:4
a="李傑"
len(a) #2,在python3中,計算字元
len(a) #6,在python2.7中,計算位元組
5、Pyhton 單行註釋和多行註釋分別用什麼?
單行註釋 #
多行註釋(塊註釋)
"""
註釋的內容
"""
6.宣告變數注意事項有那些?
數字字母下劃線,一定不能與關鍵字重複,推薦不能用python內建的東西,這樣會把原來的功能覆蓋掉。
7、如有一下變數 n1 = 5,請使用 int 的提供的方法,得到該變數最少可以用多少個二進位制位表示?
利用魔法bit_length
程式碼如下:
n1 = 5
print(n1.bit_length())
8.布林值分別有什麼?
True False
#空字串 "" => 假
#非空字串 " " =>真
#數字0 假
#其他 真
- 字串轉換為數字
a = "123"
b = int(a)
- 數字轉換為字串
a = 123
b = str(a)
- 把一個數字轉換為bool值
a = 123
b = bool(a)
ps:當b為一個字串時,想知道他是真是假也可以用bool() 的方法來檢視
9、閱讀程式碼,請寫出執行結果
a = "alex"
b = a.capitalize()
print(a)
print(b)
請寫出輸出結果:
alex
Alex ##首字母大寫,upper魔法的功能所有字母大寫
10、寫程式碼,有如下變數,請按照要求實現每個功能
name = " aleX"
a. 移除 name 變數對應的值兩邊的空格,並輸入移除後的內容
b. 判斷 name 變數對應的值是否以 "al" 開頭,並輸出結果
c. 判斷 name 變數對應的值是否以 "X" 結尾,並輸出結果
d. 將 name 變數對應的值中的 “l” 替換為 “p”,並輸出結果
e. 將 name 變數對應的值根據 “l” 分割,並輸出結果。
f. 請問,上一題 e 分割之後得到值是什麼型別(可選)?
g. 將 name 變數對應的值變大寫,並輸出結果
h. 將 name 變數對應的值變小寫,並輸出結果
i. 請輸出 name 變數對應的值的第 2 個字元?
j. 請輸出 name 變數對應的值的前 3 個字元?
k. 請輸出 name 變數對應的值的後 2 個字元?
l. 請輸出 name 變數對應的值中 “e” 所在索引位置?
m. 獲取子序列,僅不包含最後一個字元。如: oldboy 則獲取 oldbo; root 則獲取 roo
提示:使用索引和切片完成
name[1:-1]
name[1:-2]
11、字串是否可迭代物件?如可以請使用 for 迴圈每一個元素?
如果某一個東西可以被for迴圈,那你現在可以稱他為可迭代物件
for i in 值
print(i)
#類
str 等各種方法
#物件,根據str型別建立的一個物件s1
s1 = 'alex'
s2 = 'hello'
12、請用程式碼實現:
a. 利用下劃線將列表的每一個元素拼接成字串,li = "alexericrain"
b. 利用下劃線將列表的每一個元素拼接成字串,li = ['alex', 'eric', 'rain'] (可選)
v = "_".join(alexericrain)
v = "_".join(['alex','eric']) ##列表中的每一個元素用下劃線連線起來
輸出:alex_eric
13、Python2 中的 range 和 Python3 中的 range 的區別?
python2:
rang 立即建立
xrange for迴圈時才會一個一個建立
python3:
range for迴圈時才會一個一個建立
for i in range(0,100,1): #1為步長,輸出0 1 2 3 4......
print(i)
for i in range(100,0,-1): #-1為步長,輸出100 99 98......
print(i)
14、實現一個整數加法計算器:
如:
content = input('請輸入內容:') # 如: 5+9 或 5+9 或 5+9
input: 字串 "5+9"
value = "5+9"
v1,v2 = value.split('+') ##以+為標誌分割該字串,+前邊的字元賦值給v1,後邊的賦值給v2,但v1、v2都是字串型別
v1 = int(v1)
v2 = int(v2)
v1 + v2
15、計算使用者輸入的內容中有幾個十進位制小數?幾個字母?
如:
content = input('請輸入內容:') # 如:asduiaf878123jkjsfd-‐213928
c1 = 0
c2 = 0
val = input(">>>")
for item in val:
if item.isalpha():
c1 += 1
elif item.isnumeric():
c2 += 1
print(c1)
print(c2)
16、簡述 int 和 9 等數字 以及 str 和 "xxoo" 等字串的關係?
類和物件的關係
17、製作趣味模板程式
需求:等待使用者輸入名字、地點、愛好,根據使用者的名字和愛好進行任意現實
如:敬愛可親的 xxx,最喜歡在 xxx 地方幹 xxx
template = "我的名字是{0},我{1}歲"
name = input('>>>')
v = template.format(name,18)
print(v)
18、製作隨機驗證碼,不區分大小寫。
流程:
-‐ 使用者執行程式
-‐ 給使用者顯示需要輸入的驗證碼
-‐ 使用者輸入的值
使用者輸入的值和顯示的值相同時現實正確資訊;否則繼續生成隨機驗證碼繼續等待使用者輸入
生成隨機驗證碼程式碼示例:
while True:
code = check_code() ##這個code生成的程式碼在題目的圖中有,直接使用即可
print(code)
v = input('>>>') ##使用者輸入,把所有的字母全部變成大寫或者小寫後即可比較
19、開發敏感詞語過濾程式,提示使用者輸入內容,如果使用者輸入的內容中包含特殊的字元:
如 "蒼老師" "東京熱",則將內容替換為 ***
v = "asdfg"
v = v.replace('s','****')
v = v.replace('a','**')
print(v)
20、製作表格
如果使用者輸入 q 或 Q 表示不再繼續輸入,將使用者輸入的內容以表格形式列印
迴圈提示使用者輸入:使用者名稱、密碼、郵箱 (要求使用者輸入的長度不超過 20 個字元,如果超過則只有前 20 個字元有效)
使用的功能:expandtabs
len
[0:20]
s = "" ##定義s為空字串
while True:
v1 = input('>>')
if v1 == "q":
break
else:
pass
v2 = input('>>')
v3 = input('>>')
template = "{0}\t{1}\t{2}\n"
v = template.format(v1,v2,v3)
s = s + v
print(s.expandtabs(20))
補充:
1. python中各種轉義字元 \n \t \v等等
https://blog.csdn.net/xufangfang5206/article/details/80030300
2.切片與索引
https://www.cnblogs.com/luruiyuan/p/5926133.html
3.面向物件理解
https://www.cnblogs.com/chengd/articles/7287528.html