zoukankan      html  css  js  c++  java
  • Python20-Day02

    1、数据

      数据为什么要分不同的类型

        数据是用来表示状态的,不同的状态就应该用不同类型的数据表示;

      数据类型

        数字(整形,长整形,浮点型,复数),字符串,列表,元组,字典,集合

    2、字符串

      1、按索引取值,只能取 

    input_info = 'Hello World'
    print(input_info[6])

      2、切片(顾头不顾尾)  

    input_info = 'Hello World'
    print(input_info[0:5])

      3、长度len

    input_info = 'Hello World'
    print(len(input_info))

      4、成员运算in和not in 

    input_info = 'Hello World'
    # if 'Hello' in input_info:
    #     print('OK')
    if 'wang' not in input_info:
        print('wang is not in input_info!' )

      5、移除空白strip (移除开头和结尾的空格)

    input_info = '    Hello World'
    input_info2 = '    Hello World    '
    print(input_info)
    print(input_info.strip())
    print(input_info2.strip())

      6、切分split

    input_info = 'egon,alex,wupeiqi,oldboy' #默认按照空格进行切分
    # print(input_info.split()) #切分完成后得到一个列表
    print(input_info.split(',')) #指定分隔符进行切分

      7、循环

    input_info = 'hello world'
    for item in input_info:
        print(item)

      #字符串需要掌握的方法

        1、lower,upper

    input_info = 'Hello World'
    print(input_info.upper())
    print(input_info.lower())

        2、startswith和endswith

    input_info = 'hello world'
    print(input_info.startswith('hello')) #返回布尔值
    print(input_info.endswith('world')) #返回布尔值

         3、format

    res='{} {} {}'.format('egon',18,'male')
    res='{1} {0} {1}'.format('egon',18,'male')
    res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)

        4、join

    tag=' '
    print(tag.join(['egon','say','hello','world'])) #可迭代对象必须都是字符串

        5、replace

    name='hello,every one,are you ok,are you good'
    print(name.replace('hello','Hello'))
    print(name.replace('you','then',1))

        6、isdigit

    res_input = input('Input>>: ')
    print(res_input.isdigit())

      #字符串类型总结:

        1、只能存一个值,
      2、有序
        3、不可变:值变,id就变。不可变==可hash

    3、列表

      定义:[]内可以有多个任意类型的值,逗号分隔

    #按索引存取值(正向存取+反向存取):即可存也可以取 
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5] print(my_girl_friends[0]) my_girl_friends.insert(1,'zhaoliying') print(my_girl_friends)
      #切片(顾头不顾尾,步长)
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5,'zhaoliying','wangxiaomi']
    print(my_girl_friends[1:6:2])

      #长度
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
    print(len(my_girl_friends))

      #成员运算in和not in
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
    if 'alex' in my_girl_friends:
        print('This is ok')
    if 'zhaoliying' not in my_girl_friends:
        print('ni xiang sha ne')

      #追加
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
    my_girl_friends.append('zhaoliying') #append,在列表的尾部添加
    print(my_girl_friends)
    my_girl_friends.insert(1,'zhaoliying') #insert,可以指定列表的下标添加元素
    print(my_girl_friends)
      #删除
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
    print(my_girl_friends.pop())  #pop,删除列表中的元素,从尾部开始删除,并且会返回删除的值
    print(my_girl_friends.pop())
    print(my_girl_friends.pop())
      #循环
    my_girl_friends=['alex','wupeiqi','yuanhao',4,5]
    for item in my_girl_friends:
        print(item)
      #步长
    l=[1,2,3,4,5,6]
    print(l[0:3:1]) #正向步长
    print(l[2::-1]) #反向步长
    print(l[::-1])  #列表翻转

      #列表类型总结

        1、可以存多个值,值都可以是字符串,列表,字典,元组

        2、有序

        2、可变:值变,id不变。可变==不可hash

          

    4、元组

      

    #按索引取值(正向取+反向取):只能取
    age=(11,22,33,44,55)
    print(age[1])
     #2、切片(顾头不顾尾,步长)
    age=(11,22,33,44,55)
    print(age[1:3])
      #3、长度
    age=(11,22,33,44,55)
    print(len(age))
      #4、成员运算in和not in
    age=(11,22,33,44,55)
    if 11 in age:
        print('This is ok!')
    if 88 not in age:
        print('This is error')
      #5、循环
    age=(11,22,33,44,55)
    for item in age:
        print('your age is %s' %item)

    5、字典

      作用:存多个值,key-value存取,取值速度快

      定义:key必须是不可变类型,值可以是任意类型

      info={'name':'egon','age':18,'sex':'male'}

      

      #1、按key存取值:可存可取
    info={'name':'egon','age':18,'sex':'male'}
    print(info['name'])
      #2、长度len
    info={'name':'egon','age':18,'sex':'male'}
    print(len(info))

      #3、成员运算in和not in
    info={'name':'egon','age':18,'sex':'male'}
    if 'name' in info:
        print(info['name'])
      #4、删除
    info={'name':'egon','age':18,'sex':'male'}
    print(info.pop('age'))
    print(info)
      #5、键keys(),值values(),键值对items()
    info={'name':'egon','age':18,'sex':'male'}
    for item in info:
        print(item,info[item])

    6、集合

      作用:去重,关系运算

      定义集合:

        集合可以包含多个元素,用逗号分隔

        集合的元素遵循三个原则:

          1. 每个元素必须是不可变类型

          2. 没有重复的元素

          3. 无序

      注意:集合的目的是将不同的值存放到一起,不同的集合用来做关系运算

    #1、长度len
    # pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    # print(len(pythons))
    pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    linuxs={'wupeiqi','oldboy','gangdan'}
    #3、|合集
    # print(pythons|linuxs)
    #4、&交集
    # print(pythons & linuxs)
    #5、-差集
    # print(pythons - linuxs)
    #6、^对称差集
    # print(pythons ^ linuxs)

    7、 文件编码

      字符编码的发展3个阶段:

        1、 现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII

        2、为了满足中文和日文,中国定制了GBK

        3、每一个国家都有自己的标准,就不可避免的会有冲突,在多语言混合的文本中,显示出来就会乱码,如何解决:

          1. 能够兼容万国字符

          2. 与全世界所有的字符编码都有映射关系,这样就可以转换成任意国家的的字符编码。

      总结:内存中统一采用Unicode,浪费空间来换取可以转换成任意编码(不乱码),硬盘可以采用各种编码,如utf-8,保证存放于硬盘或者基于网络传输的数据量很小,提高传输效率与稳定性。

    总结:保证不乱码的的核心法则:

      字符按照什么标准而编码的,就按照什么标准解码。

      在内存中写的所有字符,都是Unicode编码。

    8、 文件操作

      1、文件操作流程

        打开文件,得到文件句柄并赋值给一个变量

        通过句柄对文件进行操作

        关闭文件

        打开文件的模式有:

        r,只读模式(默认)。
        w,只写模式。【不可读;不存在则创建;存在则删除内容;】
        a,追加模式。【可读; 不存在则创建;存在则只追加内容;】
        "+" 表示可以同时读写某个文件

        r+,可读写文件。【可读;可写;可追加】
        w+,写读
        a+,同a
        "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

        rU
        r+U
        "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

        rb
        wb
        ab

    f = open('文件操作.file','r',encoding='utf-8')
    # print(f.read())
    print(f.readline(3).strip())
    #readline每次读一行,可以设置limit(字符)

         2、with语句 

          为了避免打开文件后忘记关闭,可以用with:

    with open('文件操作.file','r',encoding='utf-8') as f:
        pass

          python2.7后,with支持对多个文件的上下文进行管理

            

    with open('log1') as obj1, open('log2') as obj2:
        pass
  • 相关阅读:
    hdoj 5311 Hidden String(KMP)
    hdoj 1532 Drainage Ditches(最大网络流)
    ubuntu中php+mysql环境搭建
    android:clipToPadding 和 android:clipChildren
    Js实现动画框架
    JavaScript初步认识
    JavaScript鼠标进入与退出监听动画
    Android框架集合
    Android 6.0(Android M)动态授权
    Android应用申请ROOT权限
  • 原文地址:https://www.cnblogs.com/mrwang1101/p/8023521.html
Copyright © 2011-2022 走看看