鑑於半導體制造業進入了瓶頸,處於找不到工作的深深憂慮,故最近開始學習Python。發現魚C工作室的《零基礎入門學習python》教程很不錯,視頻講解生動,最主要的是他的課後練習很不錯。以下是我自己做的習題答案,不一定對,大家如果看到問題請提出來,互幫互助共同進步!謝謝!
第14課
測試題:
- 還記得如何定義一個跨越多行的字符串嗎(請至少寫出兩種實現的方法)?
答:
1. >>> str=”’
This is
the
answer 1
”’
單雙引號都可以
2.採用\換行
str=”this is \
the \
answer 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’)
有字符串:str1 =’魚C資源打包‘,請問如何提取出子字符串:’www.fishc.com’
答:>>> str1[16:29]
直接截取就好如果使用負數作爲索引值進行分片操作,按照第三題的要求你能夠正確目測出結果嗎?
答:
負索引值代表從後往前
所以str1[-45:-32]
還是第三題那個字符串,請問下邊語句會顯示什麼內容?
str1[20:-36]
複製代碼
答:fishc
Python似乎可以同時識別正負索引值指向的位置,並獲得子字符串,但前提是左邊位置在右邊的位置的左側,否則輸出爲空據說只有智商高於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