Python基础_Day02
1.听写
写出过程
1.将二进制转化为十进制
0b1011010
0 + 2 + 0 + 8 + 16 + 0 + 64 = 90
2.将二进制转化为八进制
0b 001 011 101 110 101
1 3 5 6 5
0o13565
3.将二进制转化为十六进制
0b 0010 1101 0101 1011
2 d 5 b
0x2d5b
4.将十进制转化为二进制
111.125
3 2 1 0 -1 -2 -3
8 4 2 1 0.5 0.25 0.125
64 + 32 + 8 + 4 + 2 + 1
1101111.001
5.以八位为例 计算下列数据
-18 + 9
-9 + 18
1001 0010
1110 1101
1110 1110
0000 1001
---------
1111 0111 ----> 1111 0110 ---> 1000 1001 ---> -9
1000 1001
1111 0110
1111 0111
0001 0010
---------
1 0000 1001 ----> 9
6.设置环境变量的目的
需要解释器解释python文件 py文件是可以存放在任何目录下的
在任何目录下都可以获得解释器执行py文件 -----> 设置环境变量path
2.课程概述
1.python发展史
2.系统的32b和64b之分
3.变量
4.标识符
5.初见数据类型
6.输入
7.数据转换常用功能
8.运算符
9.流程控制语句 - 分支if语句
3.Python的发展史
Python底层是由C语言实现的 正式版本公布于1991年
研发出来是在1989年 荷兰人"硅叔"
网站 —>1999年才支持网站开发
爬虫
人工智能
2000年出现的2.0
2004年出现了经典版本 2.4 —>Django写网站的框架
2008年 2.6
同一年的12月 3.0版本出现了 —>不兼容2.0的
因为3.0没有被使用 2.6.1 小版本的出现 是为了做一个到3.0的过度
2010年出现了2.7,完成了2.x—>3.x的一个过度
2020年不再对2.x进行维护
4.系统32b和64b的区别
CPU 一次处理数据的能力: 32b还是64b
32b 能支持的电脑的内存是 2^32 —> 4G 真实使用的话也就3.7G
64b 能支持的电脑的内存 2^64 —> 能达到数亿位
5.变量
变量: 某个内容的数据值是变化的
数学题:
一辆车A以匀速每小时100km行驶在路上 问多少小时后行驶1000km
一辆车B以匀速每小时150km行驶 A行驶1000km之后 B出发 问多少小时后B能追上A
解: 设x小时候 A行驶2000km y小时候B追上A
100 * x = 1000
x = 20.0
100 * (x + y) = 150 * y
变量在程序中的作用:
变量的作用是为了存储运算过程中一些变化的结果 便于后期的使用
官方的解释:
变量就是来存储数据的 以便于后期的使用和修改, 为了方便获得数据, 为数据提供了一个标记性的描述名字[变量名]
Python中如果想使用一个变量的话 该变量必须先被声明出来 并赋予一个初始值
使用变量的时候 给该变量起一个标记性的名字[自定义名字]
对于自定义名字需要符合一些规范: 标识符规范
6.标识符
标识符的组成 英文字母 - 数字 -下划线
自定义名字的注意事项:
- 不能以数字开头
- 不能包含其他符号
- 不能使用Python已经提供的关键字 或者 已被python占用的名字
自定义变量名 自定义py文件的名字 自定义函数名 类名…
7.初见数据类型
项目名字命名规则: 采用的是驼峰制: 大驼峰
每个单词的首字母都是大写的 例如 FirstDemo
py文件的名字是采用小写字母 每个单词之间使用下滑线隔开
python3.x默认采用的编码是utf-8的编码
在python3中变量名可以为中文 但是这种格式不建议使用
一个变量的数据类型是由值来决定的
变量名区分大小写的 大小写敏感
功能: 检测变量的类型 type(变量名)
系统提供的数据类型:
整型(int)
表示的是变量的值是整数
浮点型(float)
表示的是变量的值是小数
复数类型(complex)
有实部和虚部 这种数据不常用
3j + 4
布尔类型(bool)
这种类型只有两个值 True 和 False
字符串类型(str)
标识是引号 由引号包含一个或者多个字符 不区分单双引号
列表(list)
标识是 [] 是一个容器 来存放多个变量的值的 有序的
在容器中每加入一个元素 都会自动为该元素添加一个编号 这个编号是从0开始的
这个编号又称之为下标 / 脚标 / 索引
根据编号获得容器中的内容 或者 进行修改
元组(tuple)
元组的标识 () 也是一个容器 来存放多个变量的值 有序的
在容器中每加入一个元素 都会自动为该元素添加一个编号 这个编号是从0开始的
这个编号又称之为下标 / 脚标 / 索引
根据编号获得容器中的内容
和列表的区别:
元组中的内容是不允许发生变化的
小括号还有提高运算符优先级的功能,如果小括号中只有一个值,这个小括号就表示的提高优先级的功能,不是表示元组的,如果需要元组中只存放一个元素 ,需要在这个元素的后面添加逗号,通过逗号来表示该数据是一个元组
字典(dict)
存放的是具有映射关系的键值对 键和值是一一映射对应的 无序的
字典的标识是 {}
key:value
key具有唯一性 需要根据key来进行查找的
集合(set)
把集合当做存放字典的key值 在集合中元素是不能重复的 作用用于排重
集合是无序的 --->添加顺序和显示顺序不一致
集合也是没有索引的
声明变量在内存中的过程:
如果想在程序中使用某个内容 前提这个内容必须在内存中存在才可以使用
现在内存中开辟一块区域 这个区域中存放变化的数据
8.输入功能
input(提示语)
这个功能会返回一个结果: 这个结果是用户输入的数据
python3.x中 无论用户输入的是什么数据 最后在程序中接收到的都是字符串类型
9.数据转换
1. 将数据转化为整型
int(数据)
如果数据是字符串类型的 除了正负号之外 不允许有其他符号 否则转换失败
浮点型的话 直接强转为整型 --->取整
bool True为1 False为0
2.将数据转化为浮点型
float(数据)
如果数据是字符串类型的 除了正负号和与数值挨着的第一个小数点之外 不允许有其他符号 否则转换失败
3.将数据转化为bool类型
bool(数据)
数值中: 非0即为True
字符串: 空字符序列为False 其他为True
None: 表示的是False
4.将数据转换为字符串类型str
str(数据)
5.将数据转化为二进制
bin(数据)
6.将数据转化为八进制
oct(数据)
7.转换为十六进制
hex(数据)
8.获得字符对应的十进制数据
ord(字符)
字符 --->由引号包含的单个符号
9.将十进制数据转化为对应的字符
chr(数据)
10.解析代码
eval(字符串)
将字符串中的代码可以解析出来
练习
1. 用户输入一个小写的英文字母 ---> 输出该英文字母对应大写格式
a ---> A
2. 用户输入一个算术式 输出该算术式的结果
12 + 15 - 7 ---> 20
10.运算符
算术运算符
基本运算符
+ 加
- 减
* 乘
/ 除
// 整除 [把除的结果只取整数部分]
% 取余/模 [整除之后余数]
** 幂数 [求次方 x**y x的y次方]
复合运算符
= 赋值运算符
+=
-=
*=
/=
//=
%=
**=
关系运算符
关系运算符的结果是bool类型的 这个关系要么成立 要么不成立
大于 >
小于 <
大于等于 >=
小于等于 <=
恒等 ==
不等于 !=
逻辑运算符
关联多个关系表达式的 最后的结果也是bool类型的
逻辑与(and)
类似于并且的关系 一假则全假
True and False = False
True and True = True
逻辑或(or)
一真则全真
逻辑非(not)
真变假 假变真
not True = False
not False = True
这三个运算符的优先级: not > and > or
逻辑与和逻辑或有短路原则:
逻辑与的短路原则:
根据一假则全假得出的
and运算符左边的表达式不成立 右边表达式不参与运算 直到or的位置为止
逻辑或的短路原则:
根据一真则全真得出的
or运算符左边的表达式成立 右边表达式不参与运算
根据短路原则 获得三元表达式:
value = 条件表达式 and 表达式1 or 表达式2
条件表达式成立 将表达式1的结果给value
否则将表达式2的结果给value
成员运算符
针对于序列而言的
检测某个内容是否在指定的序列中
字符串 列表 元组 字典 集合
元素 in 序列
某个元素是否包含在指定序列中
元素 not in 序列
某个元素是否不包含在指定序列中
身份运算符
验证的数据的地址是否一致
x is y
如果为True 代表两个地址相同 id(x) == id(y)
x is not y
如果为True 代表两个地址不相同 id(x) != id(y)
位运算符
规则: 1视为True 0视为False
针对于二进制数来做运算的 上下关系对应 根据运算符判定对应位真或者假 真的话设置为1 假的话设置为0
包含符号位进行运算的
按位与(&)
上下位 一假则全假
6 & 7
0000 0110
0000 0111
---------
0000 0110 ---> 6
按位或(|)
上下位 一真则全真
6 | 7
0000 0110
0000 0111
---------
0000 0111 ---> 7
按位异或(^)
上下位 相同为假 不同为真
6 ^ 7
0000 0110
0000 0111
---------
0000 0001 -----> 1
一个数与相同的数异或两次结果是其本身[简易的加密]
1 ^ 7
0000 0001
0000 0111
---------
0000 0110 -----> 6
交换两个变量的值:
a = 10, b = 12
借助三方变量
c = a
a = b
b = c
根据异或的结论: 一个数与相同的数异或两次结果是其本身
简单粗暴的方式: a , b = b , a
按位取反(~)
将每一位上的0变1 1变0
~7
0000 0111
~
1111 1000[补码] --->反码 1111 0111 --->原码 1000 1000 ---> -8
按位左移(<<)
一种款速计算方式
快速计算出2**3的值 1 << 3
左移之后 右边空出补0
12 << 2 脑子中快速计算方式: 12 * 2 ^ 2 = 48
0000 0001
按位右移(>>)
右移之后 左边空出 正数补0 负数补1
快速计算方式
48 >> 2 48 // 2 ^ 2
推荐阅读