【魚C·零基礎入門學習Python】課後習題答案 第14課

鑑於半導體制造業進入了瓶頸,處於找不到工作的深深憂慮,故最近開始學習Python。發現魚C工作室的《零基礎入門學習python》教程很不錯,視頻講解生動,最主要的是他的課後練習很不錯。以下是我自己做的習題答案,不一定對,大家如果看到問題請提出來,互幫互助共同進步!謝謝!

第14課

測試題:

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

答:
1. >>> str=”’
This is
the
answer 1
”’
單雙引號都可以
2.採用\換行
str=”this is \
the \
answer 2”

  1. 三引號字符串通常我們用於做什麼使用?
    答:
    用於字符串跨行或者註釋跨行。

  2. file1 = open(‘C:\windows\temp\readme.txt’, ‘r’) 表示以只讀方式打開“C:\windows\temp\readme.txt”這個文本文件,但事實上這個語句會報錯,知道爲什麼嗎?你會如何修改?
    答:
    問題出在反斜槓上,因爲反斜槓與後面的字母會構成轉義,導致字符串的意義發生轉變,所以路徑無效,爲了解決此問題,使用雙斜槓使反斜槓保持本意即可。
    file1 =open(‘C:\windows\temp\readme.txt’, ‘r’)

或者使用原始字符串操作符r或者R註明即可
file1 = open(r’C:\windows\temp\readme.txt’,’r’)

  1. 有字符串:str1 =’魚C資源打包‘,請問如何提取出子字符串:’www.fishc.com’
    答:>>> str1[16:29]
    直接截取就好

  2. 如果使用負數作爲索引值進行分片操作,按照第三題的要求你能夠正確目測出結果嗎?
    答:
    負索引值代表從後往前
    所以

    str1[-45:-32]

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

  4. str1[20:-36]
    複製代碼
    答:fishc
    Python似乎可以同時識別正負索引值指向的位置,並獲得子字符串,但前提是左邊位置在右邊的位置的左側,否則輸出爲空

  5. 據說只有智商高於150的魚油才能解開這個字符串(還原爲有意義的字符串):str1 = ‘i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99’
    答:str1[::3]
    注意幾個字符串讀取操作寫法的區別
    Str[1:3]:取[1:3)的元素
    Str[:3]取從頭到2的元素。空着代表到底
    Str[::3]指每三個取一次元素,與上面不同!
    注意,但是Str[3::]卻與Str[3:]意義一致

7。動手題:題目和代碼如下

    # 密碼安全性檢查代碼
    #
    # 低級密碼要求:
    #   1. 密碼由單純的數字或字母組成
    #   2. 密碼長度小於等於8位
    #
    # 中級密碼要求:
    #   1. 密碼必須由數字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)任意兩種組合
    #   2. 密碼長度不能低於8位
    #
    # 高級密碼要求:
    #   1. 密碼必須由數字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}|\)三種組合
    #   2. 密碼只能由字母開頭
    #   3. 密碼長度不能低於16位
    #################註釋分行####################

symbols = r'''`!@#$%^&*()_+-=/*{}[]\|'";:/?,.<>'''
chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
nums = '0123456789'
#input password
passwd=input('please input your password for check:')
#check length
pswlen=len(passwd)
#false while null
while(passwd.isspace() or pswlen==0):
    passwd=input('the password includes space or is Null,please re-enter:')

#判斷長度
if pswlen <= 8:
    flag_len=0
elif 8<pswlen and pswlen<16:
    flag_len=1
else:
    flag_len=2

flag_type=0
#判斷含有幾種組合
for each in passwd:
    if each in nums:
        flag_type+=1
        break

for each in passwd:
    if each in chars:
        flag_type+=1
        break

for each in passwd:
    if each in symbols:
        flag_type+=1
        break
while 1:
    print("your password security level is:")
    if flag_len==0 or flag_type==1:
        print("low\n")
    elif flag_len==1 or flag_type==2:
        print("medium\n")
    else:
        print("high\nIt is safe enough!")
        break

    print("請按以下方式提升您的密碼安全級別:\n\
     \t1. 密碼必須由數字、字母及特殊字符三種組合\n\
     \t2. 密碼只能由字母開頭\n\
     \t3. 密碼長度不能低於16位'")
    break
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章