Python基礎知識練習題(一)



 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('錯誤')
View Code

  方法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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM