day2 总结
一.Python程序
1.快捷键
ctrl + s - 保存
ctrl + / - 添加或取消一行注释
ctrl + c - 复制
ctrl + V - 粘贴
ctrl + n - 新建文件
ctrl + f - 搜索
ctrl + r - 搜索+替换
ctrl + z - 撤销
ctrl + shift + z - 反撤销
ctrl + a - 全选
shift + 鼠标 - 选中指定范围
tab - 补全代码
2.注意事项
程序中涉及到的所有和语法相关的符号,都是在英文输入法下对应的符号
二.python基础语法
1.注释
注释是程序中专门用来注释说明的文字。不会参与程序编译和执行。对程序的功能没有任何影响
单行注释:在说明性文字前加#
使用三个单引号或者三个双引号括起来,来设置多行注释
但是一般使用三个双引号
2.标识符
标识符就是专门用来命名的。给变量命名、函数命名、类命名等
要求:python中的标识符要求是由数字、字母和下划线组成,并且数字不能开头
注意,在python3.x,标识符中可以包含非ASCII码字符(非ASCII码包含中文、日语、韩语、拉丁等)。
但是,在实际开发的时候不要用
3.行与缩进
python中对代码里面的所有有严格要求。同一级代码前面的缩进(空格/tab)的个数必须一致
行的规范:要求声明函数和类的前后需要有两个空行
4.分段(行)显示
一句代码很长,需要多行来显示的时候,可以在需要换行的位置加\
注意:加\的时候不能将一个数据,一个变量名给拆开
示例:
2837487 + 34398748 + 384798578 +\
37847578 + 347895789 + 457279 + \
345234757 + 3549087 + 3457078
如果代码是列表、元祖、字典、集合的字面量,可以直接换行,不用加\
示列:
list1 = [
12,
23,
4543,
'ahgshgd',
'sjhfjkh'
]
5.一行显示多条语句
一行显示一条语句的时候,后面不用加分号。但是如果希望在一行显示多条语句,那么多条语句之间必须加分号
示列:
print('aaa');print('bbb')
6.关键字(保留字)
python中已经定义好的有特殊的功能或者特殊的意义的一些标识符,就是python的关键字。
命名的时候不能使用关键字
关键词有:
'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'
7.print函数和input函数
(掌握)
print(内容) - 在控制台中打印内容(内容必须是python数据)
print(内容1, 内容2, ..., 内容n) - 在一行打印多个内容,在控制台显示的时候多个内容之间用空格隔开
默认情况下,一个print中的内容占一行(以换行结束)。一个print中的多个内容用空格隔开
(了解)
print(内容,内容1,...,内容n, end='换行标志')
print(内容,内容1,...,内容n, sep='分割标志')
input() - 从控制台输入一串内容,以回车结束。并且将内容返回(以字符串的形式返回)
input('提示信息')
注意:程序执行到input的时候,程序会停下来,直到输入完成为止
print(input('请输入:'))
三.常用数据类型
pyrhon中常用的数据类型有:整型.浮点型.布尔.字符串.列表.字典.元祖.集合.函数等....
1.常见数据类型的字面量(常量)
整型:100,23,-129 - 所有的整数
浮点型:12.3,45.0,-0.1123
布尔:true,false - - 只有这两个值
字符串:'abc',"ahjs",'148sj',"上的+-" -- 由双引号或者单引号括起来的内容
列表:[12,'abc',True]
元祖:(23,89,'asd')
字典:{'ad':120,18:'abc'}
2.数字相关类型
python中和数字相关的类型:整型.浮点型.布尔.复数(虚数)
整型:整数对应的类型,包含了所有的整数。python3.x中整数对应的类型只有一个:int
python2.x中整数对应的类型有:int和long
python中的整数,除了可以用十进制表示,还可以用二进制.八进制和十六进制进行表示
浮点型(float):小数对应的类型,包含了所有小数。
支持科学计数法
12.90
-12.03
2e4 #20000.0
print(2e4)
print(3e-2)
布尔(bool):只有Teue和False,其中True表示真,False表示假。
True实质就是数字1,False实质就是数字0
True和False都是关键字
print(True,False)
print(1+True,1+False)
3.复数(complex):所有的虚数对应的类型
数字后面加j,来表示复数的虚部。实部就是普通的数字
print((10+1j)+(20-9j))
4.type函数
type(数据) - 获取数据对应的类型
print(type(200))
5.isinstance函数
isinstance(数据,类型) - 判断指定的数据是否是指定的类型,结果布尔值
isinstance(100,float) #判断100是否是float类型
print(isinstance(100,float)) # False
print(isinstance(100,int)) # Trye
6.类型的强制转换
类型名(数据) - 将指定数据转化成指定类型
整型转成浮点型:整数的最后加.0 float()
浮点型转换成整型:只保留小数点前面的整数部分 int()
其他类型转布尔:0会转换成False,其他的转换成True bool()
注意:复数不能转换成整型和浮点数,可以转换成布尔类型(不管什么数据都可以转换成布尔)
print(int(20.333))
print(float(100))
print(bool(0.0000000000))
print(bool(100+1j))
四.进制
1.十进制
a.基数:0,1,2,3,4,5,6,7,8,9
23
123
90
89
77677676
b.进位:逢10进1
c.位权:123 = 110^2 + 210^1 + 3*10^0 (10^n)
d.表示: 所有的数字都是10进制数(数字直接写)
123
10
78
67
2.二进制
a.位权: 1101(2) = 12^0 + 02^1 + 12^2 + 12^3 = 13 (2^n)
b.表示: 在二进制数前加前a.基数: 0,1011011010001001001
111010101
c.进位: 逢2进1
1+0 = 1
0+1 = 1
0+0 = 0
1+1 = 0 -- 进1
110 + 011 = 1001
101+110 = 1011
前缀:0b或者0B
0b10101
0B01010
0b2100 # SyntaxError: invalid syntax
3.八进制
a.基数:0,1,2,3,4,5,6,7
67
12
106465
b.进位:逢8进1
c.位权: 123(8) = 38^0 + 28^1 + 1*8^2 = 83 (8^n)
d.表示:在八进制数加前缀:0o或者0O
0o12
0O67
4.十六进制
a.基数:0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)
字母大写和小写都可以
123
12a
ff
ef
abc
abc12
b.进位:逢16进1
c.位权: 123(16) = 316^0 + 216^1 + 1*16^2 (16^n)
d.表示: 在十六进制数的前面加前缀:0x或者0X
0x12a
0Xffee
0X1023
num = 0x1010
print(num)
5.其他进制和十进制之间的转换
a.其他进制转十进制:每一位上的数权值,然后再求和
110(2) = 12^1 + 12^2 = 6(10)
110(8) = 18^1 + 18^2 = 72(10)
110(16) = 116^1 + 1*16^2 = 272(10)
b.将十进制转换成其他进制
100(10) = 1100100(2)
100(10) = 144(8)
100(10) = 64(16)
79(10) = 1001111(2)
79(10) = 117(8)
79(10) = 4f(16)
6. 二进制和八进制十六进制的相互转换
a.二进制转八进制:每3位的二进制转换成1位的八进制
001100100110010011100(2) = 1446234(8)
八进制转二进制:每1位8进制,转换成3位的二进制
6745(8) = 110 111 100 101(2)
b.二进制转十六进制:每4位的二进制转换成1位的十六进制
0110 0100 1100 1001 1100(2) = 64c9c(16)
十六进制转二进制:每1位16进制,转换成4位的二进制
6745(16) = 0110 0111 0100 0101(2)
a12(16) = 1010 0001 0010(2)
7.进制转换相应的函数 - 返回值是字符串
bin(数字) - 将数字转换成2进制
print(bin(100))
print(bin(0x6745))
print(bin(0o76))
oct(数字) - 将数字转换成8进制
print(oct(100))
print(oct(0x1af))
print(oct(0b110001101))
hex(数字) - 将数字转换成16进制
print(hex(100))
print(hex(0o67))
print(hex(0b11011101110))
所有进制最后会自动转换成10进制
tprint(0b111 + 0b110)
num = 0xaf
prin(num)
五.原码反码和补码
1.计算机数据的存储
计算机能够直接存储的是数字,并且存的是数字的补码
2计算机内存大小单位位(bit)
1字节 = 8位
1KB = 1024字节
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
3.源码:符号位+真值 (用最高位表示符号位,后面的其他位表示数字的二进制)
符号位: 0 -> 正,1 -> 复数
真值:数字对应的二进制值
10(源码) = 0 0001010
-10(源码) = 1 0001010
4.反码:
正数的反码和原码一样。复数的反码是符号位不变,其他位上的数取反(0变成1.1变成0)
10(反码)= 0 0001010
-10(反码)= 1 1110101
5.补码:
正数的补码和原码一样,复数的补码就是反码加一
10(补码)= 00001010
-10(补码)= 11110110
注意:数据存储和运算的时候采用的是补码。看结果看的是原码