• python学习笔记


    先贴一个教程

    基本操作

      ▲input('……')     
       输出引号里内容并读入

      ▲print('……',a,b)  
       引号里内容原样输出;每用一个逗号分隔都会输出一个空格;
       print('%d %s %.2f' % (2,'123',3.0))
       输出一个%需要用%%转义
       末尾会默认加一个换行,可以用print(……,end=' ')取消回车
       注意可以把输出的值放在list里再输出来加速
       print (' '.join(map(str, res)))

      ▲print('''A
       B
       C''')
       每行都能换行。

      ▲#注释

      ▲单引号和双引号都可以表示字符串;用进行转义。

      ▲缩进决定子程序;if和else后要加冒号。可以用elif代替else if。

      ▲for循环:
       for i in range(0,100000):
       本质是生成了一个很大的list然后一个个访问过去。

      ▲while循环:
       while (x>0):

      ▲int():转化成整数。

      ▲import math:导入math库。

    容器的使用

      ▲list:
       类似于vector,用中括号定义。 a=[1,2,3]
       用len(a)测长度;a[-x]表示倒数第x个数是什么。
       用append(x)在末尾添加一个元素,用insert(p,x)加入到指定位置;用pop()删除最后一个,用pop(i)删除指定位置。
       ls.copy()生成一个等于ls的新的列表。
       使用较为灵活。比如ls+=lt(或ls.extend(lt))表示将lt接到ls后面;
       list里面的元素可以不是同一个类型,甚至可以嵌套list。
       tuple与list类似,但是不可变(没有加入、删除函数);用小括号来定义。

      ▲dict:
       类似于unordered_map,用大括号定义。d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
       可以直接用中括号访问和修改。
       可以用'Bob' in d 进行询问是否存在;也可以用d.get('Bob',-1)访问,没有元素返回-1。
       用d.pop('Bob',-1)删除。
       for循环in后面可以放dict类型。直接引用默认迭代key。
       如果要迭代value,用for value in d.values()
       如果要同时迭代key和value 用for k, v in d.items()。
       enumerate()可以把list转化为“下标-list”的pair

      ▲set:
       用小括号和一个list定义。s = set([1, 2, 3])
       用add(key)和remove(key)进行加入和删除。
       注意可以完全看做一个集合,因此可以进行s1&s2,s1|s2等运算。

    函数相关

      ▲用lambda快速定义函数
       比如f=lambda x,y:x+y

      ▲定义一个普通函数
       def move(x, y, step, angle=0):
          nx=ny=1
          return nx, ny

      ▲传入可变参数
       def calc(*numbers):
          sum = 0
          for n in numbers:
             sum = sum + n * n
          return sum
       调用的时候,可以往Move里放0或多个参数(如move(1,2,3))。进入函数后,它们会打包成一个list。
       如果就是要往里面传整个list类型的东西,可以简写成move(*List)。

      ▲传入关键字参数
       def person(name, age, **kw):
          print('name:', name, 'age:', age, 'other:', kw)
       调用的时候,可以在末尾放0或多个参数,比如person('Adam', 45, gender='M', job='Engineer')。
       进入函数后,它们会打包成一个dict。同样的,可以简单地用**Dict来传入一个dict类型的容器。

      ▲传入命名关键字参数
       def person(name, age, *, city, job):
      中间要加个*号以示区分。在这样的情况下,后面只接受名字(第一维)为city,job的关键字。
      如果之前已经定义过可变参数了,那么不用加*来区分了。

      ▲定义函数参数的顺序:必选参数->默认参数->可变参数->命名关键字参数->关键字参数
      def f(a, b, c=0, *args, **kw):
         print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)
      甚至可以组装一个tuple和一个dict直接传进去,即任意一个函数f都可以用形如f(*args,**kw)的形式调用。

      ▲基本函数
       eval()将引号里的东西用python表达式计算结果
       math.sqrt()
       math.acos()
       abs()
       round(x,2)保留2位小数

      ▲随机数相关(import random)
       seed(x)
       random() 生成[0.0,1.0)之间的随机小数
       randint(a,b) 生成[a,b]之间的整数
       shuffle(seq) 把一个序列类型打乱

    高级特性

      ▲使用import decimal调用浮点数高精度库。
       设置计算时的精度:decimal.getcontext().prec=n
       将一个数x转化为它:decimal.Decimal(x)
       初始化常量时,要用单引号括起来。
      
      ▲切片
       a[0:3] :截取list里固定的一段(注意下标左闭右开)。支持负数,0可以省略。
       a[:10:2]:前10个数里每两个中取一个(即a[0],a[2],a[4],a[6],a[8])。中间的数省略,视为在整个list里选。

      ▲列表生成式
       [x * x for x in range(1, 11)]
       甚至可以加判断 [x * x for x in range(1, 11) if x % 2 == 0]

      ▲生成器generator
       定义方式①:将列表生成式的[]替换成()
       每次用g.next()调用下一个值;也可以用 for i in g 循环调用
       定义方式②:用函数。每次在关键字yield后抛出一个值,next后从上次抛出位置继续。
       def fib(max):
          n, a, b = 0, 0, 1
          while n < max:
             yield b
             a, b = b, a + b
             n = n + 1
          return 'done'

    文件相关

      ▲打开和关闭
       <变量名>=open(<文件名>,<打开模式>)
       打开模式和C类似。'r'是只读,'w'覆盖写,'a'追加;'t'为文本文件类型,'b'为二进制文件类型;末尾加一个'+'表示在原功能上同时加上读写功能。
       open默认以"rt"的方式打开;如果读入图片、音乐等,就要用'*b'打开。
       释放文件使用权:<变量名>.close()

      ▲读写格式
       .readall()
       .readline(size=-1) 读入一行。(如果有参数,就是读入size个字符)
       .readlines(size=-1) 读入所有行,放到一个list里。
       文件变量本身是行序列,所以可以用 for line in <文件名>: 遍历。
       .write(s) 写入s
       .writeline(lines) 将一个字符串list写入文件
       .seek(offset)改变文件里操作指针位置。0(开头),1(当前位置),2(文件结尾)

    库的使用

    turtle库

  • 相关阅读:
    Json对象与Json字符串互转(4种转换方式)
    Web.config配置文件详解
    jQuery BlockUI Plugin Demo 6(Options)
    jQuery BlockUI Plugin Demo 5(Simple Modal Dialog Example)
    jQuery BlockUI Plugin Demo 4(Element Blocking Examples)
    jQuery BlockUI Plugin Demo 3(Page Blocking Examples)
    jQuery BlockUI Plugin Demo 2
    <configSections> 位置引起的错误
    关于jQuery的cookies插件2.2.0版设置过期时间的说明
    jQuery插件—获取URL参数
  • 原文地址:https://www.cnblogs.com/jiangshibiao/p/8447895.html
Copyright © 2020-2023  润新知