1. 程式人生 > >【零基礎】Python3學習課後練習題(十二)

【零基礎】Python3學習課後練習題(十二)

本文是跟著魚C論壇小甲魚零基礎學習Python3的視訊學習的,課後題也是跟隨每一課所附屬的題目來做的,根據自己的理解和標準答案記錄的筆記。

第十四課

測試題:

0.如何定義一個跨越多行的字串嗎(請至少寫出兩種實現的方法)?

答:

方法一:使用三引號 ''' ''' 

>>> str1 = '''鵝,鵝,鵝,
曲項向天歌。
白毛浮綠水,
紅掌撥清波。'''
>>> str1
'鵝,鵝,鵝,\n曲項向天歌。\n白毛浮綠水,\n紅掌撥清波。'
>>> print(str1)
鵝,鵝,鵝,
曲項向天歌。
白毛浮綠水,
紅掌撥清波。

方法二:在每一句結尾處使用反斜槓(最後一句不需要加)

>>> str2 = '鵝,鵝,鵝,\
曲項向天歌。\
白毛浮綠水,\
紅掌撥清波。'
>>> str2
'鵝,鵝,鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。'
>>> print(str2)
鵝,鵝,鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。
>>> 

方法三:每句話使用字串定義然後用元組括起來

>>> str3 = ('鵝,鵝,鵝,'
'曲項向天歌。'
'白毛浮綠水,'
'紅掌撥清波。')
>>> str3
'鵝,鵝,鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。'
>>> print(str3)
鵝,鵝,鵝,曲項向天歌。白毛浮綠水,紅掌撥清波。
>>> 

1.三引號字串通常我們用於做什麼使用?

答:在沒有進行賦值的情況下,三引號字元通常在做跨行解釋的時候使用。

2. file1 = open(‘C:\windows\temp\readme.txt’, ‘r’) 表示以只讀方式開啟“C:\windows\temp\readme.txt”這個文字檔案,但事實上這個語句會報錯,知道為什麼嗎?你會如何修改?

答:因為字串 'C:\windows\temp\readme.txt' 中包含有 \t 表示TAB \r 表示回車沒有對其進行轉義,所以才會報錯。

修改方法有兩種:

#在所有單反斜槓的地方增加一個反斜槓進行轉義

'C:\\windows\\temp\\readme.txt'

#使用原始字串命令對字串進行整體轉義

r'C:\windows\temp\readme.txt'

3. 有字串:str1 = '<a href ="http://www.fishc.com/dvd"target="_blank">魚C資源打包</a>',請問如何提取出子字串:'www.fishc.com'

答:

>>> str1 = '<a href ="http://www.fishc.com/dvd"target="_blank">魚C資源打包</a>'
>>> str1[17:30]
'www.fishc.com'

4.如果使用負數作為索引值進行分片操作,按照第三題的要求你能夠正確目測出結果嗎?

答:

>>> str1 = '<a href ="http://www.fishc.com/dvd"target="_blank">魚C資源打包</a>'
>>> str1[-44:-31]
'www.fishc.com'

5.還是第三題那個字串,請問下邊語句會顯示什麼內容?

str1[21:-35]

答:‘fishc’

6.將下列字串還原為有意義的字串:

str1 = ‘i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’

答:str1[::3] 。

>>> str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
>>> str1[::3]
'ilovefishc.com'
>>> 

動動手:

0.請寫一個密碼安全性檢查的指令碼程式碼:check.py

低階密碼要求:

# 1. 密碼由單純的數字或字母組成

# 2. 密碼長度小於等於8位

# 中級密碼要求:

# 1. 密碼必須由數字、字母或特殊字元(僅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合

# 2. 密碼長度不能低於8位

# 高階密碼要求:

# 1. 密碼必須由數字、字母及特殊字元(僅限:[email protected]#$%^&*()_=-/,.?<>;:[]{}|\)三種組合

# 2. 密碼只能由字母開頭

# 3. 密碼長度不能低於16位

答:

spchars = '[email protected]#$%^&*()_=-/,\.?<>;:[]{}|'
numbers = '0123456789'
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST'
choose = 'y'
print('=======RonyLance密碼安全級別檢測=======')
#開啟迴圈保障測試有迴圈執行選擇
while choose == 'y':
    password = input('請輸入您的密碼進行檢查:')
    length = len(password)
    #空白監測提示
    while password.isspace() or length == 0:
        password = input('您輸入的密碼為空(或空格),請重新輸入:')
        length = len(password)
    #長度檢測
    if length <= 8:
            flag_len = 1
    elif 8 < length < 16:
            flag_len = 2
    else:
            flag_len = 3
    #屬性檢測
    flag_each = 0
    for each in password:
        if each in spchars:
              flag_each += 1
              break
    for each in password:
        if each in numbers:
            flag_each += 1
            break
    for each in password:
        if each in chars:
            flag_each += 1
            break
    #級別測定
    while 1:
        print('您的密碼安全級別為:', end='')
        if flag_len == 1 or flag_each == 1:
            print('低階')
        elif flag_len == 2 or flag_each == 2:
            print('中級')
        elif flag_len == 3 or flag_each == 3:
            print('高階')
        else:
            print('您的密碼不符合規範,請按照標準重新設定密碼。')
        break
    choose = input('如需繼續進行測試請輸入"y"繼續:')