zoukankan      html  css  js  c++  java
  • python_02

    一、随堂笔记:

    1.数据类型剩余的内置方法

    2.字符编码

    3.文件处理

    4.函数基础

    
    
    list1=["zhozho",18,"male",3.0,9,"广州","zhozho",["tank","ko"]]
    '''
    insert()插入
    list1=["zhozho",18,"male",3.0,9,"广州","zhozho",["tank","ko"]]
    list1.insert(3,"dudu")
    print(list1)

    pop()取出
    remove()移除
    count()查看值的个数
    print(list1.count("zhozho"))
    index()查看值的索引
    print(list1.index("广州"),"广州")
    clear()清空列表的值
    copy()拷贝
    #copy()与=的区别
    '''
    "="号是直接把相应的内存赋给变量,故改变内存中值的时候,变量的值跟者改变
    copy()是将之前内存地址拷贝到另一个内存地址之中,前一个地址值改变时,copy()变量值不变
    称之为浅拷贝
    浅拷贝:list1的列表中的外层值改变值对其不影响,但其中
    的可变类型改变时,会随之改变
    list2=list1.copy();
    list3=list1
    print(list2)
    print(list3)
    list1.append("增加")
    print(list2)
    print(list3)

    编译:

    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko']]
    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko']]
    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko']]
    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko'], '增加']

    '''深拷贝
    把list1中的所有值完全拷贝到另一个地址,list1中改变任何值都不改变
    '''
    from copy import deepcopy
    list4=deepcopy(list1)
    list1[8].append("ho")
    print(list1)
    print(list2)
    print(list3)
    print(list4)

    编译:

    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko', 'ho'], '增加']
    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko', 'ho']]
    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko', 'ho'], '增加']
    ['zhozho', 18, 'male', 'dudu', 3.0, 9, '广州', 'zhozho', ['tank', 'ko'], '增加']
    extend()合并
    reverse()反转
    sort()排序

    '''
    字典:
    #按照key取存值
    dict1={"name":"alice","age":18,"sex":"","school":"安徽工程大学"}
    print(dict1["school"])
    >>>安徽工程大学
    #get()
    若key在字对应的字典中则取value值,不在则为none,不会报错
    若不存在的key值后面定义了value值,则会自动取自定义的value值
    print(dict1.get("school"))
    print(dict1.get("ji","ko"))
    print(dict1.get ("ji"))
    安徽工程大学
    ko
    None
    # 2.len()
    print(len(dict1))
    #3.成员运算,判断的是字典里的key
    #in ot in
    #4.删除 del
    # del dict1["name"]
    #5.pop()
    name=dict1.pop("name")
    print(name)
    print(dict1)
    alice
    {'age': 18, 'sex': '', 'school': '安徽工程大学'}
    字典是无序类型,不根据索引取值
    排序是无序的

    Python 字典 popitem() 方法随机返回并删除字典中的一对键和值(一般删除末尾对)。

    如果字典已经为空,却调用了此方法,就报出KeyError异常。

    dict1.popitem()
    print(dict1)
    #6.keys value items(键值对)
    print(dict1.keys())
    print(dict1.values())
    print(dict1.items())
    dict_keys(['age', 'sex'])
    dict_values([18, ''])
    dict_items([('age', 18), ('sex', '')])
    #7.循环
    #循环字典中索引的key
    for key in dict1:
        print(key)
    #8 update()更新
    dict2={"work":"student"}
    dict1.update(dict2)
    print(dict1)
    {'age': 18, 'sex': '', 'work': 'student'}

    元组:#在小括号内,以逗号隔开,存放多个值

    #优先掌握,元组为不可变类型(列表为可变类型)
    tuple1=(1,2,3,4,5,6)
    print(tuple1)
    #按索引取值
    print(tuple1[1])
    #切片取值,步长
    print(tuple1[0:6])
    #成员运算
    #循环
    集合:
    #集合类型
    #在{}内以逗号隔开,可存放多个值,但集合客默认去重功能
    集合也是无序的
    set1={1,2,3,5,3,2,4,7}
    print(set1)
    {1, 2, 3, 4, 5, 7}

    {}:

    set2=set()
    set3={}#这里无法判断是元组还是字典
    print(set2,set3)
    set3["name"]="tank"
    print(type(set3))
    set2=set()
    set3={}#这里无法判断是元组还是字典
    print(set2,set3)
    set3["name"]="tank"
    print(type(set3))
    set() {}
    <class 'dict'>
    #文件处理的基本使用
    #open("文件的名字",mode="wt",encoding=“utf_8”)mode 为对文本操作的模式,encoding为指定的字符编码
    '''
    打开i文件会产生两种资源,一种是python解释器与python文件的资源,结束程序python会自动回收
     
    f=open(r'E:新建文件夹收纳python_projectday_02文件的名字.txt',mode='wt',encoding='utf-8')
    f.write("hello tank!!")
     f.close()

    读文件

     f=open(r'E:新建文件夹收纳python_projectday_02文件的名字.txt',mode='r',encoding='utf-8')
     res=f.read()
     print(res)
    文件的追加模式a打开一个文件用于追加。追加文件需要加上
    
    # 如果该文件已存在,文件指针将会放在文件的结尾。
    # 也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    f=open(r'E:新建文件夹收纳python_projectday_02文件.txt','a',encoding='utf-8')
     f.write('
    hello,join!')
     f.close()
    文件处理之上下文管理:with   as
    with会自带close功能
    会在文件处理完成后自动调用close()
    with open('E:新建文件夹收纳python_projectday_02文件.txt','w',encoding='utf-8') as f:
        f.write('huiihggfghh')

    图片和视频的处理

    获取网页图片的地址,这里为图片的URL,后缀为.jpg
    #content返回的是bytes,二级制型的数据。图片、视频等都是二进制的数据
    import requests
    res =requests.get('http://pic53.nipic.com/file/20141115/9448607_175255450000_2.jpg')

    写入图片

    with open('da.jpg','wb') as f:
        f.write(res.content)

    读图片

    with open('da.jpg','rb') as f:
        res=f.read()
        print(res)

    图片拷贝

    with open('da.jpg','rb') as f,open('ta.jpg','rb') as w:
        res=f.read()
        w.write(res)
    #读写视频操作与读写图片基本一致,视频后缀为.mp4

    函数相关

    1.什么是函数
    函数相当于工具,需要实现准备好,在需要时再使用
    2.如何使用函数
    函数必须先定义,后调用
    3.函数的语法:
    def cup(参数一,参数二):
    函数的声明
    函数体代码(逻辑代码)
    def:(全称defind)用来声明定义函数的关键字
    函数名:看其名,知其意
    ():存放的是接收外界的参数
    注释:用来说明函数的作用
    函数体代码:逻辑代码
    return:后面跟函数的返回值
    '''
    #注册功能函数
    def register():
        while True:
            user=input("请输入用户名:").strip()
            pwd=input("请输入密码").strip()
            re_pwd=input("请再次输入密码:").strip()
            if pwd==re_pwd:
                # user_info="用户名:%s,密码:%s"%(user,pwd)
                # user_info="用户名:{},密码:{}".format(user,pwd)三种方法使用户名与密码匹配
                user_info=f'用户名:{user},密码:{pwd}'
                with open("user.txt",'w',encoding='utf-8')as f:
                    f.write(user_info)
            else:
                print("两次密码不一样,请重新输入!")
            return
    #调用函数 函数名()
    register()
    '''
    函数在定义阶段发生的事情
    1.先打开python解释器
    2.加载python文件(.py文件)
    3.只会检测python语法,不会执行函数体代码
    '''

    二、作业
    ''
    1.让用户输入用户名与密码
    2.校验用户名是否存在
    3.用户名存在后检验密码是否正确,若正确打印”登陆成功“
    否则打印”用户名或密码错误“,并让用户重新输入
    4.用户密码输入错误超过三次则退出循环
    '''
    def login():
        count=0
        su=0
        while True:
            if count!=3:
    
                user=input("please input your username:").strip()
                password=input("please input your password:").strip()
                username=""
                psw=""
                with open(r'E:新建文件夹收纳python_projectday_02登录文件',mode='rt',encoding='utf-8') as f:
                    for line in f:
                        res=line.strip().split('
    ')[0].split(',')
                        for i in res:
                            str=i.split(':')
                            if user in str:
                                t1=1
                               # else:t1==0
                        if password in str and t1==1:
                            su=1
                            print(f'用户{user}登陆成功!')
    
                print(su)
                if su==1:
                    break
                else:
                    count+=1
                    print(f"用户名或密码输入错误!请继续输入,你还有{3-count}次机会!")
    
    
            else:
                print("登录已结束,请确定用户名或密码后再尝试!")
                break
    login()

    运行:

    please input your username:Alice
    please input your password:34
    用户名或密码输入错误!请继续输入,你还有2次机会!
    please input your username:Alice
    please input your password:123454
    用户Alice登陆成功!

    登录文件:

    user:Alice,password:123454
    user:sily,password:5678
    user:jion,password:8989
     
  • 相关阅读:
    Can't remove netstandard folder from output path (.net standard)
    website项目的reference问题
    The type exists in both DLLs
    git常用配置
    Map dependencies with code maps
    How to check HTML version of any website
    Bootstrap UI 编辑器
    网上职位要求对照
    Use of implicitly declared global variable
    ResolveUrl in external JavaScript file in asp.net project
  • 原文地址:https://www.cnblogs.com/zhanglei97/p/11008672.html
Copyright © 2011-2022 走看看