2018-02-26Python 学习笔记

  • 内存分配规则
  • 算法小练习,冒泡、递归、二叉树更多等
  • lamda 使用方法
  • 多线程

字符串拼接

first_name="ada"
last_name="lovelece"
full_name= first_name+" "+last_name
print (full_name)
ada lovelece
  1. 变量名只能包含字母数字下划线,但是不能数字开头、变量名不能包含空格
  2. 不能将python关键字和函数作为变量名称
  3. 慎用字母L和O,很可能被看成0
name ="ada lovelace"
print  name.title()
首字母大写

整数、浮点数

浮点数,所有语言都存在这样的问题


image.png
  1. 为什么0.1+0.2的结果是0.30000000000000004
 我们知道,计算机中存储的都是二进制的0和1,而我们现实中的数存入计算机中转换为二进制时有可能不能整除,也就是不能正好整除,所以用二进制表示现实中的数并计算就产生了误差。

  把十进制的0.1和0.2转换为二进制:

0.1 => 0.0001 1001 1001 1001…(1001无限循环)
0.2 => 0.0011 0011 0011 0011…(0011无限循环)

但是我们计算机的硬件存储的位数是有限制的不可能无限循环下去,一般双精度浮点数总共占用64位,其中最多53位为有效精度数字(包括符号位),所以存储时:

0.1=>0.0001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001 1001
0.2=>0.0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011
0.1+0.2=> 0.0100 1100 1100 1100 1100 1100 11001 100 1100 1100 1100 1100 1100

转换为十进制就是:0.30000000000000004
  1. 浮点数的长度是多少
1. 计算机硬件存储设备是有限的一般双精度浮点数共占用64位,其中最多是53位为有效精度数字
2. 单精度浮点数(float)与双精度浮点数(double)
3. 
•单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38  8进制
•双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308 16进制
  1. 整数的长度是多少
因为2进制计算
32位系统上是 2**31 - 1,64位系统上是2**63 - 1
  1. 整数运算11/4=2
  2. 浮点数运算11.0/4.0=2.75

语句与函数

  1. 语句是语法范畴,比如if 语句、while语句、for语句、lamda、print正则表达式等,是将固定标记翻译成机器语言或者函数,直接计算,是固定的语法结构不能改变。
  2. 函数将数据接收后做一系列的处理,可以修改函数实现过程

列表

  1. 删除列表指定元素 del 语句
    删除角标为0 的元素 :del list[0] 删除后无法访问了
  2. 删除列表指定元素 pop()方法
    默认:pop()弹出列表末尾元素
    指定元素:pop(0)弹出指定索引元素
    pop_ele=list.pop(0)弹出的元素可以继续使用 ,这里del语句 不可以
    同时list列表元素正常弹出角标为0 的元素
  3. 删除列表指定元素remove()
    根据 值 删除列表元素,删除列表中出现的第一个元素
    list.remove(a) 删除列表中的a元素
  4. 列表的排序
  • 永久性修改,原始排列顺序已经修改
    list.sort() 永久性的修改了列表元素的排列顺序,升序排列
    list.sort(reverse=True),永久性的修改了列表元素的排列顺序,降序排列
  • 临时性修改,原始排列顺序不修改
    list.sorted()、list.sorted(reverse=True) ,可以复制使用
  • 倒着打印列表,永久性修改列表
    list.reverse(),调用2次就可以恢复原来的样子

你可能感兴趣的:(2018-02-26Python 学习笔记)