python ----字符串基礎練習題30道


1、執行python腳本的兩種方式
一種是點開始--運行--cmd 方式(這個操作需要先配置好環境變量path路徑)之后運行python
    二是直接進安裝目錄 運行tython軟件運行。pycharm
View Code

2、簡述位、字節的關系

位:計算機的計算單位,代表0或者1
字節:一字節相當於8位
View Code

3、簡述ascii、unicode、uft-8、gbk的關系
ascii 英文編碼,8個二進制位代表一個字母,總共可以有2的8次方減去1個等於255個

gbk是中文編碼,是用的16個二進制代表一個漢字,有點浪費空間

uft-8也是中文編碼,也是用的16個二進制代表一個漢字,但是能用8位表示就用位了
View Code


4、請寫出“李傑”分別用utf-8的gbk編碼所占的位數
len(bytes(name,encoding='utf-8'))
6
len(bytes(name,encoding='gbk'))  
4
View Code

5、python單行注釋和多行注釋分別用什么?
   單行注釋:#
   多行注釋  """ 開始    """結束
View Code

6、聲明變量注意事項有哪些?
   變量必須由數字,字母,下划線組成,不能以數字開頭,不能用關鍵字,還有系統內置函數。
View Code

7、如有以下變量n1 = 5,請使用int提供的方法,得到該變量最少可以用多少個二進制位表示
n1 = 5
v = n1.bit_length()
print (v) #  3
View Code

8、布爾值分別有什么?
True   False
View Code

9、閱讀代碼,請寫出執行結果
a = "gouguoqi"
b = a.capitalize()
print (a)
print (b)
 
        
gouguoqi
Gouguoqi
View Code

 


10、寫代碼,有如下變量,請按照要求實現每個功能
name = " gouguoQ "
a.移除name變量對應值的兩邊的空格,並輸出移除后的內容
v = name.strip()
print(v)
View Code

b.判斷name變量對應的值是否以"go"開頭,並輸出結果
v = name.startswith('go')
print(v)  #false
View Code

c.判斷name變量對應的值是否以"Q"結尾,並輸出結果
v = name.endswith('Q')
print(v)   #true
View Code

d.將name變量對應的值中的"o",替換為"p",並輸出結果
print name.replace("o","p")
View Code


e.將name變量對應的值根據"o"分割,並輸出結果
v = name.split('o')
print(v)  #此為不包括分隔符方式
View Code

f.請問上一題分割之后得到的值是什么類型(可選)
列表
View Code

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

v = name.upper()
print(v)
View Code

h.將name變量對應的值變成小寫,並輸出結果
v = name.lower()
print(v)
View Code

i.請輸出name變量對應的值的第二個字符?
print(name[1])
View Code

j.請輸出name變量對應的值的前三個字符
print(name[0:3])
View Code

h.請輸出name變量對應值的后2個字符
print(name[5:8])
View Code
name = " gouguoQ"
v = name[-2:]
print (v)
View Code

l.請輸出name變量中的值"Q的索引的位置
name = " gouguoQ"
v = len(name)
for n in range(v):
    if (name[n]) != "Q":
        continue
    else:
        print (n,name[n])  # 7  Q
View Code

m.獲取子序列,僅不包含最后一個字符,如:woaini則獲取woain root則獲取roo
name = " gouguoQ"
print (name[0:-1])
View Code

21、字符串是否可以迭代對象?如果可以請使用for循環每一個元素?
#可以
test = "中華人民共和國"
for ts in test :
    print(ts)
View Code

22、請用代碼實現

a.利用下划線將列表的每一個元素拼接成字符串 li = "gouguoqi"
li = "gouguoqi"
v = "_".join(li)
print (v)   #g_o_u_g_u_o_q_i
View Code

b.利用下划線將列表的每一個元素拼接成字符串 li = ['gou', 'guo', 'qi']
li = ['gou','guo','qi']
v = "_".join(li)
print (v)    #gou_guo_qi
View Code

23、在python2和3中range有啥區別
在python2.7里面,range可以直接幫我們打印出來范圍內的數字,這個就有缺點了,比如我打印出來1萬個數字,它得先把一萬個數字打印出來,這個時候我們得等着了。並且占用很多內存

 

在python3里面,range創建之后,並不會把這些數字打印出來,而是在什么時候調用的時候才去一個一個的打印,比如我for循環調用的時候才會挨個打印,這樣就省內存了
View Code


24、實現一個整數加法計算器:

content = input("請輸入內容:")
如:5 + 9或3 + 6或9008 + 2566
v =content.split('+')
n1 = int(v[0])
n2 = int(v[1])
n3 = n1 + n2
print (n1,'+',n2,'=',n3)
View Code

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

如: content = input ('請輸入內容:') #如:adsffjjhb87902kdjhs-+9802jkl

思路是:定義2基數都是0,一個是字母的一個是數字的

把字符串挨個打印出來,打印出來一個,判斷一個,如果是數字,就把數字的基數加一,如果是字母就把字母的基數加一,就不是數字也不是字母,就pass,最后打印出num  zimu

