• Python学习笔记Day01~03


    基础语法

    1.数据类型

    • string

        name.capitalize()       # 句首字母大写
        name.count('o')         # 计数
        name.center(50, '-')    # 居中
        name.endswith('ng')     # 结尾
        name.startswith('my')   # 开头
        name.find('Long')
      
        name.lower()            # 小写
        name.swapcase()         # 大小写转换
        name.title()            # 句首字母大写
      
        '+'.join(['1', '2', '3'])  # 连接符
        name.lstrip()           # 去左边空格或回车
        name.strip()            # 去空格和回车
        name.split('n', 1)      # 分割提取,后为提取个数-1
        name.rsplit('n')        # 分割提取
      
        p = str.maketrans('abcdef', '123456')  # 替换加密方法
        name.translate(p)
        name.replace('m', 'M', 1)  # 替换
      
        # 判断
        name.isalnum()          # 阿拉伯字符或数字
        name.isalpha()          # 英文字符
        name.isdigit()          # 整数
        name.isdecimal()        # 十进制
        name.islower()          # 小写
        name.isidentifier()     # 判读是不是一个合法的标识符
        name.isnumeric()
        name.istitle()
        name.isprintable()      # tty file ,drive file
        name.isupper()
      
        name.expandtabs(tabsize=30)
        name[name.find("name"):]
        name.format(name='alex', year=23)
        name.format_map({'name': 'alex', 'year': 12})
      
        name.ljust(50, '*')
        name.rjust(50, '-')
      
        'alex lil'.rfind('l')
        '1+2
      +3+4'.splitlines()
        'lex li'.zfill(50)
      

    2.for,while,if

    3.list,dict,set,tuple

    • list

        # 列表切片
        names[0:-1:2]   # 含首不含尾
        names[::2]
        names[:]
        
        range(1,10,2)   # 自动数字列表
      
        for i in names:
            print(i)
      
        import copy
        name2 = copy.deepcopy(names)    # 深拷贝
      
        names.append("LeiHaidong")      # 追加
        names.insert(1, "ChenRonghua")  # 插入
      
        names.remove("ChenRonghua")     # 删除指定值
        del names[1]                    # 根据索引删除
        names.pop(1)                    # 根据索引删除,返回值
      
        names.index("XieDi")            # 获取索引
      
        names.count("ChenRonghua")      # 统计某个元素在列表中出现的次数
        names.clear()                   # 清空列表
        names.reverse()                 # 反转列表
        names.sort()                    # 对原列表进行排序
        names.extend(names2)            # 合并列表,追加到结尾
      

    http://www.runoob.com/python3/python3-list.html

    • dict

        info = {'1': 2, '2': 3, '3': 4}
        info['1']           # 查找,没有则报错
        info.get('2')       # 查找,没有则返回None
      
        info.values()       # 取所有值
        info.keys()         # 取所有key
        info.items()        # 取key和value
        info.setdefault('1', 1) # 有则不变,无则替换
        info['5']=info.pop('1') # 修改键,删除原来键并将值赋给新键
      
        info.update(date)   # 合并字典,添加元素
      
        for i in info:      # 循环 i为key
            print(i, info[i])
      
    • set

        # 重复key自动过滤,无序
        set1 = set((1, 2, 45, 5, 5, 1))
        set2 = {1, 2, 5, 45}
        # set的关系测试、
        set3 = set1 & set2          # 交集 &
        set1.intersection(set2)     # 交集 &
        set1.union(set2)            # 并集 |
        set1.difference(set2)       # 差集 -
        set1.issubset(set2)         # 子集
        set1.issuperset(set2)       # 父集
        set1.symmetric_difference(set2) # 对称差集  ^
        set1.isdisjoint(set2)       # 无交集
        set1.discard(set2)          # 删除
      
        set1.add(999)               # 添加一项  无insert
        set1.update([888, 777, 555])    # 添加多项
        set1.remove(555)            # 删除,不存在报错
        set1.pop()                  # 随机删除并返回该值
        set1.discard(888)           # 有则删除,不存在不报错
      

    IO操作

    with open('text.txt', 'w', encoding="utf-8") as f:
        f.write('我王境泽就算饿死
    ')
    
    # 操作方式
        w:以写方式打开,
        a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
        r+:以读写模式打开
        w+:以读写模式打开 (参见 w )
        a+:以读写模式打开 (参见 a )
        rb:以二进制读模式打开
        wb:以二进制写模式打开 (参见 w )
        ab:以二进制追加模式打开 (参见 a )
        rb+:以二进制读写模式打开 (参见 r+ )
        wb+:以二进制读写模式打开 (参见 w+ )
        ab+:以二进制读写模式打开 (参见 a+ )
    
    f.read([size])      # size为读取的长度,以byte为单位
    f.readline([size])  # 读取一行
    f.readlines([size]) # 分行读取,将每一行作为一个元素放进list, size是表示读取内容的总长
    f.write(str)        # 把str写到文件中,不自动换行
    f.writelines(seq)   # 把seq的内容全部写到文件中(多行一次性写入)
    f.close()           # 关闭文件
    f.flush()           # 实时刷新,把缓冲区的内容写入硬盘
    f.fileno()          # 返回一个长整型的"文件标签"
    f.isatty()          # 文件是否是一个终端设备文件(unix系统中的)
    f.tell()            # 返回文件操作标记的当前位置,以文件的开头为原点
    f.next()            # 返回下一行数据,并将光标移动到下一行。for … in file就是调用next()函数来实现遍历的。
    f.seek(offset,whence)      # 将文件操作标记移到指定位置。默认从开头来计算的,一般为正数。whence参数为0表示从头开始计算,1表示以当前位置为原点计算,2表示以文件末尾为原点进行计算
    # 需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
    f.truncate([size])  # 把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
    

    http://www.runoob.com/python3/python3-inputoutput.html

    格式化输出/交互

    • 第一种%s

        info = '''
        -------- info of  %s  -----
        Name:%s
        Age:%d
        Job:%s
        Salary:%s
        ''' % (name, name, age, job, salary)
      
    • 第二种.format 指定key

        info2 = '''
        -------- info of {_name}  -----
        Name:{_name}
        Age:{_age}
        Job:{_job}
        Salary:{_salary}
        '''.format(_name=name,
                   _age=age,
                   _job=job,
                   _salary=salary)
      
    • 第三种.format 按顺序

        info3 = '''
        -------- info of {0} -----
        Name:{0}
        Age:{1}
        Job:{2}
        Salary:{3}
        '''.format(name, age, job, salary)
        print(info3)
      

    函数的参数与调用

    test(y=2,x=1) # 关键字调用:与形参顺序无关
    test(1,2)  # 位置参数调用:必须与形参一一对应
    test(3, z=2, y=6)   # 关键字调用必须在位置调用之后
    
    • *args:接受N个位置参数,转换成元组形式

        def test1(x, *args):
            print(x)
            print(args)
      
        test1(1, 2, 3, 4, 5, 6, 7)  # 按顺序赋值, 1传给x,其他以元组传给*args
        test(*[1, 2, 4, 5, 5])  # args=tuple([1,2,3,4,5])
      
    • **kwargs:接受N个关键字参数,转换成字典的方式

        def test4(name, age=18, *args, **kwargs):
            print(name)
            print(age)
            print(args)
            print(kwargs)
      
        test4('alex', age=34, sex='m', hobby='tesla')
      

    进度条输出

    import sys,time
    
    for i in range(20):
        sys.stdout.write("#")
        sys.stdout.flush()
        time.sleep(0.1)
    

    作业

    作业1:博客

    作业2:编写登录接口

    输入用户名密码
    输入正确后显示欢迎界面
    输错三次锁定
    

    作业3:多级菜单

    三级菜单
    可依次选择进入各子菜单
    需要列表、字典知识点
    

    作业4:购物车

    用户入口:
        1.txt.商品信息存在文件里
        2.用户记录保存在文件里
    商家入口:
        1.txt.添加商品
        2.修改商品名称
  • 相关阅读:
    DataGridView在vb.net中的操作技巧
    0、(空字串)、Null、Empty、与Nothing的区别
    System.Timers.Timer与System.Windows.Forms.Timer 区别
    C#判断常见类型格式是否正确的类
    C#对系统注册表操作的类
    Socket基础知识分享
    怎样才能充分利用SQL索引
    通过建立Socket连接来快速判断数据库连接是否正确
    C#中各种数据类型转换的方法的类
    VB.Net C#代码转换工具
  • 原文地址:https://www.cnblogs.com/JeromeLong/p/10632416.html
Copyright © 2020-2023  润新知