zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    使用 Promise.all 同时发起多个请求
    vite 开发 Cesium 程序最佳配置实践
    【linux学习】使用grep命令获取过滤的数据作为下个命令的入参
    记一次k8s depolyment失败处理
    powerdesigner导出excel数据字典
    vue 时间格式
    ASP.NET MVC4 跨域配置
    Win10系统中切换虚拟桌面的快捷键如何设置
    不顾一切最简NHinbernate配置并读写数据库
    Windows time_wait过多解决办法
  • 原文地址:https://www.cnblogs.com/bigorangecc/p/12411517.html
Copyright © 2011-2022 走看看