基本语法
一,快捷键
补充的新的
ctrl+/ 添加或取消一行注释
ctrl+n 新建
ctrl+f 搜索
ctrl+r 搜索+替换
ctrl+z 撤销
ctrl+shift+z 反撤销
TAB 补充代码
二,注释
- 注释:是程序中专门用来注释说明文字。不参与程序编译和执行。对程序的功能没有任何影响
- 单行注释:在说明性文字前加#
- 使用三个单或双引号阔起来了,设置多行注释
例:
"""
多行
注释
"""
三,标识符
- 标识符就是用来命名的,给变量、函数、类命名。
num = 10
print(num)
四,行与缩进
- python中对代码里面的所有有严格要求。同级代码前的缩进(空格/tab)的个数必须一致
- 行的规范:要求声明函数和类的前后需要有两个空行
print('hello world') # IndentationError
五,分段(行)显示
- 一句代码很长,需要多行来显示的时候,可以在需要换行的位置加\
注意:加\的时候不能将一个数据,一个变量名给拆开
num = 2837487 + 34398748 + 384798578 +\
37847578 + 347895789 + 457279 + \
345234757 + 3549087 + 3457078
如果代码是列表、元祖、字典、集合的字面量,可以直接换行,不用加\
list1 = [
12,
23,
4543,
'ahgshgd',
'sjhfjkh'
]
六,一行显示多条语句
- 一行显示一条语句的时候,后面不用加分号。但是如果希望在一行显示多条语句,那么多条语句之间必须加分号
print('aaa');print('bbb')
七,关键字(保留字)
- python中已经定义好的有特殊的功能或者特殊的意义的一些标识符,就是python的关键字。
命名的时候不能使用关键字
import keyword # 导入keyword模块
print(keyword.kwlist) # 打印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'
八,print函数和input函数
print(内容) - 在控制台中打印内容(内容必须是python数据)
print(内容1, 内容2, ..., 内容n) - 在一行打印多个内容,在控制台显示的时候多个内容之间用空格隔开
默认情况下,一个print中的内容占一行(以换行结束)。一个print中的多个内容用空格隔开
print(内容,内容1,...,内容n, end='换行标志')
print(内容,内容1,...,内容n, sep='分割标志')
print('打印1')
print(100)
print('abc', 'bcd', 200)
print('打印1', end='==')
print(100)
print('abc', 'bcd', 200, sep='@')
print('abc', 'bcd', 200, sep='')
结果如下
input() - 从控制台输入一串内容,以回车结束。并且将内容返回(以字符串的形式返回)
input('提示信息')
注意:程序执行到input的时候,程序会停下来,直到输入完成为止
print(input('请输入:'))
结果如下
常用数据类型
- python中常用的数据类型有:整型、浮点型、布尔、字符串、列表、字典、元祖、集合、函数等....
1.常见数据类型的字面量(常量)
整型: 100, 23, -129 -- 所有的整数
浮点型: 12.3, 45.0, -0.1123 -- 所有的小数
布尔: True, False -- 只有两个值
字符串: 'abc', "ahjs", '348sj', "上的+-" -- 由双引号或者单引号括起来的内容
列表: [12, 'abc', True]
元祖:(23, 89, 'asd')
字典:{'ab': 120, 18:'abc'}
2.数字相关类型
- python中和数字相关的类型:整型、浮点型、布尔、复数(虚数)
a.整型(int):整数对应的类型,包含了所有的整数。
python3.x中整数对应的类型只有一个:int
python2.x中整数对应的类型有:int和long
python中的整数,除了可以用十进制表示,还可以用二进制、八进制和十六进制进行表示
b.浮点型(float): 小数对应的类型,包含了所有小数。
支持科学计数法
例
12.90
-12.03
2e4 # 20000.0
print(2e4)
print(3e-2)
c.布尔(bool): 只有True和False, 其中True表示真,False表示假。
True实质就是数字1,False实质是数字0
True和False都是关键字
print(True, False)
print(1+True, 1+False)
结果如下
d.复数(complex): 所有的虚数对应的类型
数字后面加j,来表示复数的虚部。实部就是普通数字
例如
10+1j
20-9j
print((10+1j)+(20-9j))
结果如下
3.type函数
- type(数据) - 获取数据对应的类型
print(type(100))
print(type(10+2j))
结果如下
4.isinstance函数
- isinstance(数据,类型) - 判断指定的数据是否是指定的类型,结果是布尔值
isinstance(100, float) # 判断100是否是float类型
print(isinstance(100, float)) # False
print(isinstance(100, int)) # True
5.类型的强制转换
- 类型名(数据) - 将指定数据转换成指定类型
整型转成浮点型: 在整数的后面加.0 float()
浮点型转换成整型: 只保留小数点前面的整数部分 int()
其他类型转布尔: 0转换成False,其他的转换成True bool()
注意:复数不能转换成整型和浮点型,可以转换成布尔类型(不管什么数据都可以转换成布尔)
例
print(float(False))
print(int(False))
print(bool(10+10j))
结果如下
进制
1.十进制
基数:0,1,2,3,4,5,6,7,8,9
进位:逢10进1
位权:123 = 1x10^2 + 2x10^1 + 30x10^0 (10^n)
表示: 所有的数字都是10进制数(数字直接写)
例
23
10
78
2.二进制
基数: 0,1
进位: 逢2进1
位权: 1101(2) = 1x2^0 + 0x2^1 + 1x2^2 + 1x2^3 = 13 (2^n)
表示: 在二进制数前加前缀:0b或者0B
例
0b10101
0B01010
3.八进制
基数:0,1,2,3,4,5,6,7
进位:逢8进1
位权: 123(8) = 3x8^0 + 2x8^1 + 1x8^2 = 83 (8^n)
表示:在八进制数加前缀:0o或者0O
例
0o12
0O67
4.十六进制
基数:0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)(字母大写和小写都可以)
进位:逢16进1
位权: 123(16) = 3x16^0 + 2x16^1 + 1x16^2 (16^n)
表示: 在十六进制数的前面加前缀:0x或者0X
例
0x12a
0Xffee
0X1023
num = 0x1010
print(num)
结果如下
5.其他进制和十进制之间的转换
- 其他进制转十进制:每一位上的数*权值,然后再求和
110(2) = 1x2^1 + 1x2^2 = 6(10)
110(8) = 1x8^1 + 1x8^2 = 72(10)
110(16) = 1x16^1 + 1x16^2 = 272(10)
- 将十进制转换成其他进制
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. 二进制和八进制十六进制的相互转换
- 二进制转八进制:每3位的二进制转换成1位的八进制
001 100 100 110 010 011 100(2) = 1446234(8)
- 八进制转二进制:每1位8进制,转换成3位的二进制
6745(8) = 110 111 100 101(2)
- 二进制转十六进制:每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进制
例
num = 0xaf
print(num)
print(0b111 + 0b110)
结果如下
原码,反码和补码
1.计算机数据的存储
- 计算机能够直接存储的是数字,并且存的数字的补码
2.计算机内存大小单位
位(bit)
1字节 = 8位
1KB = 1024字节
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
3.原码:符号位+真值 (用最高位表示符号位,后面的其他为表示数字的二进制)
- 符号位: 0 -> 正, 1 -> 负数
- 真值 :数字对应的二进制值
10(原码) = 00001010
-10(原码) = 10001010
4.反码:
正数的反码和原码一样。负数的反码是符号位不变,其他位上的数取反(0变成1,1变成0)
10(反码) = 00001010
-10(反码) = 11110101
5.补码:
- 正数的补码和原码一样。负数的补码就是反码加1
10(补码) = 00001010
-10(补码) = 11110110
注意:数据存储和运算的时候采用的是补码。看结果看的是原码
例如:
如果计算机存储的是原码:
3:0011
2:0010
3+2 = 0101 = 5
3-2 = 3+(-2) = 1101 = -5
3: 0011
-2:1010
补码:
3(补) = 0011
-2(补) = 1101(反) = 1110(补)
0011(补)+1110(补) = 0001(补) = 0001(原) = 1
2-3
2:0010(原)= 0010(补)
-3:1011(原) = 1100(反)= 1101(补码)
0010(补)+ 1101(补码) = 1111(补码)= 1110(反) = 1001 = -1