1. 程式人生 > >Python練習題(基礎知識練習題(二))

Python練習題(基礎知識練習題(二))

strip() 哪些 字符 單行註釋 alt imp exe 列表 表格形式

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練習題(基礎知識練習題(二))