python自学笔记 20151126

  • %运算符
    • %元素安抚用来格式化字符串。在字符串内部,%s表示用字符串替换, %d表示用整数替换, 有几个%?占位符,后面就跟几个变量或者值,顺序要一一对应。如果只有一个占位符,括号可以省略
    • %d 整数
    • %f 浮点数
    • %s 字符串
    • %x 十六进制整数
    • 其中,整数可以指定是否补0;浮点数可以指定位数
    • %% 转义%
  • list
    • list = []
    • [-1] 表示list中倒数第一个 ,也就是最后一个 len(list) -1
    • list 中元素类型可以不同
  • tuple
    • tuple = ()
    • tuple 初始化不可以修改, 定义的时候元素就必须确定, 没有insert, append, pop等方法
    • 保证了代码安全
  • 条件判断
    • 缩进规则进行执行
    • 不要忘记*:*
  • 循环
    • for in
    • while
  • 字典
    • dic
    • key value
    • dic 内部存放的顺序和key放入的顺序是没有关系的
    • 占用内存比较多,内存浪费比较多
    • 查找和插入元素的速度比较快,不会随着key的增加而增加
    • dic 是一种用空间换取时间的一种策略
    • dic 的key必须是不可变对象
  • 集合
    • set
    • key 的集合,但不存储value ; set 中没有重复的key; set即无序和无重复元素的集合;set可以做数学意义上的交集、并集等操作
    • 创建set 输入为list
  • 不可变对象
    • 字符串, tuple
    • 调用不可变对象自身的任意方法,并不会改变对象自身的内容;相反,这些方法会创建新的方法并返回,这样就保证了对象本身是永远不可变的
  • 函数
    • python 参考文档 参考文档
    • 空函数 pass
    • 参数
      • 必选参数
      • 默认参数
      • 可变参数
      • 关键字参数
      • 参数定义的顺序是:必选参数,默认参数,可变参数,关键字参数
    • 定义可变参数与定义list or tuple 时,仅仅是在参数前面加上一个 *。在函数内部,参数接收到的是一个tuple。 调用可变参数函数时, 可以传入任意个数的参数,包括0个参数
    • 可以在list 或者tuple前面加上* 作为可变参数传进去
    • 关键字参数
      • 关键字参数允许传入0个或者任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict; 起到了一个扩展函数的功能;
    • 参数组合
      • *arg 可以看做容纳多个变量的list
      • **arg 可以看做容纳多个key value的dic
  • 递归函数
    • 每进入一次函数调用,栈就会增加栈帧,每当函数返回,栈就会减一层栈帧;故递归的次数增多,会导致栈溢出
    • 解决栈溢出的方法包括尾递归优化
    • 尾递归
      • 在函数返回的时候,调用自身本身, 并且return 语句中不能包含表达式。这样,编译器就会做尾递归优化,使递归本身无论调用多少次,都只会占用一个栈帧,不会出现栈溢出的情况;
      • 阶乘尾递归优化
        def fact(n):
        return fact_iter(n, 1)
        def fact_iter(num, product):
        if num == 1:
        return product
        return fact_iter(num - 1, num * product)
  • 列表生成式
    • 结构 [生成的元素 for 循环]
  • 12

*TODO
哈希表算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值