Python練習題(基礎知識練習題(二))
1.執行Python腳本的兩種方式
(1).交互方式:啟動python解釋器,執行命令 (2).腳本方式:Python xxx.py 或者 chmod +x && ./xxx.py
2.簡述位、字節的關系
一個二進制位是計算機裏最小表示單元。 一個字節是計算機裏最小存儲單元。 二進制位=8bits=1Byte=1字節
3.簡述ascii、unicode、uft-8、gbk的關系
美國制定了一套字符編碼,對英語字符與二進制位之間的關系做了統一規定,這被稱為ASCII碼,由1個字節組成,最多支持2**8=256個字符 Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案,由2個字節組成,最多支持2**16=65536個字符 UTF-8最大的特點就是它是一種變長的編碼方式,由1-6個字節組成,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。 GBK是漢字國標擴展碼,由於GBK同時也涵蓋了Unicode所有CJK漢字,所以也可以和Unicode做一一對應。Windows默認編碼GBK,中文占2個字節。
4.請寫出“李傑”分別用utf-8和gbk編碼所占的位數
UTF-8中一個英文占1個字節,一個中文占3個字節,此處“李傑”占6個字節。 GBK中一個中文占2個字節,此處“李傑”占4個字符。
5.Python單行註釋和多行註釋分別用什麽?
單行註釋:#要註釋內容 多行註釋:"""要註釋內容""" 或者‘‘‘要註釋內容‘‘‘
6.聲明變量註意事項有哪些?
變量由數字、字母、下劃線組成 變量不能以數字開頭 變量不能使用關鍵字 變量區分大小寫
7.如有一個變量n1 = 5,請使用int提供的方法,得到該變量最少可以用多少個二進制位表示?
#!/usr/bin/env python #-*- encoding:utf-8 -*- n1 = 5 v = int.bit_length(n1) print(v)
8.布爾值分別有什麽?
True False "" => False #空字符串 "有內容" => True 0 => False 其他數字 => True
9.閱讀代碼,請寫出執行結果
a = "alex" b = a.capitalize() print(a) print(b)View Code
執行結果:
alex Alex
10.寫代碼,有如下變量,請按照要求實現每個功能
name=" aleX"
a.移除name變量對應的值兩邊的空格,並輸入移除後的內容
print(name.strip())
b.判斷name變量對應的值是否以"al"開頭,並輸出結果
print(name.startswith(‘al‘),name)
c.判斷name變量對應的值是否以"X"結尾,並輸出結果
print(name.endswith(‘X‘),name)
d.將name變量對應的值中的"l"替換為"p",並輸出結果
print(name.replace(‘l‘,‘p‘))
e.將name變量對應的值中的"l"分割,並輸出結果。
print(name.split(‘l‘))
f.請問,上一題l分割之後得到是什麽類型(可選)?
#列表
g.將name變量對應的值變大寫,並輸出結果
print(name.upper())
h.將name變量對應的值變小寫,並輸出結果
print(name.lower())
i.請輸出name變量對應的值的第2個字符?
print(name[1])
j.請輸出name變量對應的值的前3個字符?
print(name[:3])
k.請輸出name變量對應的值的後2個字符?
print(name[-2:]) #-1代表最後一個字符,-2代表倒數第二個字符
l.請輸出name變量對應的值中"e"所在的索引位置?
print(name.index(‘e‘))
m.獲取子序列,僅不包含最後一個字符。如:oldboy 則獲取oldbo;root則獲取roo
print(name.rstrip(name[-1:]))
11.字符串是否可叠代?如可以請使用 for 循環每一個元素?
#可叠代對象==可以被for進行循環獲取 name = "aleX" for i in name: print(i)
12.請用代碼實現:
a.利用下劃線將列表的每一個元素拼接成字符串,li = "alexericrain"
li = "alexericrain" print(‘_‘.join(li))
b.利用下劃線將列表的每一個元素拼接成字符串,li = [‘alex‘,‘eric‘,‘rain‘]
li = [‘alex‘,‘eric‘,‘rain‘] print(‘_‘.join(li))
13.Python2中的range和Python3中的range的區別?
Python2中的range返回的是一個列表,直接創建內容 Python3中的range返回的是一個叠代值,只有for循環時,內容才一個一個創建
14.實現一個整數加法計算器:
如:
content = input(‘請輸入內容:‘) #如:5+9
#方法一: content = input(‘請輸入內容:‘) print(eval(content)) #方法二: content = input(‘請輸入內容:‘) #5+9 n1,n2 = content.split(‘+‘) n1 = int(n1) n2 = int(n2) print(n1+n2)
15.計算用戶輸入的內容中有幾個十進制數?幾個字母?
如:
content=input(‘請輸入內容:‘) #如: asduiaf878123jkjsfd-213928
content = input(‘請輸入內容:‘) n = 0;s = 0 for i in range(len(content)): # print(content[i]) if content[i].isdecimal(): n += 1 if content[i].isalpha(): s += 1 print(‘十進制數的數量:‘,n,‘字母的數量:‘,s)
16.簡述int和9等數字以及str和"xxoo"等字符串的關系?
int,str 是類 0和"xxoo"是根據相應的類創建的對象
17.制作趣味模版程序
需求:等待用戶輸入名字、地點、愛好,更具用戶的名字和愛好進行任意顯示:
如:敬愛可親的xxx,最喜歡在xxx地方幹xxx
#方法一: name = input(‘請輸入名字:‘) where = input(‘請輸入地點:‘) love = input(‘請輸入愛好:‘) print("敬愛可親的%s,最喜歡在%s地方幹%s" %(name,where,love)) #方法二: name = input(‘請輸入名字:‘) where = input(‘請輸入地點:‘) love = input(‘請輸入愛好:‘) template = "敬愛可親的{0},最喜歡在{1}地方幹{2}" print(template.format(name,where,love))
18.制作隨機驗證碼,不區分大小寫。
流程:
- 用戶執行程序
- 給用戶顯示需要輸入的驗證碼
- 用戶輸入的值
用戶輸入的值和顯示的值相同時顯示正確信息;否則繼續生成隨機驗證碼繼續等待用戶輸入
生成隨機驗證碼事例:
def check_code(): import random checkcode = ‘‘ 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) checkcode += str(temp) return checkcode code = check_code() print(code)View Code
#!/usr/bin/env python # -*- encoding: utf8 -*- def check_code(): import random checkcode = ‘‘ 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) checkcode += str(temp) return checkcode while True: code = check_code() print(code) app = input("請輸入驗證碼:") if code.upper() == app.upper(): print("輸入正確") break else: print("輸入錯誤") s = input("是否重新輸入?") if s == "no": break else: continue
19.開發敏感詞語過濾程序,提示用戶輸入內容,如果用戶輸入的內容中包含特殊的字符:
如“蒼老師”“東京熱”,則將內容替換為***
v = input(">>>") v = v.replace("蒼老師","***") v = v.replace("東京熱","***") print(v)
20.制作表格
循環提示用戶輸入:用戶名、密碼、郵箱(要求用戶輸入的長度不超過20個字符,如果超過則只有前20個字符有效)
如果用戶輸入q或Q表示不再繼續輸入,將用戶輸入的內容以表格形式顯示。
#!/usr/bin/env python # -*- encoding: utf8 -*- s = "" while True: name = input("用戶名:") if name == "q" or name == "Q": break if len(name) >= 20: name = name[:20] passwd = input("密碼:") if len(passwd) >= 20: passwd = passwd[:20] email = input("郵箱:") if len(email) >= 20: email = email[:20] template = "{0}\t{1}\t{2}\n" v = template.format(name, passwd, email) s += v print(s.expandtabs(20))
Python練習題(基礎知識練習題(二))