python基礎知識練習題(一)


1、執行Python腳本的兩種方式:WIN+R,cmd,命令行窗口輸入:python  進入python模式輸入命令行直接執行命令;編寫以.py結尾的文件,寫入命令行,然后運行python.exe打開后綴為.py的文件。

2、簡述位、字節的關系:位,是指機器碼(二進制)中存儲時候的所占的位數;字節,是指編程過程中一個英文字母、數字、漢字或者符號所占的單位成為字節。1字節=1byte=8位=8bit

3、簡述ASCII、unicode、utf-8和gbk的關系:ASCII碼是英文字母和美國常用特殊字符所對應的二進制機器碼的對應表,一個字節用8位二進制表示;Unicode則是所有國家的語言和所有特殊字符所對應二進制機器碼的對應表,一個字節用32位二進制表示;utf-8也是所有國家的語言和所有特殊字符所對應二進制機器碼的對應表,一個字節字少用24位二進制表示,前面為0的位則自動省略;gbk碼是漢字和中國常用特殊字符所對應的二進制機器碼的對應表,一個字節用16位二進制表示。Unicode包括所有ASCII、utf-8和gbk,utf-8包括ASCII和gbk。

4、“李傑”用utf-8和gbk編碼所占的位數:6~8位,4位

5、Python單行注釋和多行注釋用:#,3個英文單引號或者3個英文單引號

6、變量注意事項:只能是英文、數字或下划線(_)組成,不能純數字,不能使用關鍵字和Python中內部函數,不能數字開頭,最好用英文具有實際意義的詞語定義變量。

7、若 變量n1=5,使用int提供的功能,得到該變量最少可以用多少個二進制位表示:

輸入代碼:

n1 = 5
v1=n1.bit_length()
print(v1)

8、布爾值bool分別為:True和False。

9、閱讀代碼寫出執行結果:

a = " alex "
b = a.capitalize()
print(a)
print(b)

結果:

alex
Alex

10、寫代碼,有如下變量,按要求實現每個功能

name = " aleX "

a,移除name變量對應的值兩邊的空格,並輸入移除后的內容

name = " aleX "
print(name.strip())

b、判斷name變量對應的值是否以“al”開頭,並輸出結果

name = " aleX "
print(name.startswith('al'))

c、判斷name變量對應的值是否以“X”結尾,並輸出結果

name = " aleX "
print(name.endswith('X'))

d、將name變量對應的值中的“l”替換為“p”,並輸出結果

name = " aleX "
print(name.replace('l','p'))

e、將name變量對應的值中的“l”分割,並輸出結果

name = " aleX "
print(name.split('l')) #輸出結果:[' a', 'eX ']
# 比較
print(name.partition('l')) #輸出結果:(' a', 'l', 'eX ')

f、請問,上一題 e  分割之后得到值是什么類型

 字符串類型,驗證代碼:

name = " aleX "
a = name.split('e ')
b = name.partition('e ')
print(type(a), type(b)) #結果:<class 'list'> <class 'tuple'>

g. 將 name 變量對應的值變大寫,並輸出結果

name = " aleX "
print(name.upper())

h. 將 name 變量對應的值變小寫,並輸出結果

name = " aleX "
print(name.lower())

i. 請輸出 name 變量對應的值的第 2 個字符?

name = " aleX "
print(name[1])

j. 請輸出 name 變量對應的值的前 3 個字符

name = " aleX "
index = 0
while index < 3:
print(name[index])
didex += 1 pass

k. 請輸出 name 變量對應的值的后 2 個字符?

name = " aleX "
print(name[-2:len(name)])

l. 請輸出 name 變量對應的值中 “e” 所在索引位置?

name = " aleX "
print(name.find('e'))

m. 獲取子序列,僅不包含最后一個字符。如oldboy 則獲取 oldbo, root 則獲取 roo

name = " aleX "
print(name[0:len(name)])

 11、字符串是否可迭代對象?如可以請使用 for 循環每一個元素?

是可迭代對象,迭代代碼:

str = 'jim'
for v in str:
  print(v)

12、請使用代碼實現:

a. 利用下划線將li的每一個字節拼接成字符串,li = "alexericrain"

li = "alexericrain"

print('_'.join(li))  #結果:a_l_e_x_e_r_i_c_r_a_i_n

b. 利用下划線將列表的每一個元素拼接成字符串,li = ['alex', 'eric', 'rain']

