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
  • 相关阅读:
    VIJOS-P1340 拯救ice-cream(广搜+优先级队列)
    uva 11754 Code Feat
    uva11426 GCD Extreme(II)
    uvalive 4119 Always an Interger
    POJ 1442 Black Box 优先队列
    2014上海网络赛 HDU 5053 the Sum of Cube
    uvalive 4795 Paperweight
    uvalive 4589 Asteroids
    uvalive 4973 Ardenia
    DP——数字游戏
  • 原文地址:https://www.cnblogs.com/mrwang1101/p/8023521.html
Copyright © 2011-2022 走看看