python基础学习笔记(2)

补上之前学习的笔记,这次学习时间2018年10月26日

01-原码反码和补码

"""

bit(位) --> 0/1

1byte(字节) = 8bit

1KB = 1024byte

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

"""

# 计算机存储数据存的都是数字,存的数字的补码

# 1.原码

"""

原码:数字的真值加符号位。第一位是符号位(0->正数, 1->负数),后面存放数字的真值

# 前提:用一个字节来表示

10(原码):00001010

-10(原码): 10001010

"""

# 2.反码

"""

反码:正数的反码和原码一样。负数的反码是原码符号位不变,真值取反(0->1;1->0)

10(反码):00001010

-10(反码): 11110101

"""

# 3.补码

"""

补码:正数的补码和原码一样。负数的补码就是反码加1

10(补码):00001010

-10(补码):11110110

补码转原码

"""

# 注意:一个数在计算机中存的是补码,运算时也是使用补码去做运算。拿出来使用的时候看到的是原码

"""

为什么计算机在存数据的时候要存补码?

因为计算机只能进行加法运算(加法器)

3-2 = 3+(-2)

3(原):00000011

-2(原):10000010

3-2 = -5(错!)

3(补):

00000011

-2(补):11111101(反)-> 11111110(补)

00000011 + 11111110 = 00000001(补) -->  00000001(原) - 1

3-2 = 1

"""

02-标识符和关键字

# 1.标识符

"""

声明变量,声明函数,声明类等。变量名,函数名,类名等,需要使用标识符来命名。

a.要求是由字母、数字和下划线组成(python2.x), 还可以是中文(python3.x)

(但是,实际开发的时候不建议包含中文)

b.数字不能开头

c.大小写敏感(a和A不一样)

"""

# 2.关键字(保留字)

"""

系统保留下来用于特殊功能和特殊意义的一些固定标识符。

'False', 'None', 'True', 'and', 'as', 'assert', 'break',

'class', 'continue', 'def', 'del', 'elif', 'else',

'except', 'finally', 'for', 'from', 'global', 'if', 'import',

'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass',

'raise', 'return', 'try', 'while', 'with', 'yield'

"""

import keyword

# 打印python中所有的关键字

print(keyword.kwlist)

03-数据类型

# 1.常用数据类型

"""

数字相关: 整数(int)、浮点数(float)、布尔(bool)、复数(complex)

字符串(str)

列表(list)

字典(dict)

元祖(tuple)

函数(function)

...

a.整数

python3.x整数只有int; python2.x整数有int, long;

int类型可以表示python中所有的整数(没有小数点的数)

例如: 100, 10, 0, -23, -100000000000899988, 0b111000

b.浮点数(float)

用来表示python中所有的小数

例如:12.3, 0.12, -90.5,

c.布尔(bool)

用来表示真和假(成立和不成立)。对应的值只有True(真)和Flase(假)两个

True --> 1

Flase --> 0

可以将布尔值当成整数1和0来用

d.复数(complex) -- (了解)

表示所有的复数(由实部和虚部组成的数)

"""

# 2.type

"""

type(数据) --> 获取数据对应的类型

"""

print(type(100))  # int

print(type(0.0))  # float

print(type(10j))  # complex

var = 'abc'

print(type(var))  # str

# 3.isinstance

"""

判断指定的数据是否是指定的类型

isinstance(数据, 类型名) --> 返回的一个布尔值

"""

print(isinstance(12, bool))  # 判断12是否是bool(布尔类型)

print(isinstance(True, bool))  # 判断True是否是bool

# 整数

100

-100

0

0b11100

0o123

0x7a78

# 浮点数

19.89

-239.0

2e3  # 2*10^3

print(2e3)

# 复数

10j

100+10j

89j

04-变量

# 1.什么是变量

"""

在程序中存储数据的容器

"""

# 2.定义/声明变量

"""

语法:

变量名 = 值 

变量名1 = 变量名2 ... = 值

说明:

变量名 ->  a.必须是标识符  b.不能是关键字 (要求)

      c.PEP8命名规范(如果名字中有字母,所有的字母都小写;如果名字由多个单词组成,单词和单词之间用下划线隔开)

      d.见名知义(看见名字就知道变量存的是什么数据)


=  -> 赋值符号,将=右边的数据,保存到左边的变量中

值 -> 所有有结果的表达式都可以,不能是赋值语句

"""

# in = 12    # 错误! 变量名不能是关键字

# 1abc = 100    # 错误!不满足标识符要求

student_name = '小明'

age = 18 + 10

print(age)

score = 100

# 同时声明多个变量

a = 10  # 声明变量a,赋值为10

b = c = 20  # 声明变量b和c,赋值为20

print(a, b, c)

a1 = 10; a2 = 20

a3, b2 = 10, 20

print(a3, b2)

aa = 100

aa = 200  # 同一个变量赋不同的值,后赋的会覆盖先赋的值

print(aa)

# 3.python声明变量和给变量赋值的原理

"""

python是动态语句

C:

int a = 10;

python:

a = 10

python中所有变量都是类似C中的指针,只保存数据的地址。

用变量给另外一个变量赋值的是,是将当前变量中存的地址赋给另外的变量

"""

a = 10

# 看a中的数据是什么类型

print(type(a))

a = 'abc'

print(type(a))

a = [1, 2, 3, 4, 5, 5,6]