1. 程式人生 > >day11 基礎測試題(python概念、基本資料型別

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