一.基础语法
1.注释
1.1单行注释#
程序中不参与执行的说明性文字(不参与解释)
1.2.多行注释""""""
" " "
将说明性文字放在""""""中间
" " "
2.语句
一条有效代码就是一个语句
1)一般情况下一条语句占一行
2)一条语句结束不需要分号,如果多条语句写在一条语句之间要加;隔开
3)如果一条语法很长,需要多行显示的时候,在执行的时候需要用\连接
3.缩进
python是通过缩进和冒号来产生代码块的,在没有块语法的时候不能随便在代码中添加缩进
4.标识符和关键字
4.1标识符 - 用来给变量,函数,类取名用的
python中标识符要求:1)由字母,数字或者下划线(_)组成,数字不能开头
注意:python3.x中标识符可以出现中文,但是实际开发的时候不能这么做
4.2 关键字
有特殊功能或者特殊意义的一部分标识符就是关键字
import keyword # 导入 keyword 模块
print(keyword.kwlist) # 打印所有关键字
5.常用的数据
1)数字数据:用来表示大小的数据才是数字数据,数字数据在程序中表示的时候直接写
2)文本数组:用文字信息描述的数据就是文本数据,文本数据在程序中表示的时候需要放在单引号或者双引号中
3)布尔值:只有 True 和 False 两个值的数据,通常表示 真 和 假
6.常见的数据类型
数据类型是对数据的分类
1)int(整型) - 所有的整数对应的数据类型
2)float(浮点型) - 所有的小数对应的类型都是浮点型 (浮点型支持科学技数法)
print(3e4)
print(3e-2)
3)str(字符串) - 所有的文本数据对应的数据类型
4)bool(布尔) - True 和 False d对应的数据类型
5)其他常见类型 list(列表) tuple(元组) dict(字典) 迭代器 生成器 函数 自定义类型…
二.输入输出函数
1.输出函数 - print
用法一:print(数据) - 在控制台打印指定数据(打印结束后会自动换行)
print(‘hello world’)
用法二:print(数据1, 数据2, 数据3, …) - 在控制台的一行打印多个数据,数据之间用空格隔开,所有数据打印结束后换行
print(‘你好’, 100, False)
用法三:print(数据1,数据2,数据3,…,end=文本数据) - 在控制台的一行打印多个数据,数据之间用空格隔开,所有数据打印结束后打印指定的文本数据(不会换行)
print(‘hello world’, end=’’)
print(’!’)
方法四:print(数据1, 数据2, 数据3, …, sep=文本数据)
print(10, 20, 30, 40, end=’*’, sep=‘¥’) # end 和 sep可以换位置,不影响
print(150)
2.输入函数 - input
用法:input(输入提示信息) - 用变量获取输入提示信息后输入的内容(输入的时候按回车结束)
注意:不管输入的内容是什么,变量获取的数据类型都是字符串
tel = input(‘请输入手机号:’)
print(tel)
三.进制
数字在计算机中表现的方式常见的有四中:十进制 二进制 八进制 十六进制
1.十进制
1)基数:0,1,2,3,4,5,6,7,8,9
2)进位:逢10进1
3)位权:10的n次方(n从低位到高位从0开始依次增加)
1231 = 1103+2102+3*101+1*100
4)程序中的表现方式:直接写
123
100
2.二进制
1)基数:0,1
2)进位:逢2进1
3)位权:
101011 = 25+23+21+20 = 43
4)程序中的表示方式:二进制数前加 0b 或者 0B
0b101
0B110
3.八进制
1)基数:0,1,2,3,4,5,6,7
2)进位:逢8进1
3)位权:8的n次方(n从低位到高位从0开始依次增加)
123 = 18^2+281+3*80 = 83
4)程序中的表示方式:八进制数前加 0o 或者 0O
0o73
0O65
3.十六进制
1)基数:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
2)进位:逢16进1
9 + 6 = F
7 + 9 = 10
3)位权:16的n次方(n从低位到高位从0开始依次增加)
123 = 116^2+2161+3*160 = 291
4)程序中的表示方式:十六进制数前加 0x 或者 0X
0x9F
0X13A
注意:十进制数据能做的事情其他的进制数都可以做
print(291+1)
print(0x123+1)
四.不同进制之间的相互转换
1.其他进制转10进制:
手动转换:每一位上的数乘以位权在求和
0b1011 ->20+21+2^3 = 11
0o12 ->280+181 = 10
0xAF ->15160+10161 = 175
使用代码:直接用print函数打印
print(0b1011) # 11
print(0o12) # 10
print(0xaf) # 175
2.十进制转其他进制
手动转换:辗转取余法
100 = 0b1100100
100 = 0o144
100 = 0x64
print(0b1100100, 0o144, 0x64) # 100
八进制,十六进制与二进制之间的相互关系
八进制转二进制:将1位8进制数转换成3位的二进制
十六进制转二进制:将1位16进制数转换成4位的二进制
0o67 ->0b110 111
0xaf ->1010 1111
0xa8e4 ->1111 1000 1110 0100
8 4 2 1
二进制转八进制:将3位的2进制数转换成1位的八进制
二进制转十六进制:将4位的2进制数转换成1位的十六进制
0b011 010 111 011 ->0o3273
0b0110 1011 1011 ->0x6bb
4.代码转换
1)bin(数字) ->将其他进制转换成二进制
2)oct(数字) ->将其他进制转换成八进制
3)hex(数字) ->将其他进制转换成十六进制
print(bin(0o67))
print(oct(0xaf))
print(hex(0b10110))
五.原码,反码,补码
计算机存储数据的时候存储的是数字的补码
内存大小:
位(bit)
字节(byte): 1字节 = 8位
1Kb = 1024字节
1Mb = 1024Kb
1G = 1024 Mb
1T = 1024G
程序员编程能操作的内存的最小单位是字节:malloc(字节)
正数的原码,补码,反码相同
1.原码
原码 = 符号位+真值
符号位:最高位表示符号位(0表示正,1表示负)
真值:数字的绝对值的二进制
10的原码:0000 1010
256的原码:1000 0001 0000 0000
56的原码:0011 1000
171的原码:0000 0000 1010 1011
2.负数的反码 - 原码符号位不变,其他位取反
3.负数的
-10的反码补码:1111 0101
-3的反码:1111 1100
-2的反码:1111 1101
-3原码:1000 0011 -2原码:1000 0010
3.负数的补码 - 反码加1
计算机存储和操作数据操作的是补码,显示看结果的时候返回的原码
10的补码:0000 1010
-10的补码:1111 0110
-3的补码:1111 1101
-2的补码:1111 1110
3+2=5
0000 0011 + 0000 0010 == 0000 0101 ->5
3-2=1
0000 0011(原) + 0000 0010(原) == 1000 0101(原) ->-5(错的)
3-2=1
0000 0011(原) + 1111 1110(补) == 0000 0001(补) ->0000 0001(原) ->1