20220925培训班第一周学习总结--及二进制相关知识
markdown主要语法介绍:
标题系列:
1. 大标题:
功能快捷键标题ctrl+1 或用#号表示,#一级标题,##表示二级标题,依次类推,快捷键ctrl+1、2、3、4、5、6 最多6级标题。
2. 小标题(或者叫列表):
Markdown语法i 支持有序列表和无序列表。 无序列表可以使用星号*、加号+或是减号-作为列表标记: 不管是无序列表还是有序列表,符号后面一定要有一个空格,起到缩进的作用。
例如无序标题: *空格键xxx文本 按回车键,就到下一个无序小标题了,连按两下回车键,结束无序例如小标题的书写。 符号后面一定要有一个空格 *按键 Shift+8
* 无序列表文字
+ 无序列表文字
- 无序列表文字
有序小标题:1.空格键XXXX文本 按回车键,就到下一个有序小标题了 2.空格键XXXX文本 以此类推
注意:英文句点后面一定要有一个空格,起到缩进的作用。
1. 有序列表文字
2. 有序列表文字
3. 有序列表文字
网址链接,图片系列
3. 插入图片
3.1 对于本地图片而言,直接复制粘贴,markdown语法就会自动生成一个 !+[图片描述]+(图片路径)的代码。
注:直接复制粘贴图片,图片描述就是图片的名称。图片描述根据自己需求可写,可以不写。
3.2 对于互联网上的图片,如果能找到图片的URL或者说图片对应的网址,就可以在 ![图片描述]()括号里面粘贴网址就行了。
例如 
3.3 但是一般网上图片比较难直接拿到对应的网址,都是要先图片另存到本地,然后还是按本地图片的方法复制粘贴插入图片。
3.4 如果你在typora软件里面插入本地图片,你再把生成的.md的文件发给别人时,别人肯定是看不到你的图片的,因为你的图片的路径是你本地的路径。
3.4.1 将图片传入图床:网上找一个图床网站比如这个免费的网站https://imgse.com/然后上传你要的图片,图床生成的markdown语法的链接,粘贴到typora界面你要的位置,还是会自动生成
!+[图片描述]+(图片地址)的代码。
3.4.2 其他方式,转文件格式 图片还是正常本地图片复制粘贴,最后markdown文件保证时,把文件导出一个PDF格式的。 typora软件下点 文件-导出-PDF 转为PDF格式
3.4.3 还有就是图片别在typora里面粘贴了,把在typora里面的文本内容都复制到博客园里面的去,在博客园里面上传图片,最后发布文章或随笔。让别人直接看你的博客去。
4. 插入网址链接
方括号里面输入对于链接的描述,小括号里面咱贴链接就好了 [这是逐浪软件官网链接](http://www.z01.com/)
比如你想给一句话加一个链接网址 比如 djddhhdkgfff 中gfff加个百度链接,
djddhhdkgfff(www.baidu.com) 在gfff两边用[] 括起来,再按下回车键 gfff就会有链接了
djddhhdkgfff
常用快捷键系类
5. 特定环境
作用是提供所有编程环境的语法 ```后面紧跟需要输入需要的语言名称 如python sql js等,在下一行写对应的语法时就会自动识别了。
`按键在 英语输入法 1键左边的按键
6. 表格:
快速做表格 使用管道符分割表格字段信息
|aaa|bbb|ccc| 按下回车就会出现下面的表格
| aaa | bbb | ccc |
| --- | --- | --- |
| --- | --- | --- |
7. 分割线:
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。
***
---
___
8. 查看内部源码:
Ctrl+? 就能看到markdown里面最真实的语法结构,在这种结构下就可以进行拷贝,再按一次Ctrl+?就恢复到原来的基于markdown语法渲染后的样子
9. 强调:
9.1 字体加粗:
使用星号**文本** 或者两个连起来的下底线__文本__ 作为标记强调字词的符号,例如:
**文本** __文本__
9.2 字体倾斜:
使用星号*文本* 和单底线_文本_
加粗 文本 文本
倾斜 文本 文本
10. 下划线:
<u>文本</u> 文本下面就会有下划线了
文本
11. 目录:
[]方括号里面输入toc 就会出现如下的目录
12. 表情包:
:加表情的字母: 比如 :smile: :laughing: :cry: :angry: :smile:
😄 😆 😢 😠 😄
13. 删除线:
就是 ~~文本~~,中间的文本就会有删除线了 比如 ~~啊啊啊~~
啊啊啊
14. 脚注:
文本[^文本] 比如 这里有一个脚注[^脚注1] 按下回车键就会出现如下脚注
这里有一个脚注[^脚注1] 这里可是是版本问题应该是这样
.
15. 单选框:
空格键[空格键]空格键文本 方括号在 p键右边 就会出现
做流程图、图表类 ```sequence ```folwchart ```mermaid 等等
计算机的基本组成相关知识:
计算机五大组成部分
1. 控制器control unit(控制计算机各个硬件的工作)相当于人的大脑,指挥控制计算机各个硬件的工作,是计算机的神经中枢。在控制器的控制下,计算机能够自动按照程序设定的步骤进行一系列操作,以完成特定任务。
2. 运算器arithmetic unit(数学运算、逻辑运算)相当于人的大脑,是计算机中处理数据的功能部件,主要功能是完成算术和逻辑运算。
3. 存储器memory(短期记忆、长期记忆)相当于人的记忆,存储器是计算机的记忆装置,它的主要功能是存放程序和数据。不管是程序还是数据,在存储器中都是用二进制的形式来表示的。
3.1 内存:基于电工作 存取数据的速度快 但是断电数据立刻丢失,类似于人的短期记忆.(ROM+RAM)
3.1.1 ROM是只读存储器,只能读出无法写入信息。
3.1.2 RAM读写存储器是与CPU直接交换数据的内部存储器)比如正常笔记本电脑的设备规格里面机带RAM16GB,说的就是它。
3.2 外存:不基于电工作 存储数据的速度较内存慢 但是可以永久保存数据,类似于人的长期记忆。比如:U盘 磁盘 磁带 硬盘 固态 等
3.3 内外存的区别:内存于外存二者的重要区别之一,就在于他们与CPU之间的物理连接方法不同。与CPU地址线直接相连的存储器就是内存,而通过接口与CPU间接相连的存储器就是外存。连接方式的不同,直接导致了二者与CPU之间通信方法的不同。由于技术条件的限制,内存的容量一般做的较小,而外存的容量则可以做的很大。
4. 输入设备(接受外界信息信号)相当于人的眼睛鼻子耳朵等,例如:显示屏 打印机 音响 等
5. 输出设备(传递信息给外界)相当于人的嘴等,例如:鼠标 键盘 触摸屏 等
二进制
1. 二进制的单位:
比特位(bit)= 1bit 就可理解一个□,□里面可以填1或0 8bit=1bytes(字节) □□ □□ □□ □□ 1个字节对于2进制来说可以有2^8种也就是256种的组合
2^10=1024 1024bytes=1KB 可以理解为,比如一个应用程序有1KB的内存,那么这个应用程序所占有的比特位的位数,说明该程序占用8x1024个□,来填写1或0 了。
2. 计算机内存硬盘的存储单位其实就是用于表示该设备能够存储的比特位□的位数。
3. 进制间互相转化规律:
2进制 10 11 100 101 110 111 1000 1001 1010
8进制 1 2 3 4 5 6 7
10进制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
16进制 1 2 3 4 5 6 7 8 9 a b c d e f 10... 19 1f 20
1. 其他进制往10进制转的公式:
比如2进制转10进制 比如2进制101010转10进制 1x2^(6-1) + 0x2^(5-1) + 1x2^(4-1)+ 0x2^(3-1) + 1x2^(2-1) + 0x2^(1-1)=32+0+8+0+2+0=42
PxT^(n-1) P就是每一位对应的数字 T就是原来是几进制就是几 n代表位数 比如16进制的 22转为10进制等于 2x16+2=34
-----------------------------------
byte和bit的区别,一个bit是一个0或1叫做一个二进制位。一个byte是8个bit叫一个字节,一个byte由8bits组成,是数据存储的基础单位,1byte又称为一个字节,用一个字节Byte储存,可区别256个数字。
----------------------------------
一个英文字母占一个字节,一个中文一般占3个字节
计算机三大核心硬件
1. CPU: 计算机中真正干活的人(程序要想运行起来必须要有CPU参与)
2. 内存: 存取数据的速度极快 主要与CPU配合使用,提升CPU运行效率。由于硬件水平跟不上,所以内存的容量一般比硬盘小的多得多。
* 一般也就4GB 8GB 16GB 32GB 64GB 128GB 等
3. 硬盘: 能够长久保存数据 ,所以一般下载的东西都下载到硬盘里面了。
"""
比如运行lol游戏,双击游戏图标
1. 电脑首先会将硬盘中lol游戏程序代码读取到内存>>>:如果游戏容量很大 那么等待的时间越长
硬盘读取数据是有上限的(硬盘转圈读取数据)
2. CPU去内存中获取程序中的指令并执行
3. LOL游戏开始运行
"""
为什么不直接砍掉内存,让CPU跟硬盘交互?
1. CPU的运行速度非常的快(如果速度为1000), 但是硬盘的运行速度非常的慢(可能还不到1)。内存的速度比硬盘快很多 ,可以跟CPU搭配干活 提升CPU运行效率。
2. 只要是运行的程序 产生的数据第一时间肯定在内存。
*以前的文本编辑器使用过程中如果突然断电数据会立刻丢失,现在的文本编辑器不会出现这种情况的原因是内部自动执行保存操作 。
* 保存>>>:将内存中的数据刷到硬盘
* 扩展:自动保存机制有两种方式
方式1:实时检测文档变化,一旦有变化就保存
方式2:循环定时任务,每隔一段时间保存一次
操作系统 Operating System,缩写:OS
操作系统名词解释:是一组'主管并控制计算机操作、运用和运行硬件和软件资源'和提供公共服务来组织用户交互的相互关联的系统软件程序。由于计算机各个硬件几乎一致 所以操作计算机各个硬件的代码也几乎相同。所以就有了几个常见的通用的操作系统。 操作系统也是一种应用程序,只是该程序主要与硬件做交互,并与一般的应用程序做一个链接。协调管理调度各硬件的工作。
PC端常见操作系统 :windows、macOS、linux
移动端常见操作系统 :安卓、IOS、鸿蒙
编程与编程语言programming language
1. 编程语言:人与计算机之间沟通交流的媒介
2. 编程:程序员将自己的思维逻辑和想法用计算机能够读懂的语言写下来的过程 ,编程的结果是产生一堆文件。
3. 想灵活掌握编程,最重要的四个字:多学,多练 其他的都扯淡
常见高级编程语言
C++、Java、PHP、python、Golang 等 种类虽然多但是万变不离其宗, 底层原理几乎一致
掌握了一门学习其他的会非常的快 。
高级编程语言的分类
计算机不能直接的理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能识别,并执行高级语言的编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。
编译型语言:需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言。一般需经过编译(compile)、链接(linker)这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。
常见的有 C C++ Pascal 等
编译器:编译器就是将“源代码”翻译为“机器码”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码就是机器码 (object code) → 链接器 (Linker) → 可执行程序 (executables)
类似于谷歌翻译(一次性翻译) 翻译之后可以反复使用翻译的结果
优势:一次翻译可以反复使用 执行效率高 速度快
劣势:编译之后如果需要修改就需要整个模块重新编译。当程序中频繁出现bug 那么需要反复编译
。
3. 解释型语言:解释性语言的程序不需要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。每一个语句都是执行的时候才能翻译。这样解释性语言每执行一次要翻译一次,效率比较低。
常见的有 python Ruby Erlang 等
类似于同声传译(说一句翻一句)
优势:有bug和没有bug执行效率几乎一样
劣势:速度没有编译型语言快
4. 混合型语言也叫半编译型语言:比如java等 ,在编译的时候不是直接编译成机器码而是中间码,.net平台提供了中间语言运行库运行中间码,保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。
'''要想让计算机能够识别并运行高级语言需要对应类型的翻译官'''
python相关知识
1. python解释器
计算机的大脑是CPU,它仍然不能直接处理 Python 语言。CPU 只能直接处理机器指令语言,那是一种由0和1数字组成的语言,也就是机器码。所以我们需要一个翻译,把Python语言翻译成 计算机CPU 能听懂的机器指令语言,这样计算机才能按照 我们的Python程序的要求去做事。所以编写的python代码必须在解释器中运行。
python会把源代码转成字节码,然后再将字节码解释出来。但是为了更好的跨平台性,这里的字节码是一种跟平台无关的格式,所以并不是底层的二进制代码。到目前为止,只要不是对运行速度有严苛要求的领域,比如数值计算或动画这种,经常需要核心处理单元至少以C语言的速度执行,绝大多数的应用,python还是可以胜任的。
1. python程序运行过程:两步 1. 将源代码编译成为“字节码” 2. 转发“字节码”到“虚拟机”
2. Python源代码:就是指编写的最原始程序的代码。
3. python虚拟机:Python Virtual Machine,PVM,当有字节码文件之后,就会被发送到PVM里来执行,是解释器的最后一步。
python发展方向
web方向、自动化运维、自动化测试、自动化办公、网络爬虫、金融量化、人工智能、机器学习、数据分析
python解释器版本
python2.7 以前开发的一些老程序,用的该版本。
python3.6 比较稳定的版本
python3.8 较新的版本
python解释器的下载安装
下载官网: https://www.python.org/downloads/windows/
找到需要的版本下载,安装,安装路径设尽量简单,不要放系统盘C盘,把默认的安装位置C盘改成D盘
为了避免多个python版本解释器共存时会冲突,需要把文件夹里面的python的exe可执行程序,复制粘贴,再把粘贴的重命名一下比如为python27,这个python27的解释器就安装好了。
python解释器的使用运行
1. windows+r
2. 输入 cmd 按下回车键
3. 切换盘符 D: 按下回车键,到了D盘的目录。
4. 切换目录 输入 cd python38 按下回车键
改变到python38文件夹目录下,假如python38.exe 程序在python38文件夹里面的123文件里面,
那么还要输入 cd 123 按下回车键,才能进入下一步骤。就是要一直改变目录,知道找到程序所在的最终目录下。
5. 运行解释器 输入 python38 按下回车键
6. 退出解释器 输入 exit() 按下回车键
7. 退到上一层目录 cd .. cd空格..就是返回键,返回到上一层目录
只要在环境变量中不添加python解释器的绝对路径,你每次打开python解释器都要这么操作
可以像上面一样输入一个路径D:按下回车,再输入一个路径cd python38按下回车,再输入一个路径
python38 按下回车运行程序
还可以直接输入绝对路径 比如 D:\python36\python36 按下回车就运行程序了。
如果环境变量中设置过该python解释器的路径的话,可以直接输入绝对路径比如
1. windows+r
2. 输入 cmd 按下回车键
3. 输入 python36 此时就直接打开该解释器的程序了。
"""
1. windows+R 键作用:弹出运行命令,然后在运行对话框中输入cmd后点确定即运行“命令提示符”窗口。在电脑发展的初期,人与电脑的交互没有现在这样的图形界面,而是命令提示符界面。即在这个界面中输入命令,计算机就会执行。比如,输入dir按回车后就会显示目录及文件。执行可执行文件也要直接输入文件名。
2. cmd 是command(命令)的简写,进入命令行界面,也即DOS模式。
3. cd命令(change directory)是改变目录用
"""
"""
IT领域只要这个软件能够正常运行 即使使用的是十几二十年前的版本 也不要更新
"""
快捷键拓展
最常用的快捷键:
F5:刷新 CTRL+F5:强制刷新
CTRL+C:复制 CTRL+X:剪切 CTRL+V:粘贴、
CTRL+A:全选 CTRL+Z:撤销 CTRL+S:保存、
ALT+F4:关闭 CTRL+Y:恢复
TAB:改变焦点 ALT+TAB:切换
CTRL+W:关闭 CTRL+F:查找 等等。
环境变量(就理解存放资源的仓库,主要与资源查找有关)
我的电脑-属性-高级系统设置-环境变量-path-编辑-新建
把python版本27、36、38 的路径复制粘贴,确定添加进去就好了。
环境变量中添加新的路径的作用:就是一些被指定的文件夹路径,目的是为了更快速方便的找到想要的文件和文件夹。
可以这么理解假如电脑的存储区有4块,比如ABCD盘,把4块区域加一起看成是一个大仓库,每一块区域还有不同的房间。
当电脑要找一个程序时,你可以把电脑理解为一个人,电脑只会在当前所在的区域的那个房间找,其他房间都不会去,更不会去其他区。假如你要想让电脑去运行一个程序,那么必须告诉他准确的绝对路径,它才能按照这个路径一步一步的找到程序并运行程序,否则它只会在它当前在的房间找,找不到就报错了。环境变量中填加新路径的作用就可以理解为,告诉电脑在当前在的房间找不到程序时,还可以按照你给他添加的新路径再到其他的房间再找找。
解释器命令运行方法
- 直接cmd 进入命令界面,运行python解释器,在里面直接编写代码并运行。
- 可以编写较长的代码,在比如txt文本里面编写的代码,并且可以长久保存。还是先cmd进入命令界面,此时输入的代码为python36空一格再输入你要运行程序所在的绝对路径
像这个11.txt文件就是放在D盘的微信截屏文件夹下。只有盘后面是:冒号,文件夹都是反斜杠
2.1 或者先输入D:回车,再输入cd 微信截屏回车,再输入python36空一格11.txt回车
.
变量与常量
变量与常量就是为了让程序具备人记录事物状态的能力
1.什么是变量? 记录变化(可能会经常改变)的事物状态 eg:年龄 容貌 薪资
2.什么是常量? 记录固定(可能不经常改变)的事物状态 eg:圆周率 重力加速度
变量的基本使用
变量使用的语法结构与底层原理
name = 'jason'
变量名 赋值符号 数据值
1. 一旦看到赋值符号 那么一定先看符号的右侧
2. 在内存空间中申请一块内存空间存储数据值
3. 给数据值绑定一个变量名
4. 以后就可以通过变量名访问到数据值
5. 如果有些文件没有绑定变量名,那么这个数据就是一次性的,用完就没了,不需要往内存里面存了.
注意事项:
1.同一个数据值可以绑定多个变量名
2.赋值符号右侧也可能是变量名
name = 'jason'
name1 = name
name2 = name1
3.一个变量名同一时间只能绑定一个数据值,如果右侧是变量名,就先找该变量名的上行或者上面几行,所绑定的数据值,下一行代码的左侧变量名,如果与上一行的左侧变量名一样,在运行下一行代码时,还是会把下一行的数据值赋值给左边的变量名。实际上可以理解为,就是每一层都是从右往左的绑定,不同层,等号左边的同样的变量名比如X,两者没关系。
x = 10
x = x + 1
print(x)
最后的结果是 11
变量名的命名规范
1.尽量用英文名,中文名容易报错
2.变量名只能出现字母、数字、下划线
3.数字不能开头
4.变量名尽量做到见名知意
5.变量名不能与关键字冲突
变量名的命名风格,python推荐使用
1.下划线式
变量名中单词很多 彼此使用下划线隔开
name_from_mysql_db1_userinfo = 'jason'
常量的基本使用
在python中如果想表示出确实不怎么改变的常量时, 那么可以使用全大写的变量名
HOST = '127.0.0.1'
如何查看数据类型
print(type(数据值))或者print(type(变量名)) 点个run运行一下就能看到了
数据类型
1. int整形 整数 age = 18
2. float浮点型 小数 height = 1.83
3. string字符串 '文本' name = 'jason'
字符串要用''引号引起来,字符串可以用4种方法 单引号,双引号,3个单引号,3个双引号引起来。
4. list列表(存储多个数据值) ['', '', '','', '']
代码实现 name_list = ['jason', 'tony', 'kevin', 'oscar', 'jerry']
各数据间逗号隔开,逗号与后一数据要空一格
取的话要从0开始按序号取,print(name_list[X]) X为要取数据值的序号
5. dict字典(使用频率最高最高的,也是最重要的){'K1':'V1', 'K2':'V2', 'K3':'V3', 'K4':'V4' }
代码实现:
info_dict = {'username': 'jason', 'age': 18, 'hobby': 'read', }
K V K V K V
键 值 键 值 键 值
通过键,来拿值!!!
字典只能按K取值 因为字典是无序的
print(info_dict['username'])
注意:字典的数据是用{} 大括号括起来的,但是取数据值的时候用的[键] 取的。列表也是用[]取数据值的。
PEP8规范:逗号, 冒号: 引号; 与前面的而数据不要有空格,与后面的数据空一格。
括号与里面的数据间不要有空格。
字符串要用引号引起来。
字典数据优化,从逗号后按回车键换行,数据与左边空4格。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析