自动化学习-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()
原文地址:https://www.cnblogs.com/rongpeng/p/12001660.html