python開發基礎02-字符串操做方法練習題

一、執行 Python 腳本的兩種方式 python

   python解釋器 py文件  #!/usr/bin/env pythonlinux

  進入python解釋器,便捷命令並執行api

  pycharm或其餘pythonIDE網絡

  shebang編寫正確,py文件添加可執行權限,linux下執行./文件名.py
二、簡述位、字節的關係 app

     1字節=8位
三、簡述 ascii、unicode、utf-­八、gbk 的關係 dom

  ascii 是最先美國用的標準信息交換碼,把全部的字母的大小寫,各類符號用 二進制來表示,共有256中,加入些拉丁文等字符,1bytes表明一個字符ide

  Unicode是爲了統一世界各國語言的不用,統一用2個bytes表明一個字符,能夠表達2**16=65556個,稱爲萬國語言,特色:速度快,但浪費空間。ui

Unicode能夠用在內存處理中,兼容了utf-8,gbk,ASCII,
utf-8 爲了改變Unicode的這種缺點,規定1個英文字符用1個字節表示, 1箇中文字符用3個字節表示,特色;節省空間,速度慢,用在硬盤數據傳輸,網絡數據傳輸,相比硬盤和網絡速度,體現不出來的
gbk  是漢字內碼擴展規範 ,用2個字節表明一個字符

四、請寫出  「李傑」  分別用 utf-­8 和 gbk 編碼所佔的位數 編碼

  utf-8 6字節,48位spa

  gbk 4字節,32位
五、Pyhton 單行註釋和多行註釋分別用什麼?

  #

  ''' 或"""

  註釋內容  

  ''' 或"""

  pycharm註釋快捷鍵:crtl+/

六、聲明變量注意事項有那些?

  (1.) 變量名只能是 字母、數字或下劃線的任意組合

  (2.)變量名的第一個字符不能是數字
  (3.)如下關鍵字不能聲明爲變量名
  ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']


七、若有一下變量 n1  =  5,請使用 int 的提供的方法,獲得該變量最少能夠用多少個二進制位表示?

  print(int(n1).bit_length()); #3個

 

  101
八、布爾值分別有什麼?

  真:True   1 假:False  0
九、閱讀代碼,請寫出執行結果
    
    a  =  "alex"
    b  =  a.capitalize()
    print(a)
    print(b)
    請寫出輸出結果:

  alex

  Alex
十、寫代碼,有以下變量,請按照要求實現每一個功能
    
    name  =  "  aleX"
    a.  移除 name 變量對應的值兩邊的空格,並輸入移除後的內容

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

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

    d.  將 name 變量對應的值中的  「l」  替換爲  「p」 ,並輸出結果
    e.  將 name 變量對應的值根據  「l」  分割,並輸出結果。      
    f.  請問,上一題  e  分割以後獲得值是什麼類型(可選)?
    g.  將 name 變量對應的值變大寫,並輸出結果
    h.  將 name 變量對應的值變小寫,並輸出結果
    i.  請輸出 name 變量對應的值的第 2 個字符?
    j.  請輸出 name 變量對應的值的前 3 個字符?
    k.  請輸出 name 變量對應的值的後 2 個字符?
    l.  請輸出 name 變量對應的值中  「e」  所在索引位置?
    m.  獲取子序列,僅不包含最後一個字符。如:  oldboy  則獲取  oldbo;  root  則獲取  roo

name  =  "  aleX"
print(name.strip())
print(name.startswith("al"))
print(name.endswith("X"))
print(name.replace("l","p"))
print(name.split("l"))
print(type(name.split("l")))
print(name.upper())
print(name.lower())
print(name[1])
print(name[:3])
print(name[-2:])
print(name.index("e"))
print(name[:-1])
View Code

 

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

  

text = "diedaishuchu"
for t in text:
    print(t)
View Code

 

2二、請用代碼實現:
    a.  利用下劃線將列表的每個元素拼接成字符串,li  =  "alexericrain"
    b.  利用下劃線將列表的每個元素拼接成字符串,li  =  ['alex',  'eric',  'rain']    (可選)

 

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

 


2三、Python2 中的 range 和 Python3 中的 range 的區別?

  python2預先將range全部內容寫入內存,內存使用多

  python3不會將全部內容所有寫入內存,動態回收內存
2四、實現一個整數加法計算器:
    如:
        content  =  input('請輸入內容:')    #  如:  5+9  或  5+  9  或  5  +  9  

   

content  =  input('請輸入內容:')
li=content.split("+")
num = 0
sum_num = 0
for i in range(len(li)):
    num = int(li[i].strip())
    sum_num += num
print(sum_num)
View Code

 


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

content = input("請輸入內容:")
int_num = 0
str_num = 0
for n in content:
    if n in "0123456789":
        int_num += 1
    if n in "abcdefghijklmnopqrstuvwsyz":
        str_num += 1
print("數字個數爲:",int_num,"字母個數爲:",str_num)
View Code

 


2六、簡述  int  和  9  等數字   以及   str  和  "xxoo"  等字符串的關係?

int整數型可作運算
str爲字符串不能運算
整數轉換成字符串
num = 9

str = str(num)

str="9"

num=int(str)
2七、製做趣味模板程序
    需求:等待用戶輸入名字、地點、愛好,根據用戶的名字和愛好進行任意現實
         
         如:敬愛可親的 xxx,最喜歡在 xxx 地方幹 xxx
  

name = input("姓名:")
place = input("地點:")
like = input("愛好:")
print("敬愛可親的"+name+",最喜歡在"+place+""+like)
print('敬愛可親的%s,最喜歡在%s作%s'%(name,place,like))
View Code

 


2八、製做隨機驗證碼,不區分大小寫。
    流程:
        -­‐  用戶執行程序
        -­‐  給用戶顯示須要輸入的驗證碼
        -­‐  用戶輸入的值
            用戶輸入的值和顯示的值相同時現實正確信息;不然繼續生成隨機驗證碼繼續等待用戶輸入
        生成隨機驗證碼代碼示例:

 

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()
    user_code = input("請輸入驗證碼%s:"%(code))
    if user_code.lower() == code.lower():
        print("輸入正確!")
        break
    else:
        continue
View Code

 或使用casefold()

#     user_code = input("請輸入驗證碼:").casefold()
# code = code.casefold()

 

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

text = input("請輸入內容:")
mingan = []
mingan = ['蒼老師','東京熱']
for i in mingan:
    # print(i)
    while text.find(i) != -1:
        #text = "***"
        #或替換對應內容
        text = text.replace(i,"***")
        break
    else:
        continue
else:
    print(text)
View Code

 

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

v = []
while True:
    username = input("請輸入用戶名:")
    password = input("請輸入密碼:")
    email= input("請輸入郵箱:")
    user_name = username[:20]
    pass_word = password[:20]
    email20 = email[:20]
    n = {"name": user_name, "pwd": pass_word, "mail": email20}
    v.append(n)
    back = input("按q/Q退出打印,任意鍵繼續輸入")
    if back.lower() == "q":
        user_str = "用戶名\t密碼\t郵箱"
        print(user_str.expandtabs(20))
        for lines in v:
            user_str = "{0}\t{1}\t{2}".format(lines["name"], lines["pwd"], lines["mail"])
            print(user_str.expandtabs(20))
        break
View Code
相關文章
相關標籤/搜索