python3練習題--字符串


1、執行 Python 腳本的兩種方式

交互式和腳本式,交互式就是在控制台輸入python后,進入到解釋器當中,然后進行簡單代碼的交互。腳本式即為文件后綴為.py結尾的文件。在python解釋器中可以運行;在python中主要使用文件執行。

2.簡述位、字節的關系

一個字節:占8位;即:1(byte)=8(bit)

3、簡述 ascii、unicode、utf-­‐8、gbk 的關系

ASCII 是最早定義的字符編碼,是美國定的字符編碼標准ASIIC編碼中一個字符的大小就是1個字節Unicode:將各國文字統一的編碼;utf-8:是unicode的升級版本,為了節省存儲空間。UTF-8根據實際使用情況調節存儲編碼的位數,一個中文3個字節;

GBK:GBK也是基於Unicode編碼的進一步優化,GBK的文字編碼是用雙字節來表示的,即不論中、英文字符均使用雙字節來表示。

4、請寫出 “李傑” 分別用 utf-­‐8  gbk 編碼所占的位數

UTF-8 :“李傑”=6個字節  GBK:”李傑”=4個字節

5、Pyhton 單行注釋和多行注釋分別用什么?

 單行注釋用 井號(#) ;多行注釋用:”””      “””開始和解釋分別用三個雙引號。

 6.聲明變量注意事項有那些?

     (1)不能使用數字開頭 (2)不能使用python關鍵字

7.如有一下變量 n1 = 5,請使用 int 的提供的方法,得到該變量最少可以用多少個二進制位表示?     

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

結果:3個二進制位表示

8.布爾值分別有什么?

True False

9.閱讀代碼,請寫出執行結果

 

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

 

alex    Alex

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

name = " aleX"

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

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('aleX','apeX'))

e. name 變量對應的值根據 “l” 分割,並輸出結果。

name = 'aleX'
print(name.split('l'))

f.請問,上一題 e  分割之后得到值是什么類型(可選)?

字符串類型

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

name = 'aleX'
print(name.upper())#全部變為大寫
print(name.lower())#全部變為小寫

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

name = 'aleX'
print(name[1:2])#切片

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

name = 'aleX'
for item in range(2,3,len(name)):
    print(item)
j.獲取子序列,僅不包含最后一個字符。如: oldboy 則獲取 oldbo; root 則獲取 roo
name = "aleX"
print(name[0:3])
print(name[0:-1])

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

是可迭代的對象

name = "aleX"
for item in name:
    print(item)

12.

請用代碼實現:a利用下划線將列表的每一個元素拼接成字符串,li  "alexericrain" 

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

li = "alexericrain"
v ="_".join(li)
print(v)

li = ['alex', 'eric', 'rain']
print("_".join(li))

 13.Python2 中的 range Python3 中的 range 的區別?

 

python2中的range返回的是一個列表

python3中的range返回的是一個迭代值

14.實現一個整數加法計算器:

 

如:

 

content = input('請輸入內容:') # 5+9 5+ 9 或 5 + 9

content = input("請輸入內容:").replace(" ","") # 去掉輸入內容中空格
lst = content.split("+")#使用+對字符串進行切割 得到的只有兩個元素的列表
a = lst[0]#獲取第一個元素
b = lst[1]#獲取第二個元素
print(int(a) + int(b)) #計算兩個數相加的和

15.計算用戶輸入的內容中有幾個十進制小數?幾個字母? 如:

content = input('請輸入內容:') #  如:asduiaf878123jkjsfd-­‐213928 

思路:定義2個基數都是0,一個是字母的一個是數字的
把字符串挨個打印出來,打印出來一個,判斷一個,如果是數字,就把數字的基數加一,
如果是字母就把字母的基數加一,就不是數字也不是字母,就pass,最后打印出num  num1

content = input("請輸入內容:").replace(" ","")
num = 0
num1 = 0
for n in content:
    if n.isdigit() == True: #判斷是是否是數字 也可以使用isdecimal()方法
        num+=1
    elif n.isalpha() == True: #判斷是否是字母
        num1+=1
    else:
        pass
print("數字個數:",(num), "字母個數:",(num1))

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

 

int,str,bool相當於類,而冒號后面的就相當於對象,實屬類和對象的關系;

17.制作趣味模板程序

需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實如:敬愛可親的 xxx,最喜歡在 xxx 地方干 xxx

test = "猥瑣的{0},最喜歡在{1}地方{2}"
name = input("請輸入你的名字: ")
place = input("請輸入你經常去的地方: ")
like = input("請輸入你平時的愛好: ")
v = test.format(name, place, like)
print(v)

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
while  True:
    code = check_code()
    print(code)
    v= input(">>>")
    v1 = code.upper()
    v2 = v.upper()
    if v1 == v2:
        print('驗證碼輸入成功')
        break
    else:
        print('驗證碼輸入錯誤')

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

 

search = input("請輸入內容>>>")
v = search.replace("蒼老師","***").replace("蒼井空","***").replace("東京熱","***")
print(v)

20.循環提示用戶輸入:用戶名、密碼、郵箱 

(要求用戶輸入的長度不超過 20 個字符,如果超過則只有前 20 個字符有效) 如果用戶輸入 q 或 Q 表示不再繼續輸入,將用戶輸入的內容以表格形式大隱
s = ""
while True:
    name = input("請輸入用戶名:")
    pwd = input("請輸入用戶密碼:")
    email = input("請輸入郵箱:")
    s1 = name.lower()
    s2 = pwd.lower()
    s3 = email.lower()
    if s1 != 'q' and s2 != 'q' and s3 != 'q':
        template = '{0}\t{1}\t{2}\n'
        v = template.format(s1, s2, s3)
        s += v
    else:
        break
print(s.expandtabs(20))

 

 


免責聲明!

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



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