@2020.3.4
Python語法入門-變數和基本資料型別-練習一
習題
#1、病毒程式需要定期將監控到的資料寫入日志檔案,請記錄下日志檔案路徑C:\a\b\c\adhsvc.dll.system32,方便后期處理
>>> >>> logePath ='C:/a/b/c/adhsvc.dll.system32' >>> print(logePath) C:/a/b/c/adhsvc.dll.system32 >>>
#2、病毒程式在上傳檔案時,發送的報頭資料里需要包含檔案資訊:檔案名a.txt、大小360,請記錄下檔案資訊
>>> fileMessage={'檔案名':'a.txt','大小':360}
>>> print(fileMessage)
{'檔案名': 'a.txt', '大小': 360}
#3、程式運行程序中有一段錯誤日志需要記錄下來,錯誤日志為"上傳檔案失敗"
>>> >>> wrongLoge='上傳檔案失敗' >>> print(wrongLoge) 上傳檔案失敗 >>>
#4、假設我收到一條資訊要記錄,資訊為中病毒客戶端的資訊"[2020-02-18-17:00:48] 癩蛤蟆病毒感染者-> 80.82.70.187:33649 正在上傳資料"
>>> messsge='[2020-02-18-17:00:48] 癩蛤蟆病毒感染者-> 80.82.70.187:33649 正在上傳資料' >>> print(messsge) [2020-02-18-17:00:48] 癩蛤蟆病毒感染者-> 80.82.70.187:33649 正在上傳資料
#5、把服務端ip地址存放下來,ip地址為10.0.10.11
>>> ip='10.0.10.11' >>> print(ip) 10.0.10.11
#6、病毒程式需要每隔3秒才運行一次,請記錄下這個時間間隔
>>> >>> time=3 >>> print(time) 3 >>>
# 二:嵌套取值操作
#1、針對串列
students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]]
請取出第一個學生的第一個愛好
>>> students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]] >>> print(students_info[0][2][0]) #[0]才是串列中的第一個資料 play
#2、針對字典
字典嵌套字典:
info={
'name':'egon',
'hobbies':['play','sleep'],
'company_info':{
'name':'Oldboy',
'type':'education',
'emp_num':40,
}
}
請取出取公司名
>>> >>> info={ 'name':'egon', 'hobbies':['play','sleep'], 'company_info':{ 'name':'Oldboy', 'type':'education', 'emp_num':40, } } >>> print(info['company_info']['name'])#取出嵌套字典中的公司名 Oldboy >>>
#3、針對下述型別
串列嵌套字典:
students=[
{'name':'alex','age':38,'hobbies':['play','sleep']},
{'name':'egon','age':18,'hobbies':['read','sleep']},
{'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']},
]
取第二個學生的第二個愛好
>>> >>> students=[ {'name':'alex','age':38,'hobbies':['play','sleep']}, {'name':'egon','age':18,'hobbies':['read','sleep']}, {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']}, ] >>> print(students[1]['hobbies'][1]) sleep >>>
【修改版@2020-7-7】
##### 作業思路:如何選擇合適的型別來記錄狀態??? ## 1、選取的型別是否可以明確標識事物的狀態 ##### 2、存不是目的,存的目的是為了日后取出來用,并且方便的用 ##### 3、把自己想象成一臺計算機,如果我是計算機, ##### 我會如何以何種形式把事物的狀態記到腦子里 ##### 然后再去python中找相應的資料型別來讓計算機像自己一樣去記下事物的狀態 ##### ps:認真讀題,需要自己從題目中分析出應該存盤的狀態,然后選擇合適的型別加以存盤 #1、病毒程式需要定期將監控到的資料寫入日志檔案,請記錄下日志檔案路徑C:\a\b\c\adhsvc.dll.system32,方便后期處理 # 轉義字符 \ blog_path = r'C:\a\b\c\adhsvc.dll.system32' blog_path = 'C:\\a\\b\\c\\adhsvc.dll.system32' #2、病毒程式在上傳檔案時,發送的報頭資料里需要包含檔案資訊:檔案名a.txt、大小360,請記錄下檔案資訊 # 字典 file_info = {'檔案名': 'a.txt','檔案大小':360} #3、程式運行程序中有一段錯誤日志需要記錄下來,錯誤日志為"上傳檔案失敗" # 字串 blog_error = '上傳檔案失敗' #4、假設我收到一條資訊要記錄,資訊為中病毒客戶端的資訊"[2020-02-18-17:00:48] 癩蛤蟆病毒感染者-> 80.82.70.187:33649 正在上傳資料" alert = '[2020-02-18-17:00:48] 癩蛤蟆病毒感染者-> 80.82.70.187:33649 正在上傳資料' # _____________________________________________ # %s 占位 # 一一對應,不可多 不可少 msg = '[%s] 癩蛤蟆病毒感染者-> %s 正在上傳資料' %('2020-02-18-17:00:48','80.82.70.187:33649') # 字典形式傳值,打破位置的限制 msg = '[%(攔截時間)s] 癩蛤蟆病毒感染者-> %(IP地址)s 正在上傳資料' %{'IP地址':'80.82.70.187:33649','攔截時間':'2020-02-18-17:00:48'} # str.format() # 一一對應 msg = '[{}] 癩蛤蟆病毒感染者-> {}正在上傳資料' .format('2020-02-18-17:00:48','80.82.70.187:33649') # 變數名 = 變數值 的形式傳值,同樣打破位置的限制 msg = '[{攔截時間}] 癩蛤蟆病毒感染者-> {IP地址}正在上傳資料' .format(IP地址='80.82.70.187:33649',攔截時間='2020-02-18-17:00:48') #5、把服務端ip地址存放下來,ip地址為10.0.10.11 ip_address = {'ip地址':'10.0.10.11'} #6、病毒程式需要每隔3秒才運行一次,請記錄下這個時間間隔 rest_time = 3 ##### 二:嵌套取值操作 # 1、 students_info=[['egon',18,['play',]],['alex',18,['play','sleep']]] # 請取出第一個學生的第一個愛好 print(students_info[0][2][0]) #2、針對字典 info={ 'name':'egon', 'hobbies':['play','sleep'], 'company_info':{ 'name':'Oldboy', 'type':'education', 'emp_num':40, } } # 請取出取公司名 print(info['company_info']['name']) #3、針對下述型別 students=[ {'name':'alex','age':38,'hobbies':['play','sleep']}, {'name':'egon','age':18,'hobbies':['read','sleep']}, {'name':'wupeiqi','age':58,'hobbies':['music','read','sleep']}, ] # 取第二個學生的第二個愛好 print(students[1]['hobbies'][1]) # [開小灶] # 練習1:接收用戶輸入,列印成指定格式 name = input('your name: ') age = input('your age: ') #用戶輸入18,會存成字串18,無法傳給%d,TypeError: %d format: a number is required, not str # 解決方法如下(強制轉換) age = int(age) print('My name is %s,my age is %d' %(name,age)) # 練習2:用戶輸入姓名、年齡、作業、愛好 ,然后列印成以下格式 # ------------ info of Tony ----------- # Name : Tony # Age : 22 # Sex : male # Job : Teacher # ------------- end ----------------- # 方法1 f name = input('your Name:') age = input('your Age:') sex = input('your Sex:') job = input('your Job:') info = f'Name:{name} \nAge:{age} \nSex:{sex} \nJob:{job} \n' l1 = f'------------ info of {name} -----------\n' l2 = '------------- end ---------------' print(l1,info,l2) # 方法2 %s name = input('your Name:') age = input('your Age:') sex = input('your Sex:') job = input('your Job:') info = ''' ------------ info of %s --------- Name : %s Age : %s Sex : %s Job : %s ------------- end ----------------- ''' % (name,name,age,sex,job) print(info) # 方法3 str.format() # [按位置傳值] name = input('your Name:') age = input('your Age:') sex = input('your Sex:') job = input('your Job:') info = ''' ------------ info of {0} --------- Name : {0} Age : {1} Sex : {2} Job : {3} ------------- end ----------------- ''' .format(name,age,sex,job) print(info) # 按照 變數名=變數值 的形式傳值 info = ''' ------------ info of {name} --------- Name : {name} Age : {age} Sex : {sex} Job : {job} ------------- end ----------------- ''' .format(name=input('your Name:'),age=input('your Age:'),sex=input('your Sex:'),job=input('your Job:')) print(info) # [選做題]:撰寫用戶登錄介面(學的多的同學,嘗試做下述作業,這是截止到下周二學完檔案處理之后的作業) #1、輸入賬號密碼完成驗證,驗證通過后輸出"登錄成功" #2、可以登錄不同的用戶 #3、同一賬號輸錯三次鎖定(附加功能,在程式一直運行的情況下,一旦鎖定,則鎖定5分鐘后自動解鎖) #擴展需求:在3的基礎上,完成用戶一旦鎖定,無論程式是否關閉,都鎖定5分鐘 # 【參考4--山寨版 】 import time user_info = { 'mili':'123', 'cc':'456', 'mela':'789' } # 密碼也要是字串格式,后面校驗用戶輸入的密碼時,才能夠匹配得上(python3 中,用戶輸入的內容均會被保存為 字串格式 count = 1 while count <= 3: user_name = input('please input your name:').strip() user_pwd = input('please input your password:').strip() if user_name in user_info and user_pwd == user_info[user_name]: print('welcome back~') break else: print('your name or password is wrong,fail to login.Please try again') count+=1 else: print('you have tried 3 times,and you are locked.Please try it after 5 minutes ') time.sleep(300) count = 0View Code
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/184123.html
標籤:Python
