学习笔记(一)[语法基础]

作者:加菲猫 2018-09-05 197 0

数据类型

数字

  • 整数(int,long):内存决定长度,不支持自增(++)和自减(–)

  • 浮点数(float):带小数点的数,无穷小数会做精度处理

  • 布尔(bool):非空(None)非 0 → true,0 或空(None) → false

  • 复数(complex):表示向量,如:2 + 3j 或 2 + 3J

字符串(str)

  • 定义:单引双引交替使用,不可变

  • 索引:str[index],从左往右 → 从 0 开始,从右往左 → 从 -1 开始

  • 切片:str[start:stop:step],左闭右开

列表(list)

  • 定义:可保存任意类型,如:[1,0.2,'abc',[1]]

  • 操作:支持索引和切片,修改:str[index] = 任意类型的值

  • 字符串 → 列表:eval('[1,2,3,4]')

元组(tuple)

  • 定义:与列表类似,可保存任意类型,如:(1,0.2,'abc',(1)),只含有一个元素时,会转变成数据的类型,所以要加逗号:myTuple = (1,)

  • 操作:支持索引和切片,不支持修改,但可以修改其中的列表中的元素值

变量引用计数

  • 拥有相同值的变量共享一个地址

  • 用 sys下的 getrefcount() 查看引用计数

import sys
sys.getrefcount(value)
  • 优点:节约内存,防止产生多余的内存碎片

运算表达式

算数表达式

  • 除法精确到浮点数,其它运算返回值类型,取决于参与运算中最复杂的类型

  • //:向下取整,如:7 // 2 = 3

  • round():可控制结果精度,默认四舍五入,如:round(10/3,4) = 3.3333,round(10/3) = 3,round(7/2) = 4

  • %:取余,如:7 % 2 = 1

  • **:幂,如:2 ** 4 = 16

逻辑表达式

not a 非 a
a and b a 且 b
a or b a 或 b
a is b a 和 b是一个对象
a is not b a 和 b不是同一个对象
  • ==:只判断值

  • is:判断值、内存地址、数据类型

关系表达式

a == b a 等于 b
a != b a 不等于 b
a <> b 已废弃
a > b a 大于 b
a < b a 小于 b
a >= b a 大于等于 b
a <= b a 小于等于 b

位运算

~a 按位取反
a << n 左移 n 位
a >> n 右移 n 位
a & b 按位与
a | b 按位或
a ^ b 按位异或

二进制

计算机中存储的是补码,位运算是补码在进行运算,整数的源码、反码、补码都是其本身

1 -1 负数步骤
源码 0000 0001 1000 0001 符号位在第一位,正 → 0,负 → 1
反码 0000 0001 1111 1110 符号位不变,其它取反
补码 0000 0001 1111 1111 反码加一

判断、循环

if

if a == b:
    print('a == b')
elif a < b:
    print('a < b')
else:
    print('a > b')

while

a = 100
while a > 10:
    print('a > 10')
    if(a < 20):
        print('a < 20')
        break
    a = a - 10

for

for var in [1,2,3]:
    if var == 2:
        continue
print(var)

发表评论

最后一篇 上一篇: