• 第二节python基础


    https://mm.edrawsoft.cn/map.html?obj=qqE8C5C509A56306F473143828ACA29F4C/Personal/python%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B.emmx   

    参考上方流程图

    #数据量过大的情况我们就要使用字典进行存储数据

    字典和list,列表的区别

    1.字典取值速度快,因为字典的key都是不会重复的 ,而列表取值速度慢

    2.列表是有序的,通过下标来取值,字典是无序的,通过key 和value来取值

    3.列表的大小和内容可以随意改变

    相同性质

    字典和列表都可以包含任意的数据类型,即异构性

    字典的操作方法

    字典的定义方法:a={}

    字典有两种增加方法 ,a['ces']=100  a.setdefault('cesss',2000)#有重复的不会进行改变

    字典的修改方法

    a['ces']=修改

    #字典的取值
    print(a['dong'])#不存在会报错
    print(a.get('dong'))#不存在会返回一个none
    print(a.get('dong','dssss'))#加一个字段,取不到的时候会返回这个字段

    字典的删除
    a.pop('xxx')#不存在值会报错
    del a['xxxx'] 不存在也会报错
    a.clear()#清空字典
    a.keys()#打印key
    a.values()#打印value
    a.update(a=1,b=2)#字典的更新
    如果字典做一个注册的功能,判断用户存在不存在的方法 直接用 if username in users.keys() 另外一种方法 username in users 这样也可以,直接判断一个元素在不在这里,判断的是这个key在不在
    a={'dong':'30','cesss':200}
    a=a.items()#这是一个二维数组,两个值所以可以拆包
    for k,v in a:
    print(k,v)#这种方法取出key和value
    第二种方法循环字典取值
    for k in a:
      print(k,a.get(k))
    #字典小练习题目




    字典嵌套list的增加和删除
    info={'lgy':{
    'age':18,
    'ces':['ces']

    },
    'fd':{
    'age':19
    },
    'money':500
    }
    #lgy买了一个车
    #fd买了房,钱增加了
    info['lgy']['ces'].append(18)#这是字典里的集合添加数据
    info['lgy']['ces'].remove(18)#删除
    info['money']+=4000
    print(info)
    
    
    #元祖
    l=(1,2,3,4,5)
    l=(1,)#一个元素要加一个逗号
    #元祖一旦创建不可改变
    for i in l:#可以循环
    print(i)

    a='abc'
    print(a.count('a'))#统计个数
    print(a.index('a'))#找下标找不到会报错
    print(a.find('444545'))#找不到会返回-1,可以指定位置找
    print(a.strip())#去掉前面后面空格,如果你输入,会去掉逗号
    print(a.rstrip())#右边空格
    print(a.ltrip())#去掉左边空格
    print(a.replace('a','A'))
    print(a.isupper())#大写 小写
    print(a.islower())
    print(a.zfill())#补零
    print(a.isdigit())#是否纯数字
    print(a.endswith())#判断以啥开头
    # print(a.startswith())判断以啥结尾
    print('欢迎登录'.center(50,'='))#字符串居中
    print('my car'.title())#空格隔开的首字符大写
    print(' '.isspace())
    print('a'.capitalize())#收字符大写
    print(a.split())#分割字符串很常用
    #默认按空格分割 ,取一个字符串将他变成list 进行分割
    深拷贝,浅拷贝
    import copy
    #浅拷贝拷贝地址 ,没有改变内存
    #直接赋值就是浅拷贝,深拷贝地址不同让他们不互相影响
    l=[1,2,3,4,5]
    l2=copy.deepcopy(l)#深拷贝
    l2=l.copy()#对于嵌套的内容就无法进行修改了
    l2=l[:]#浅拷贝
    print(id(l2))#查看地址
    print(id(l))
    l=l2#浅拷贝 ,赋值
    print(id(l2))
    简化代码,非空即真

    user=input()
    if user.strip():
    print('输入不能为空')
    else:
    print('user不能为空')
    d={'a':'1'}
    if d.get('name'):#非空即真,非0即真
    print('取到值了')
    else:
    print('xxx')

    l=[]
    if len(l)>1:
    print()

    #也可以 if l:
    else:
    print('无数据')

    文件操作r模式
    #原字符
    # c=open(r'C:UsersAdministratorPycharmProjectsuntitled3day3a',)#要加r
    # print(c.read())
    #读模式
    f=open('a','r',encoding='utf-8')#文件不存在会报错
    result=f.read()#读出来。是字符串
    f.seek(0)
    results=f.readlines()#读文件每一行内容,放到list
    f.seek(0)
    resultsq=f.readline()#调一次读一行
    print(resultsq)
    print(result)
    print(results)
    f.close()#文件有打开也要关闭
    #注意 r模式不存在会报错
    #第二r模式不可以写
    R+模式
    f=open('a','r+',encoding='utf-8')#文件不存在会报错
    f.write('sdsads')#写在最前面,可以写
    f.seek(0)
    print(f.read())
    w模式 
    f=open('a','w',encoding='utf-8')#文件不存在会报错
    f.write('cesces')
    name=['dong','sss']
    f.writelines(name)#这种方法专门写列表的,自动循环把列表数据写进去,只能写字符串类型数据
    #写数字方法
    ss=[1,2,3,4,5,6]
    for a in range(len(ss)):
    ss[a] =str(ss[a])#将数字转换list
    #换行写方法
    names=' '.join(name)#字符串拼接,多个换行,或者循环加一个
    #注意 w模式不会读
    #第二文件不存在会报错
    #写会把之前的内容覆盖
    W+模式
    f=open('a','w+',encoding='utf-8')#文件不存在会报错
    #读不到因为已经清空了,w模式别用来读
    f.write('sdsads')#这样不能读出来,因为文件指针在末尾
    f.seek(0)
    print(f.read())

    A+模式
    f=open('a','a+',encoding='utf-8')#文件不存在会报错
    #追加模式写在最后
    #能读能写,不请空原来的文件
    f.write('sdsads')#这样不能读出来,因为文件指针在末尾
    f.seek(0)
    print(f.read())

    文件的修改
    f=open('a','a+',encoding='utf-8')#修改文件简单替换方法1
    f.seek(0)
    res=f.read()
    new_res=res.upper()
    f.seek(0)#要注意
    #修改文件,逻辑清空以前的文件
    f.truncate()#清空文件内容
    f.flush()
    f.write(new_res)
    print(f.read())

    非空既真
    非0既真
    # 注册的程序  账号和密码存在文件里
    # 最多输入三次 输入账号和密码,确认密码
    # 输入为空要提示
    # 用户已经存在不能注册
    # 两次密码输入要一致
    #包含大小写字母,和数字
    import string
    f=open('Ces','a+',encoding='utf-8')
    f.seek(0)
    aaa=[]
    for i in f.readlines():
    i=i.strip()
    aa=i.split(',')[0]
    aaa.append(aa)
    for i in range(3):
    user=input('输入user').strip()
    passw=input('输入密码').strip()
    cps=input('确认密码').strip()
    if not user or not passw or not cps:
    print('不能输入为空')
    elif passw!=cps:
    print('两次输入密码要一致')
    elif len(passw)<6 or len(passw)>12:
    print('密码要6到12位之间')
    else:
    l,u,d=False,False,False
    for p in passw:
    if p.isdigit():
    l=True
    if p.islower():
    u=True
    if p.upper():
    d=True
    if not l or not u or not d:
    print('密码必须包含大小写字母和数字')
    elif user in aaa:
    print('用户已经注册')
    else:
    f.write('%s,%s '%(user,passw))
    print('注册成功')
    break

    else:
    print('最多输入三次')
    f.close()











  • 相关阅读:
    webpack的最简单应用,只使用js与css的打包
    数据统计表插件,highcharts插件的简单应用
    C#中的特性 (Attribute) 入门 (二)
    C#中的特性 (Attribute) 入门 (一)
    SQLServer存储过程入门
    C#拖拽操作
    C#剪切板
    .Net中的IO
    Android四大组件-服务
    AlertDialog对话框
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/13541574.html
Copyright © 2020-2023  润新知