content = input('請輸入內容:計算十進制小數個數和字母個數 ')
num = 0
zimu = 0
for n in content:
    if n.isdecimal() == True:
        num+=1
#        print ('數字個數 ',(num))
    elif n.isalpha() == True:
        zimu+=1
#        print ('字母個數',zimu)
    else:
        pass
print ('數字個數 ',(num))
print ('字母個數',zimu)

C:\python35\python3.exe D:/pyproject/day11數據類型的方法/str-way.py

請輸入內容:計算十進制小數個數和字母個數 56gou<<<ijh78

數字個數  4

字母個數 6
View Code


26、簡述int和9等數字 以及 str和"xxoo" 等字符串的關系?
int就是數字類型,str就是字符串類型,xxoo就是字符串

int   str都是類,類型, 9 xxoo這些都是根據類創建的對象
View Code

27、制作趣味模板程序

需求:等待用戶輸入名字、地點、愛好、根據用戶的名字和愛好進行任意顯示

如:敬愛可親的xxxx,最喜歡在xxxx地方干xxxx

name = input("請輸入你的名字: ")
place = input("請輸入你經常去的地方: ")
like = input("請輸入你平時的愛好: ")
print('猥瑣的', name, ',', '最喜歡在', place, '地方', like)

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

28、制作隨機驗證碼,不區分大小寫

流程:

- 用戶執行程序

- 給用戶顯示需要輸入驗證碼

- 用戶輸入的值

用戶輸入的值和顯示的值相同時顯示正確的信息:否則繼續生成驗證碼等待用戶輸入

生成隨機驗證碼代碼示例:

def check_code():
    import random
    check_code = ''
    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)
        check_code += str(temp)
    return check_code
code = check_code()
print(code)


def check_code():
    import random
    check_code = ''
    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)
        check_code += str(temp)
    return check_code
code = check_code()
while True:
    code = check_code()
    print (code)
    v = input('請輸入驗證碼>>>>')
    v1 = v.upper()
    if v1 == code:
        print ('驗證碼正確')
        break
    else:
        pass
View Code

 


29、開發敏感詞語過濾程序,提示用戶輸入內容,如果用戶輸入的內容中包含特殊的字符:

如 "蒼井空" "東京熱" 則將內容替換為***

思路是:創建2個變量v1  v2,用find方法來判斷用戶輸入的字符串里面是否有敏感詞,有的話find的值就不是-1,只有find的值是-1的時候才是沒有敏感詞的

 

然后用if判斷,如果2個值都等於-1,才證明不包含定義的2個敏感詞,就正常打印,如果包含一個敏感詞或者是包含2個敏感詞都包含,就執行替換的操作

 

替換操作思路是,先替換蒼井空。替換完成之后,給它賦值一個新的變量名字,再把新的變量里面的東京熱再次替換下,最后打印出來最后的變量就是2者都替換過了的結果

shuru = input("請輸入字符串")
v = shuru.find('蒼井空')
v1 = shuru.find('東京熱')
if v == -1 and v1 == -1:
    print (shuru)
elif v != -1 or v1 != -1:
    shuru1 = shuru.replace('蒼井空','*****')
    shuru2 = shuru1.replace('東京熱','*****')
    print (shuru2)
# elif v1 != -1:
#     shuru.replace('東京熱','*****')
#     shuru1 = shuru.replace('東京熱','*****')
#     print (shuru1)
else:
    pass
View Code

用in來實現其實更簡單些,代碼如下

 

如果有敏感詞的話就題把敏感詞替換成*****並且趕緊退出,沒有敏感詞的話可以繼續輸入

while True:
    name = input('請輸入內容:')
    if "蒼井空" in name or "東京熱" in name:
        v = name.replace('蒼井空', '*****')
        v1 = v.replace('東京熱', '*****')
        print(v1)
        exit()
    else:
        print(name)
View Code
30、制作表格

循環提示用戶輸入:用戶名、密碼、郵箱(要求用戶輸入的長度不能超過20個字符,如果超過則只有前20個字符有效),如果用戶輸入q或者Q表示不再繼續輸入,將用戶的內容一表格形式打印
s = ""
while True:
    v1 = input('請輸入你的名字')
    v2 = input('請輸入你的密碼')
    v3 = input('請輸入你的郵箱')
    v4 = v1[0:19]
    v5 = v2[0:19]
    v6 = v3[0:19]
    test = "{0}\t{1}\t{2}\n"
    v = test.format(v4, v5, v6)
    b = v.expandtabs(20)
    s = s + b
    if v1 == "q" or v2 == "q" or v3 == "q" or v1 == "Q" or v2 == "Q" or v3 == "Q":
        break
print(s)

請輸入你的名字q

請輸入你的密碼ww

請輸入你的郵箱ee

aa                  bb                  cc

dd                  dd                  dd

ff                  ff                  ff

q                   ww                  ee
View Code

 


免責聲明!

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



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