29期第一周笔记

Week 1

本周学习主要内容包括基本环境安装(多版本共存,path路径),计算机基础知识,Python基础知识,基础语法,内建函数,数据结构(部分)

基本环境安装

1.使用Python 3.7.4 / 3.6.8 (64-bit)
2. 手动安装时增加环境变量以及勾选path路径
3. 引擎搜索“cmd”打开命令行
4. pip install ipython
5. Pycharm
6. Jupyter notebook(目前常用)

计算机基础知识

  1. 冯诺依曼体系(计算机五大部件)
  2. 五大核心部件:中央处理器(CPU)[独占两大部分]+存储器(Memory)+ 输入输出设备(Input/Output)
  3. 运行速度:“CPU最快内存次之,IO设备慢得要死”
    优化:根据CPU内存IO设备的运行特点做优化
  4. CPU只认二进制
  5. 高级语言需要解释器或编辑器变为计算机认识的低级语言
  6. 程序 = 算法 + 数据结构

Python基础知识

数字:

  • 整数int
  • 浮点数float
  • 复数complex

字符串:

  • 一般使用’或"
  • ‘’’ 和"""可以在其中自由使用单双引号且可换行
  • r前缀用于去掉转义字符\的转义作用
  • f前缀用于创建字符串,插值

续行:

在行尾使用\,\之后不能有任何字符,直接输入换行内容

语言类型:

强类型语言:不同类型之间操作必须先强制转换为同类型
弱类型语言:不同类型之前可以操作,自动隐式转换

进制:

  1. Python中表示十六进制用0x;表示八进制用0o;表示二进制用0b
    二进制表示十进制中的10:0b1010
    (可以用8421口诀)
  2. 1字节(byte)为8位(bit)
  3. 二进制转十六进制四位一断
    1111 = F = 15
    11111 = 1F = 31
    111111 = 3F = 63
    1111111 = 7F = 127
    11111111 = FF = 255
  4. 二进制中最低位是1,一定是奇数;最低位是0,一定是偶数

码制

  • 原码:1字节为例,给人看的,计算机不是这样储存
    short 0b10000000 00000001
    0b0000 0001 #正1
    0b1000 0001 #负整数1,原码中最高位置1表示负数

  • 反码:正整数反码与原码一样,负数不同,符号位不变,将原码的其余各位按位取反
    0b0000 0001 #正1
    0b1000 0001 #原码负1
    0b1111 1110 #反码-1

  • 补码:正整数补码与原码一样,负数不同,符号位不变,将原码的其余各位按位取反并在最低位+1,补码的补码是原码。。计算机内部在内存中,负整数就是使用补码存放的。
    0b0000 0001 #正1
    0b1000 0001 #原码负1
    0b1111 1110 #反码-1
    0b1111 1111 #补码-1, 【16进制中0xFF,即255, 但如果代表的是有符号数,代表-1】

0xFE 是1字节的有符号数,请问他是十进制多少? – (-2)
1000 0010 原码
1111 1101 反码
1111 1110 补码

运算符

  • 算术运算: +、-、*、/、**、%、//
  • 位运算:&、|、~、>>、<<、^
  • 比较运算:返回布尔值(bool) ==、!=、>、<、>=、<=
    不同类型之间可以比较是否相同,但不能比较大小
  • 逻辑运算符:and 与, or 或, not 非
    把所有操作的数值当作真或假来进行逻辑运算,完了之后返回的还是原来的值,逻辑运算and可以看成,所以1乘任何数为本来值,而0乘任何都为0,逻辑运算返回不一定是bool值!!
  • 赋值语句:先做等式右边然后赋值给等式左边
    Python中赋值即重新定义

基础语法

程序控制:

  • 顺序
  • 分支:单分支,多分支
  • 循环:while循环,for语句

多分支:

  • 只进一个循环,有语句块(注意缩进)
  • 前一个条件被测试过,下一个条件相当于隐含着这个条件
  • 只要有一个分支被执行,其他分支都不会被执行
a = -100
if a > 0: #进不去,测试过a不大于0
    print('positive')
elif a == 0: #隐含的条件 a<=0
    pritn('zero')
else: #隐含条件 a<0
    print('negative')

嵌套:(但不宜过深)

a = -100
if a > 0:
    print('positive')
else:# a<=0
    if a == 0:
        print('zero')
    else: # a<0
        print('negative')

while循环:

  • 死循环
  • 不太确定次数的循环

for语句:

  • 遍历,容易中所有元素不重复的取一遍(有的顺序会变,有的容器会为空,有的不会改动,取决于容器性质)
  • range()函数
range(stop) -> range object #始终点,默认起点就是0,
#返回的[0,stop),前包后不包[0,stop-1]
range(start, stop[, step]) -> range object
range(0,1) #[0,1) == range(1)  0  1个数据
range(0,10) #[0,10) == range(10) 0-9, 10个数据   计数器
continue
  • 当前循环:从continue、break语句往外找,第一个找到的for、while即为当前循环
  • continue即为跳过当前循环的当此循环,继续进行下一次循环
break
  • 结束当前循环
  • break和countinue都是只影响循环,并不是跳出if,而是终止if外的break所在的循环
  • 如果循环嵌套,continue和break也只影响语句所在的那一层循环
  • 分支和循环结构可以嵌套使用,可以嵌套多层
else
  • 一般情况下,循环正常执行,只要当前循环不是被break打断的,就可以执行else子句,哪怕是range(0)也可以执行else子句。

字符串拼接:

str(1) + 'a'

a = 123
b = 'xyz'
f'{a} - {b} === {a}' #>=3.6

"{} *** {}".format(a,b)

数据结构

内建数据结构:

  • 序列sequence:字符串str;字节序列bytes,bytearray;列表list,元组tuple
  • 键值对:集合set;字典dict

线性数据结构:

  • 线性表:(简称表),是一种抽象的数学概念,是一组元素的序列的抽象,它由有穷个元素组成(0个或任意个)
  • 顺序表:使用一大块连续的内存顺序存储表中的元素,这样实现的表叫顺序表,或连续表;在顺序表中,元素的关系使用顺序表的存储顺序自然地表示。
  • 链接表:在存储空间中将分散存储的元素连接起来,这样实现称为链接表,简称链表。
  • 链表是线性结构,内存分布上看着不连续,但是内部有指向,前一个元素指向下一个元素,所以它是有明确的顺序。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值