zoukankan      html  css  js  c++  java
  • Python 学习笔记 之 01

    数据类型

     整数

      十六进制和八进制使用0开头,0x12f, 010

     浮点数

      可以用科学记数法,如1.23x10^9 可以写成 12.3e8 ,0.000012可以写成 1.2e-5

     空值

      用None表示 , 注意大小写。
     整数的运算永远是精确的,浮点数运算可能会有四舍五入的误差。
     

    除法

     10/3 = 3.33333
     9/3 = 3.0
     

     地板除法

      10//3 = 3
      

     负数的地板除法

      负数的取整会取远离0的一方, 如 -10//3 = -4 , 因为-3.33333 取整后是 -4 。

    取余

      10%3 = 1
      取余的算法为 x%y == x-((x//y) * y)
     

    字符串

     '' 或者 ""

    字符串转义

     使用 , 或者 r'' 、 r"" 将指定字符串默认不转义

    字符串换行

     使用'''
     

    字符编码

    •  获取字符的整数表示
          ord()
    •  把整数编码转换为对应字符
          chr()
    •   用十六进制的方式表示字符的整数编码
           '十六进制编码'
    •  将字符从str转为bytes,这样每个字符仅占用一个字节,便于传输。
          b'ABC'
     
    •  将str编码为指定字符集的bytes
          'ABC'.encode('ascii')
    •  将bytes转为str
          b'ABC'.decode('ascii')
      
    如果bytes中包含无法解码的字节,会报错,忽略小部分错误可以使用 b'ABC'.decode('ascii'.errors='ignore')
     
    •  获取长度、获取str包含多少字符、获取bytes包含多少字节
          len()
          len('ABC')
          len(b'ABC')

    字符串格式化

     占位符

    •   整数      %d
    •   浮点数   %f
    •   字符串   %s
    •   十六进制     %x
     有几个占位符, 后面就跟几个变量、值
     
     format()函数
      {0},{1},{2}…… .format('a','b','c'……)

    list

     形式为['a',2,True,None……]
    •  获取元素个数
          len(list_name)
          len(['a','b'……])
    •  通过索引获取元素
          list_name[0] #第一个元素索引位为0
          list_name[-1] #获取最后一个元素
      
    索引超出范围时会报错,为避免报错,可以结合是同len() - 1 的方式来标记索引范围
    •  向list中追加元素
      •     追加到list末尾
               list_name.append()
      •     追加到指定位置 , 如超出元素个数,则插入到最末尾
               list_name.insert(x,'')
    •  向list中删除元素
          list_name.pop()
    •  删除指定索引位置的元素
          list_name.pop(x)
    •  替换某个元素,可以直接赋值给对应索引位
          list_name[2]='new_values'
    •  list可以作为元素被别的list包含
          取嵌套list的元素时,使用多层索引,如:
             lo = [1,2,3,['a','b','c'],4,5]
           如需取 a 值,  则使用 lo[3][0]
    •  如果一个list中没有元素,则长度为0
     

    tuple

     形式为('a',2,True,None……) ,和list几乎一样
    •  tuple初始化后不可以修改,所以不支持append、insert、pop
    •  tuple可以定义为空
    •  如果tuple中只包含一个元素, 在定义的时候要在元素后加逗号,如:

           t0 = ('a',) ,以避免与数学运算的小括号混淆。

    •  虽然tuple不可以修改,但是当tuple包含list时,list的内容是可以修改的。因此,要保证tuple中一个内容都不变,就要保证每一个元素都不可改变。
     

    条件判断

     形式为
      if x:
       active1
      elif y:
       active2
      else :
       active3
     判断行为用冒号,后续跟随的动作要缩进以代表判断后要执行的部分。

    循环

     for...in...循环

      形式为
       for x in y:
        active
      

     while 循环

      形式为
       while 条件:
        active

     批量生成整数序列

      range(n) #从0开始生成到n-1的序列,如果n小于0则为空
     

     退出循环

      break

     跳过本次循环

      continue

     不要滥用break和continue ,尽可能少用,尽可能用循环逻辑去代替break和continue
     

    dict

    1.  key-value存储,一个key只能对应一个value,后出现的key值会覆盖之前相同key的值.
    2.  key要用不可变对象,所以key不能用list。
    3.  dict是使用内存空间换取运行时间的方法,占用内存多于list,但是查找和插入速度极快。
     
     形式为 {'key1':value1, key2:value2 ,…… }
     调用时为 dict_name[keyx]
     key的存放顺序与录入顺序无关。
     
    •  调用时如果key不存在会报错,可以通过in来判断key是否存在
          'abc' in dict_name
    •  使用get()获取key对应的value,如果不存在,返回None
          dict_name.get(keyx)
    •   如果不存在,也可以返回定义值
           dict_name.get(keyx , VALUE)

     从dict中删除

          pop(keyx)

         如果不指定key ,会报错。

    set

    • 和dict类似,也是一组key的集合,但是不包含value。
    • 由于key不能重复,所以set中没有重复值
    • set内的list中的元素顺序并不表示set中的顺序,因此,set中的元素也是无序的。


     创建set需要一个list。
      s0 = set( [1,2,3,4,5] )
     or
      list1 = [1,2,3,4,5]
      s1 = set( list1 )

    •  添加元素到set中

          s0.add()
      添加到set中的元素不支持可变对象,因此list不能作为元素添加到set中

    •  从set中删除元素

          s.remove()
      一次只能remove一个元素。
    不可变对象 使用replace()函数对不可变对象值进行替换后,实际上原对象的值并没有变化,用print()函数对原对象进行输出既可以看出。
    所以,对于不可变对象来说,调用对象的任意方法都不会改变对该对象自身的内容,仅仅会创建新的对象并返回,这样就保证了不可变对象本身是永远不可变的。

  • 相关阅读:
    Oracle函数如何把符串装换为小写的格式
    Oralce中的synonym同义词
    JS中getYear()的兼容问题
    How to do SSH Tunneling (Port Forwarding)
    所谓深度链接(Deep linking)
    upload size of asp.net
    发一个自动刷网站PV流量的小工具
    解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示"The operation could not be completed." 的问题。
    在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录
    使用SQL语句获取Sql Server数据库的版本
  • 原文地址:https://www.cnblogs.com/konggg/p/9055877.html
Copyright © 2011-2022 走看看