li = ['alex', 'eric', 'rain']

print('_'.join(li))  #結果:alex_eric_rain

13、Python2 中的 range 和 Python3 中的 range 的區別

Python2中:range直接生成了數據序列,這樣會占用很大的內存

(xrange跟python3中range功能一樣)

Python3中:range雖然也生出數列,但只有在取出某個數的時候才會生出,占用的內存比較小。

補充:

for i in range(0,2,1):
print(i)
''' 結果:
0
1
2
'''
for i in range(2,0,-1):
print(i)
''' 結果:
2
1
0
'''

14、實現一個整數加法計算器:
如:
content = input('請輸入內容:') ,如: 5+9 或 5+ 9 或 5 + 9

concent = input("請輸入加法內容例如2+1,按回車:")
v1, v2 = concent.split('+')
v1 = int(v1)
v2 = int(v2)
print(v1+v2)

15、計算用戶輸入的內容中有幾個十進制小數(數字)?幾個字母?
如:
content = input('請輸入內容:') # 如:asduiaf878123jkjsfd-21392

c1 = 0
c2 = 0
val = input("請輸入內容:")
for item in val:
if item.isdigit(): # 判定item是否為數字
c1 += 1
if item.isalpha(): # 判定item是否為字母
c2 += 1
print('包含 %d 個數字' % c1)
print('包含 %d 個字母' % c2)

16、簡述 int 和 9 等數字 以及 str 和 "xxoo" 等字符串的關系

類和對象的關系

17、制作趣味模板程序
需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實
如:敬愛可親的 xxx,最喜歡在 xxx 地方 xxx

template = "敬愛可親的{},最喜歡在{}地方{}"
name = input("名字:")
place = input("地方:")
thing = input("事情:")
v = template.format(name,place,thing)
print(v)

18、制作隨機驗證碼,不區分大小寫。
流程:
   - 用戶執行程序
   - 給用戶顯示需要輸入的驗證碼
   - 用戶輸入的值
用戶輸入的值和顯示的值相同時現實正確信息;否則繼續生成隨機驗證碼繼續 等待用戶輸入。生成隨機驗證碼代碼示例:

def check_code():
    import random
    for i in rang(4):
        current = random.randrange(0,4)
        if current != chr(random.randint(65,90))
        else:
              temp = random.randint(0,9)
        checkcode += str(temp)
    return checkcode

code = check_code()
print(code)
while True:
def check_code():
import random
checkcode = ''
for i in rang(4):
current = random.randrange(0,4)
if current != i:
temp = chr(random.randint(65,90))
else:
temp = random.randint(0,9)
checkcode += str(temp)
return checkcode

code = check_code()
print(code)
code = check_code()
v2 = print(code)
v1 = input('請輸入驗證碼:')
if v1.upper() == v2.upper():
print('輸入正確')
break
else:
print('請重新輸入驗證碼:')
# 輸出驗證碼部分代碼報錯

19、開發敏感詞語過濾程序,提示用戶輸入內容,如果用戶輸入的內容中包含特殊的字符:
如 "蒼老師" "東京熱",則將內容替換為 ***

pd = True
while pd:
inp1 = input("請輸入信息,如果想結束程序請輸入q或者Q回車即可:")
if inp1 == "q" or inp1 == "Q":
pd = False
else:
v3 = inp1.replace("東京熱", "***")
v3 = v3.replace("蒼老師", '***')
print(v3)

20、制作表格
循環提示用戶輸入:用戶名、密碼、郵箱 (要求用戶輸入的長度不超過 20 個字符,如果超過則只有前 20 個字符有效),如果用戶輸入 q 或 Q 表示不再繼續輸入,將用戶輸入的內容以表格形式打印

pd = True
sc="用戶名\t密碼\t郵箱\n"
while pd:
name = input("請輸入用戶名:")
passwd = input("請輸入密碼:")
email = input("請輸入mail:")
if name == "q" or name == "Q":
break
else:
b1 = "{0}\t{1}\t{2}\n"
if len(name) > 20:
b2 = b1.format(name[0:20], passwd, email)
elif len(passwd)>20 :
b2 = b1.format(name, passwd[0:20], email)
elif len(email)>20 :
b2 = b1.format(name, passwd, email[0:20])
else:
b2 = b1.format(name, passwd, email)
sc=sc+b2
sc = sc.expandtabs(20)
print(sc)

 


免責聲明!

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



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