马哥博客作业第一周
核心基础
一、冯诺依曼体系
五大核心部件:中央处理器:运算器 控制器
存储器
输出(O)、输入(I)设备
二、python基础(数据类型,基础语法变量,条件语句,循环语句)
数据类型
-
注释:————#标注的文本
-
数字
-
整形 ,不分long、int
进制表示:二进制0b10 八进制0o10 十六进制0x10
-
bool类型:True(1) 、False(0)
-
-
浮点数float 1.2 4.5 -1.5
-
复数complex ,1+2j
-
字符串
- 使用 单双引号 ’ ” 引用的字符序列
- ’’’ """ 单双三引号,可以跨行、可以在其中自由的使用单双引号
- 在字符串前面加上r或R前缀,表示该字符串不做特殊的处理
- 3.6版本开始,新增f前缀,格式化字符串
基本语法
转义字符
- 【\\】【\t】【\n】【"】
- 前缀r,例如
a = r'abcd'
吧里面的所有字符当普通字符对待,即转义字符不转意
缩进
- python中,使用缩进的方式表示层次关系,约定使用4个空格为一个缩进
续航
- 在行尾使用,如果使用了括号,则括号内是一个整体,内部跨行不用\
标识符
标识符
- 只能是字母,下划线和数字,只能以字母或下划线开头,不能用python的关键字,例如def,class就不能作为标识符。
注意:python是对大小写敏感的
常量
- 一旦赋值就不能改变值的标识符,python中无法定义常量
字面常量
- 一个单独的量,例如‘12’,‘abcd’,等
变量
- 赋值后,可以改变值的标识符
语言类型
进制
常见进制:二 八 十 十六(重点:二进制 十六进制)
无符状态号0~255(256种状态)有符号状态中,负数有128个 最大负数-128 ,正数127个 最大127,加上0 256种
特殊二进制 十进制 十六进制(需记住)
二进制种的最低位为1,一定为奇数;最低位为0,一定为偶数
码制(原码、补码、反码)
-
正数的原码、补码、反码相同
-
负数
- 反码 符号位不变,其余位按位取反
- 补码 符号位不变,其余位按位取反+1
- 补码的补码为原码
False等价
反之为真
逻辑运算真值表
看作 与 (乘) 或 (加)
运算符Operator
-
算数运算符
-
+ 加,-减 ,*乘, /除、//向下取整整除,%取模,**幂
注:在python2/和//都是整除
-
-
位运算符
&与运算 特点:有0为0,两个非零数为1
| 或运算 特点:两个数做或运算,有一(非零数)则为一,同 为0则为0
~按位取反运算符。
^异或运算符,按位做异或运算,相同得0,不同得1
<<左移动运算 相当于乘以2的多少次方
>>右移动运算 相当于除以2的多少次方)
-
比较运算符(返回bool值)
==,!=,>, >=, <, <=
-
逻辑运算符(也是短路运算符)
与and 或or 非not
-
and:若前面表达式等价为False,后续无需运算,表达式最 终为False
例:1 and ’2‘ and 0—>0 and 1 and '2'(第二种为优)
-
or:若前面表达式等价为True,后续无需运算,表达式最 终为Ture
例:1 or False or None
-
注意,返回值不一定是bool型
-
把最频繁的使用的,最少计算的可以知道结果的条件放在前面,若可以短路,便能大大减少计算量
-
-
赋值运算符
=,-=,+=,/=,*=,//= 等
- 成员运算符
in , not in
-
身份运算符
is,not is
运算符优先级
表达式
- 表达式由数字、符号、括号、变量等的组合,有算术表达式,逻辑表达式,赋值表达式,lambda表达式等
- python中,赋值即定义,python是动态语言,只有赋值才能创建变量,并决定变量的类型和值
- 如果一个变量已经定义,赋值相当于重新定义
内建函数
数值型
类型转换
整除
math模块的floor(),cell()函数
内建函数int(),round(); 运算符整除//
round函数 四舍六入五取偶
math.floor()向下取整
math.cell()向上取整
int取整数部分
//整除且向下取正
常用数值处理函数
程序控制
单分支
多分支
- 多分支结构,只要有一个分支被执行,其余分支都不会被执行
- 前一个条件被测试过,下一个条件相当于隐含这个条件
while循环
多用于死循环,或不明确知道循环次数的场景
for 语句
continue
跳过当前循环的当次循环,继续下一次循环
break
结束当次循环
else子句
如果循环正常结束,else子句会被执行,即使是可迭代对象没有什么元素可迭代
如果使用break终止,else子句不会被执行
一般情况下,循环正常执行,只要当前循环不是被break打断的,就可以执行else子句,哪怕range(0)也可以执行else子句