zoukankan      html  css  js  c++  java
  • 自动化学习-Day03

    作业:
        1、写一个登陆的小程序
            username = tanailing
            passwd = 123456
            1、输入账号密码,输入正确就登陆成功,              username = input('xx')  password = input()
                提示欢迎xxxx登陆,今天的日期是多少
            2、最多输入错误3次        循环 for while  循环3次
                账号/密码错误,请重新登陆      if 条件判断的     1、账号密码正确 2、输入为空、3、账号密码不正确
            3、如果失败测试超过3次,提示,失败次数过多    else
            4、要校验输入是否为空,如果输入为空,你要提示账号./密码不能为空
               什么都不输入和输入一个空格多个空格都算空。
               输入为空也算操作错误一次
    
    
    import datetime
    
    for i in range(3):
        username = input('请输入你的用户名:').strip()
        password = input('请输入你的密码:').strip()
        if username=='aaronwang' and password == '123456':
            print('欢迎%s登陆,今天的日期是%s'%(username,datetime.datetime.today()))
            break
        elif username=='' or password =='':
            print('账号和密码都不能为空!')
        else:
            print('账号/密码错误')
    else:
        print('错误次数过多')
    import datetime
    count = 0
    while count<3:
        count += 1
        username = input('请输入你的用户名:').strip()
        password = input('请输入你的密码:').strip()
        if username=='aaronwang' and password == '123456':
            print('欢迎%s登陆,今天的日期是%s'%(username,datetime.datetime.today()))
            break
        elif username=='' or password =='':
            print('账号和密码都不能为空!')
        else:
            print('账号/密码错误')
    else:
        print('错误次数过多')

    List,也叫列表,数组,array

    stu_name = ['小龙','小帆','小心',1,1.5]
    #下标、索引、角标
    #计算机里面起始都是从0开始的
    print(stu_name)
    #
    stu_name.append('小月')#在list的末尾添加一个元素
    stu_name.insert(0,'小军')#指定位置添加元素
    #
    print('修改之前的',stu_name)
    stu_name[5]='小顶'
    print('修改之后的',stu_name)
    #
    stu_name.append('小军')
    print(stu_name)
    stu_name.remove('小军')#
    print(stu_name)
    stu_name.pop()#删除最后一个元素
    stu_name.pop(4)#删除指定下标的元素
    stu_name.remove('小军')#删除指定的元素,
    #如果有一样的元素,只会删除第一个
    stu_name.pop(18)#删除指定下标的元素
    print(stu_name)
    del stu_name[-1]
    print(stu_name)
    #
    my_list = ['小黑','小白',1,1,2,1.5]
    print(my_list[-1])
    print(my_list[0])
    print(my_list.count(5)) #查询某个元素在list里面出现的次数
    print('index方法:',my_list.index(1))#查找元素的下标,元素不存在的话,会报错
    
    
    print('reverse:',my_list.reverse())#reverse是反转list
    print(my_list)
    
    my_list.clear()#清空整个list
    print(my_list)
    
    nums =[9.23,9,3,6,1,0]
    nums.sort(reverse=True)#排序,如果指定了reverse=True,那么就是降序,使用sort排序时,LIST中元素必须是同类型
    # nums.extend(my_list)#把一个list里面的元素加入进去
    print(nums)
    
    new_list = nums + my_list + stu_name
    print(new_list)
    print(new_list * 3) #复制几个

    List练习

    users = ['haha','wrp']
    #校验手机号是否存在的
    for i in range(5):
        username = input('请输入用户名:')
        #如果用户不存在的话,就说明可以注册,
        # if users.count(username)>0:
        if username not in users:  #in就是判断在不在里面
            print('用户未注册,可以注册')
            users.append(username)
        else:
            print('用户已注册')
    passwords=['123456','123123','7891234','password']
    print(len(passwords)) #取长度,也就是list里面元素的个数
    #循环这个list
    count = 0 #最原始list取值方式,是通过每次计算下标来获取元素的
    while count<len(passwords):
        s = passwords[count]
        print('每次循环的时候',s)
        count+=1
    passwords=['123456','123123','7891234','password']
    index = 0
    for p in passwords:#for循环直接循环一个list,那么循环的时候就是每次取它的值
        passwords[index] = 'abc_'+p
        index+=1
    print(passwords)
    passwords=['123456','123123','7891234','password']
    for index,p in enumerate(passwords):#使用枚举函数,它会帮你计算下标和元素
        passwords[index] = 'abc_' + p
    print(passwords)

    切片

    #就是list取值的一种方式
    l = list(range(1,11))
    l = ['a','b','c','d','e','j','k','l','m','n','o']
    #     0    1  2   3   4   5   6    7   8   9   10
    print(l[2:8])#顾头不顾尾
    print(l[:5])#如果最前面没写的话,代表从0开始取的
    print(l[4:])#如果冒号后面的没写的话,代表去到最后
    print(l[:])#如果冒号后面的没写的话,代表去到最后
    print(l[::3])#步长,也就是代表隔几个取一次,
    
    nums = list(range(1,101))
    print(nums[1::2])  #取偶数,
    print(nums[::2])  #取奇数
    #1 2 3 4 5 6 ....10
    print(nums)
    print(nums[::-1])  
    #如果最后面的步长是正数的话, 那就从左到右开始取值
    #如果后面的步长是负数的话,那么久从右往左开始取值
    #切片同样适用于字符串。
    words='中秋节要上课'
    # print(words[::-1])
    for index,w in enumerate(words):
        print('每次打印的',index,w)
    s='上海自来水来自海上'
    # 1232321
    # 1111
    #回文算法,反过来倒去过都一样
    #5678 8765
    #
    for i in range(10):
        s = input('请输入一个字符串:')
        if len(s)<2:
            print('字符串长度必须大于1')
        elif s==s[::-1]:
            print('是回文')
        else:
            print('不是回文')

    数组

    nums1 = [1,2,3] #一维数组
    nums2 = [1,2,3,[4,5,6]] #二维数组
    print(nums1[1]) #2
    print(nums2[3][2]) #6
    
    nums3 = [1,2,3,4,['a','b','c','d','e',['','','']],['','']] #三维数组
    print(nums3[4][5][2]) #
    print(nums3[5][1]) #
    
    nums4 = [1,2,3,4,['a','b','c','d','e',['','','',[1,2,3]]]]
    print(nums4[4][5][3][1]) #2

    元组

    #元组是一个不可变列表,元组不能修改
    mysql = ('118.24.3.40',3306,'root','123456')
    print(mysql[:1])
    for m in mysql:
        print(m)
    print(mysql.count(3306)) #统计个数
    print(mysql.index('root')) #所在元组中下标
    
    l = [1]
    t = ('abc',)
    print(type(l))
    print(type(t))

    字符串常用方法

    password='jpg 12345456789 .jpg ABCDE'
    #print(password)
    
    new_password = password.strip('jpg') #默认去掉字符串两边的空格和换行符
    print(password.lstrip()) #去掉字符串左边空格
    print(password.rstrip()) #去掉字符串右边空格
    print(password.upper()) #转成大写的
    print(password.lower()) #转成小写的
    print(password.capitalize()) #转成小写的
    print(password.count('.jpg')) #统计次数
    print(password.replace('jpg','hello')) #字符串替换
    filename = 'a.mp4'
    age = 18
    print(filename.endswith('.mp4')) #判断是否以xx结尾
    print(filename.startswith('186')) #判断是否以开头
    print('{name},{age}'.format(name='hhh',age=age))
    names = '小王    小李 小张 李丽'
    print(names.split()) #将字符串分割成list,以split为分割条件
    if filename.endswith('.mp3'):
        pass
    else:
        print('')

    字典

    # 小军  男 185  29 xxxx 1111 sss@qq.com 2387121
    # 海龙  男 185  29 xxxx 1111 sss@qq.com 2387121
    # 小帆  男 185  29 xxxx 1111 sss@qq.com 2387121
    # 杨杨  男 185  29 xxxx 1111 sss@qq.com 2387121
    
    all_sty = [ ['xioajun','xxx','x'],['xx']  ]
    xiaojun = ['xioajun','xxx','x']
    hailong = ['xxx']
    
    # k-v 形式
    #字典也可以循环
    #优点,速度快,好取值
    
    hailong = {
        'name':'hailong',
        'sex':'',
        'shengao':'185',
        'age':18,
        'email':'acb@qq.com',
        'addr':'火星',
        'id':2
    }
    
    
    for i in hailong:
        # print(i)
        # if i =='name':
        print(hailong[i])
    
    
    for  k,v in hailong.items():
        print(k,v)
    #增删改查
    
    print(hailong['name'])
    print(hailong.get('zhuzhi','火星')) # get查找-不报错,可以设置默认值
    
    #add
    hailong['zhuzhi'] = '北京'
    hailong['age']=30
    print(hailong)
    
    #delete
    hailong.pop('age')
    print('删除age',hailong)
    hailong.popitem() #随机删除
    print(hailong)
    
    del hailong['age'] #del 删除
    print(hailong)
    
    print(hailong.values())
    
    name = {'zhuzhi':"北京"}
    hailong.update(name)  #字典合并
    print(hailong)
    
    print(hailong.keys())
    #设置默认值stus = {}
    stus['name'] = '小军'
    stus['name'] = '海龙'
    stus.setdefault('name','杨帆')#如果这个key已经存在,那么就不修改它的值了
    stus.setdefault('age',18)
    stus.setdefault('sex','nan')
    stus.setdefault('addr','北京')
    stus.setdefault('phone','18612123123')
    
    #修改
    stus['name'] = '海龙'
    
    #删除
    del stus['phone']
    stus.pop('phone')
    stus.popitem() #随机删除
    
    #查询
    
    print(stus['qq'])
    print(stus.get('sex'))
    
    print(stus.keys())
    print(stus.values())
    stus.update({'moeny':1000})
    print(stus)
    
    for k in stus:
        print(k,'===>',stus.get(k))
    
    for k,v in stus.items():
        print(k,'===>',v)
    
    
    
    del stus
    
    print('----------')
    print(stus['name'])
    all_stus = {
        'xiaojun':
        {
            'sex': '',
            'shengao': '185',
            'age': 18,
            'email': 'acb@qq.com',
            'addr': '火星',
            'id': 1,
            'cars':['牧马人','911','野马','劳斯莱斯']
            #五菱宏光
        },
        'hailong':{
            'sex': '',
            'shengao': '185',
            'age': 18,
            'email': 'acb@qq.com',
            'addr': '火星',
            'id': 2
        },
        'yangfan':{
            'sex': '',
            'shengao': '185',
            'age': 18,
            'email': 'acb@qq.com',
            'addr': '火星',
            'id': 3,
            'bags':{
                'qianbao':['lv','ysl'],
                'beibao':['coach','abc']
            }
        }
    }
    
    all_stus['xiaojun']['cars'].append('五菱宏光')
    print(all_stus)
    print(len(all_stus['xiaojun']['cars']))
    all_stus['yangfan']['sex'] = ''
    print(all_stus)
    all_stus['yangfan']['bags']['qianbao'].remove('lv')
    print(all_stus)

    文件读写

    #1、有个文件
    #2、打开文件
    #3、操作文件 读、写
    #4、关闭
    
    #只读模式,默认的
    #写模式
    #追加模式
    #w会清空文件内容
    f = open('users.txt','a+')
    f.seek(0)#移动文件指针
    print(f.read())#获取到文件里面所有的内容
    f.write('yangfan,12345
    ')
    f.write('mayanyan,12345
    ')
    f.flush()#
    f.close()
  • 相关阅读:
    2017浙江工业大学-校赛决赛 BugZhu抽抽抽!!
    数据可视化建设是企业战略决策之刚需
    SIMPLE_DEV_PM_OPS宏
    Java连接程序数据源
    ROS(indigo)一个简单灵活和可扩展的2D多机器人仿真器stdr_simulator
    ROS_Kinetic_21 使用Qt Creator Plug in即ros_qtc_plugin
    ROS(indigo)使用Qt Creator Plug in即ros_qtc_plugin
    现代控制理论教学与半年工作总结(未完成待补充)
    企业应该如何运用商业智能
    USB有时adb shell连不上设备
  • 原文地址:https://www.cnblogs.com/rongpeng/p/12001660.html
Copyright © 2011-2022 走看看