第一章 1.1 计算机和Python基础
一、计算机基础
1.1、进制
- 计算机中的数字有四种存在形式,分别是:十进制、二进制、八进制和十六进制
1.1.1、十进制
1.基数:0-9
2.进位:逢10进1
3.位权:例:123 = 3*10^0 + 2*10^1 +1*10^2,其中10^x就是这个十进制数的权位
4.在Python中的表示方式:十进制数在Python中可直接书写
5.将其他进制的数字转换为十进制的方法:直接用输出函数:print()
例:
1.1.2、二进制
1.基数:0-1
2.进位:逢2进1
3.位权:例:1001011 = 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 0*2^4 + 0*2^5 + 1*2^6,其中2^x就是该数的权位
4.在Python中的表示方式:在二进制前加 0b / 0B ;例:0b1001/0B1001
5.将其他进制的数字转换为二进制的方法:bin(其他进制的数值)
例:
1.1.3、八进制
1.基数:0-7
2.进位:逢8进1
3.位权:例:167 = 7*8^0 + 6*8^1 + 1*8^2 ,其中8^x就是该数的权位
4.在Python中的表示方式:在八进制前加 0o / 0O ;例:0o123/0O123
5.将其他进制的数字转换为八进制的方法:oct(其他进制的数值)
例:
1.1.4、十六进制
1.基数:0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)
2.进位:逢16进1
3.位权:例:ef3d = d*16^0 + 3*16^1 + f*16^2 + e*16^3,其中16^x就是该数的权位
4.在Python中的表示方式:在十六进制前加 0x / 0X ;例:0xef3d / 0Xef3d
5.将其他进制的数字转换为十六进制的方法:hex(其他进制的数值)
例
1.1.5、进制之间的手动转换
1、十进制和其他进制
①:十进制转其他进制
辗转取余法:不断除2/8/16取余,然后从下往上将余数写出来。
②:其他进制转换成十进制
基数与权位的乘积求和。
2、二进制和其他进制
①:二转八:将二进制数从低位到高位每三位分开,将每三位转换成十进制,最后得到的既是一个八进制数;
例:0b1 011 011 -> 0o133
②:二转十六:将二进制数从低位到高位每四位分开,将每四位转换成十进制,如果数值大于10,则用a-f代替相应数值,最后得到的既是一个十六进制数;
例:0b101 1011 -> 0x5b
3、八转二、十六转二
①:八转二:将每一位八进制的数转换为三位的二进制数,最后得到相应的二进制数;
②:十六转二:将每一位十六进制的数转换为四位的二进制数,最后得到相应的二进制数。
1.2、计算机存储
1.2.1、存储单位
- 在计算机内最小的存储单位是 : bit(位)
- 在计算机内使用内存的最小单位是:bytes(字节)
- 其中:1bytes = 8bit
- 其他单位换算:
1KB = 1024 bytes
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1.2.2、计算机存储原理
- 在计算机中,数据有原码,反码,补码三种形态。而数据的存储都是以补码的方式进行存储的,原因是计算机只有加法器,负数在进行运算时不能得出正确的结果,所以只能通过存储补码的方式解决这个问题。
1.2.2.1、原码
- 原码 = 符号位 + 数字对应的二进制
- 符号位(只有一位):0代表正数,1代表负数
例:
12的二进制:1100 -> 00001100(原),其中最高位的0是符号位,代表正数。
-12的原码是:10001100,其中最高位的1是符号位,代表负数。
注:由于计算机中使用内存时调用的最小存储单位是一个字节,8位,所以原码、反码和补码的位数都是8的倍数。
1.2.2.2、反码
- 原码的符号位不变,其余位全部取反,其结果就是原码的反码
例:-12 -> 10001100(原码) -> 11110011(反码)
1.2.2.3、补码
- 补码 = 反码 + 1
例:-12 -> 10001100(原码) -> 11110011(反码) -> 11110100(补码)
注:正数的原码、反码和补码相同
二、Python基础
2.1、Python编程中常用的快捷键
序号 | 快捷键 | 功能 |
---|---|---|
1 | Ctrl+/ | 添加注释或取消注释 |
2 | Ctrl+S | 保存 |
3 | Ctrl+C | 复制 |
4 | Ctrl+V | 粘贴 |
5 | Ctrl+Z | 撤销 |
6 | Ctrl+X | 剪切 |
7 | Ctrl+F | 查找 |
8 | Ctrl+Shift+Z | 反撤销 |
9 | Ctrl+R | 替换 |
10 | Ctrl+D | 复制整行到下一行 |
11 | Ctrl+A | 全选 |
其他快捷操作: | ||
①:选区多行代码:先用鼠标点击选区开头,找到选区结尾,按住Shift键再点击选区结尾; | ||
②:同时操作多行代码:按住Alt键,用鼠标点击多行代码需要操作的位置即可。 | ||
2.2、Python基础语法
(一)、注释
- 注释是在编程中不参与编译执行的文字,用来对代码进行解释说明
1.单行整行注释:在该行代码的开头加 # 即可
2.单行部分注释:在需要注释部分的代码前加 # 即可
3.多行注释:在多行注释前后加三个单引号或者三个双引号即可
(注:单引号或双引号都是输入法为英文状态时的符号)
(二)、语句
- 一条语句占一行,一条语句结束后可以不加分号,如果多条语句在同一行,则语句之间必须加分号
例:
print('helllo world')
print('你好')
print('helllo world');print('你好')
(三)、缩进
- 一条语句开头不能随便缩进或空格,需要缩进的地方则必须缩进
小提示:IndentationError >>> 缩进错误
(四)、标识符
- 标识符是专门用来给函数、类和变量命名的
- 标识符的基本要求:
1、标识符由数字、字母和下划线组成
2、数字不能开头
(五)、关键字
- 有特殊功能或者特殊意义的标识符就是关键字,又叫保留字
- 常见关键字:['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 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']
(六)、常用数据
1.数字数据:用来表示大小,在程序中直接写
例:
print(100)
print(2+5j)
2.文本数据:文本信息对应的数据,在程序中需要用双引号或者单引号引起来
电话号,身份证号,门牌号等是文本信息
例:
print('木_Python')
print('13888888888')
3.布尔数据:用True表示真/肯定,用False表示假/否定,程序中只有True和False两种
所有类型的数据都能转换成布尔值,所有为数字如果为0,所有序列如果为空则都会转换成False,其他都为True
print(True)
print(False)
print(bool(0), bool(0.0), bool(''), bool([]), bool(()), bool(None))
list1 = [1,2]
if list1:
print('===')
elif not list1:
print('+++')
(七)、常见数据类型
1.数字类型:整型(int)、浮点型(float)、复数
2.文本类型:字符串(str)
3.布尔类型(bool):True和False
4.其他:列表(list)、字典(dict)、元组(tuple)、集合(set)、迭代器(iter)、生成器、函数(function)
type(数据) - 获取数据类型
print(type(100))
(八)、输入和输出
1.输出:print
print(数据) - 在控制台直接打印数据
print(10)
print('aed')
print(表达式) - 打印表达式的结果
print(10+10)
print(表达式1,表达式2,表达式3,...) - 在一行打印多个表达式的结果
print('你好',123,'1+2')
1.定制换行:
print('hello world',end= '你好,世界')
print('啥')
2.定制分隔:
print(1,2,3,4,sep='+')
2.输入:input
input(提示输入信息)
age = input('请输入年龄:')
print('输入的年纪是:',age,type(age))