2020Python练习一

@2020.3.4

Python语法入门-变量和基本数据类型-练习一

习题

#1、病毒程序需要定期将监控到的数据写入日志文件,请记录下日志文件路径C:acadhsvc.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:acadhsvc.dll.system32,方便后期处理

# 转义字符 
blog_path = r'C:acadhsvc.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} 
Age:{age} 
Sex:{sex} 
Job:{job} 
'
l1 = f'------------ info of {name} -----------
'
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 = 0
View Code
原文地址:https://www.cnblogs.com/bigorangecc/p/12411517.html