Shinkai005

V1

2022/06/24阅读:29主题:红绯

【Python】尚硅谷Python零基础入门

这个随便记记~

【Python】尚硅谷Python零基础入门

1-10

配置环境变量作用~

  • 在我们日常使用命令行的时候 whatever 苹果系统还是linux还是win都会用到~

如果随便编写一个命令 比如 asb 会出现什么情况?

image-20220623182050333
image-20220623182050333

win会报错是不是内部指令~

那为什么有的内容就能找到~

  • 实际上是因为 当我们的内容在当年目录找不到的时候就会去-> 用户环境变量->系统的环境变量

  • 我们只要设置了环境变量~ 比如js的 node vpn vpm~你就发现可以直接使用了为什么?

  • 实际上是因为找到了那个文件夹~找到了那个命令~告诉了计算机应该做什么了~

几个注意点:

  • path 是不区分大小写的~ Path PATH都可
  • mac修改完要应用一下,win只需要重新开窗口即可

二进制介绍

相信很多人都知道十进制

  • 也就是满十进1;每一位我们称之为 个十百千...我画个图
  • 二级制类比出来就是 满2进1, 那么用十进制命名2进制每一位就是 2,4,8,16
image-20220624155115075
image-20220624155115075

那么二进制从0开始写 怎么写? 0,1, 10, 11, 100,101, 110, 111 , 1000, 1001, 1010这就是0-10

那么怎么认呢?

看好哦~ 每一位只有 0/1 1 往上进1 下一位如果是0 就变成1 ;如果是1就进一变成0,然后下一位继续检测~

(对于学过的人会发现很简单的一个递归~

递归: 一般也叫自递归, 就是自己调用自己,每次都不变~

迭代就是,上一次的结果会用到下一次~

举个例子: 成长就是迭代, 每一年都会发生变化影响到之后, 递归就是打游戏一些moba游戏, 或者直接说 五子棋, 上一次的结果不影响这一次. 就先这么理解吧还有很多细节

)

那么怎么看一个2进制是10进制的几?

先讲一下,一般2进制会有占位的说法,就类似 十进制小数点之后的内容 会有0 占位. 二进制在整数部分也会有~

这个叫做 静态存储空间static store, 后面还会有 动态的 dynamic store, 就是会变化~ 类似 乌龟的外壳~随着乌龟变大壳也会变大, 静态就相当于自己的衣服, 自己吃胖了 衣服也不会变化,只是塞得比较紧~

比如就 四位, 四位是多少? 2的3次方 8 所以 第四位上有1 就是 8以上的数, 但是不会是 8的 二倍 类似(千位 上有个值 这个值最大是9999 不可能是10000 也就是十倍 )

0001 1 2的0次方 =1

0010 2 第二位是2的1次方 = 2

0011 3 2的一次方 + 2的0次方 = 3

0100 4 2的二次方 = 4

0101 5 二的2次方+2的0次方 = 5

0110 6

0111 7

1000 8

1001 9

1010 10

会算了吧? 那个位置有1 就 用当前位置-1作为2的指数 plus 即可~

数学是真的难讲啊....为难数学老师了...

我为什么这里不写2^3 = 8 是因为 这个^在数学里代表了 次方 但是在 计算机语言里是位运算~

就比如程序员不会写2×3=6 会写2*3 = 6

数据存储

数据就是用这种010101010组成的~ 但是不会特别少一般表达一个数字都会用几十位,(不展开了~)

所有的数组在计算机里都是二进制形式存在的, 记得有个形容是 二极管~ 只能off 或者 on off为0 on 为1

或者说是像小格子~ 可以存储0/1

  • 那么每个小格子存在于内存当中~,我们称之为1bit(位)比特

bit是计算机中最小的单位,

8个bit组成一个byte 字节

byte是计算机中最小的 可操作单位~可以打开一个文件夹看看他的大小~ 你无论做什么操作,他最小只能变化1字节,不会出现给你0.1字节这种情况~

因此有以下的换算

8bit = 1 byte

1024 byte = 1 Kb(yte)千字节

1024 kb = 1 mb

1024mb = 1gb

1024gm = 1tb

现在b 都直接省略了~

一般二进制不会直接显示, 会用16进制来显示~ 十六进制 比十进制多了 abcedf

image-20220624162913424
image-20220624162913424

这是一个叫做Binary Viewer的软件, 可以把随便的文件打开 显示成二进制的~

放心不会有人看懂的....说不定最强大脑可以

插个题外话, 国内有一群智商超级高的人~不是所有的都在做研究,各行各业都有

他们在圈内属于公知的一群人~圈内! 他们评价最强大脑是---培养用脑的熟练度.

就和我们小时候学的卖油翁一样~ 是手眼的熟练度, 最强大脑是 用脑的熟练度, 一直培养脑的某一个区域, 这个区域就会特别特别厉害~但是 其他方面并不会超出常人很多~ 依旧是普通人范畴~

上面提到的那个群体可以在百度上搜一搜, 我们不训练时在最强大脑的考核内容方面是 5以下吧 训练后可能能达到20 那些上节目的可能本身就是训练,并且能达到超高的人 比如 70. 那么这些我说的这群人可能本身就在50.

高智商协会? 忘记了

文本和字符集

  • 文本分为 纯文本 和 富文本~

  • 纯文本只能保存一种文本内容, 无法保存无关的内容(字体, 颜色,图片)

  • 富文本可以保存文本之外的一些内容,软件例如 word文档 pdf

  • 在开发时候,编写程序用的是纯文本~(要是能用图片开发就牛逼了...一张图放上去直接生成纯文本...,然后再加上音频开发,hhh)

  • 纯文本在计算机底层会转换为2进制编码~

    • 既然会转换那么需要协议吧?规定吧?
      • 字符转换二进制叫做---编码
      • 二进制转字符叫做 --- 解码
    • 编码解码遵循的规定叫做字符集~
  • 常见的字符集:

    • ASCII

      • 美国人的
      • 一共是 128 七位 但是必须占满一个字节 最高位为0
      • 大小写+一堆符号 一共128个 完全足够了~

      后面是罗马数字2, 后面还出现了ASCII扩展 扩展了1位 2的8次方 = 256 但是很多语言不能把所有内容放到256位里就不用这个编码~

    • ISO-8859-1

      • 欧洲编码
      • 一共是256 8位
    • GB2312

    • GBK

      • 上面两个都是中文的,特殊的依旧是没有的, 我的名字的生僻字~最初是没有的,都是添加的~
    • Unicode

      • 万国码~包含了所有的语言和符号
      • 可以百度一下Unicode,看看你的名字怎么写~
      • Unicode有多种实现,包括UTF-8 UTF-16 UTF-32
        • UTF-8 是变长的 可能是1-5个字节来表示一个字符
        • UTF-16 是2-4
        • UTF-32 是固定的 4个字节
        • 一般都是UTF-8

乱码

上面理解了的话 思考一下乱码现象是为什么?

  • 解码和编码用的不是一个规则~
  • 所以如果出现了乱码的时候看看字符集是否使用的相同的~

计算机语言

计算机语言分为 机器语言,符号语言(汇编语言),高级语言. 计算机语言就是对计算机说话~

  • 机器语言:

    • 二进制的
    • 执行效率高但是不好编写
  • 汇编语言:

    • 知道了机器不好编写,那么出一个稍微好编写的不就行了,用符号来代替一部分机器语言~然后符号再转换成机器语言
    • 这个过程叫做汇编assembling,转回来的过程叫做反汇编disassembling
    • 更好编写一些,执行效率也没那么慢~
    • 汇编语言一般只能应用到一些硬件,兼容性较差~
  • 高级语言:

    • 就是类似python这种更好理解学习的语言了.但是效率会差一些~所以高级语言就出现了鄙视链~
    • 越贴近汇编学习成本越高的比如 c衍生物~hhh doge. 就在鄙视链的顶端.当然玩这些的大佬一般也不会欺负我们其他人
    • 语法也类似英语,但是和硬件的联系没有那么紧密了~
    • C C++ C# Java python js

介绍一下什么叫解释型语言和编译型语言

  • 高级语言也是需要转换成机器码再执行的

这块要注意一下, 我记得在大学里提到的是, 高级语言需要转换成汇编再转换成机器码~ 实际上现在根本不需要转换成汇编语言,不需要汇编作为桥梁了~ 高级语言转换成opcode 机器码的效率也非常快并且准确

根据转换的时机~将语言分为解释性语言和编译型语言

  • 编译型语言

    • C语言,
    • 代码执行前将代码编译为opcode然后交由计算机处理
    • 执行速度 特别
    • 但是兼容性差,比如在win编译的在mac系统无法使用,在linux编译的在win下无法使用~
  • 解释型语言

    • Python Javascript Java
    • 代码一边执行一边解析
    • 速度会相对慢,但是跨平台会好

    说白了就是一个提前编译了,一个执行在编译必然会慢~跨平台靠的是解释器~所以快慢在哪里有区别?就是解释器的效率会一定程度决定执行速率~

java是解释型语言,Java是先编译成class文件,再通过JVM解释执行,属于解释型语言

用python 必须要知道的一些小玩意

  • python发明人 Guido 吉多 Gui 龟叔~被称为这个名字在国内

    • 19年退休了 无聊的20年加入了微软
  • 有一句话 ''Life is short I use Python' 人生苦短我用python

  • python 设计的 时间表

image-20220624183801795
image-20220624183801795

写几个Python的用途:

算是flag吧,我会最后都玩一下的~ 毕竟库多又不用自己搞~2333

  • Web应用
  • 爬虫
  • 科学计算
  • 自动化运维
  • 大数据
  • 云计算
  • Ai
  • 游戏(这个不做了)

python环境搭建

说白了搭建环境就是安装一个解释器~

python的解释器有很多版本

  • CPython(官方)
    • 用C语言写的
  • Pypy
    • 用python写的python解释器
  • IronPython
    • 用.net写的
  • Jython
    • Java写的

python 版本

python有两个大版本

2.x和3.x

有个区别在这里,

  • 这个版本并不是说3.x的就比2.x的牛逼~ 他们两个是并行的 都在用

  • 3.x的和2.x的互不兼容~

我肯定学新的~所以之后的语法都是3.x的语法~

OK安装Python

我使用的是mac, 所以用homebrew下载~

  • homebrew 是mac的包管理工具很猛~

Homewbrew 下载

终端输入这句话即可, 找了很久的! 注意看执行过程,特别细致~

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

安装完之后还需要配置一下国内镜像~ 随便选择即可~

然后安装 python版本管理工具, 因为python版本比较多~ 切换比较麻烦有了这个切换只要输入个代码即可~

brew install pyenv
pynev install 3.10.0

即可~

输入python 后出现>>证明安装成功~

叫做进入了python的交互模式

image-20220624233609222
image-20220624233609222

win是这样的

image-20220624233824884
image-20220624233824884
  • mac是这样的,可以看到我已经输入了python

  • 版本是mac自带的版本2.7

  • 我怎么切成我下载的呢?用版本控制工具即可

  • 先输入这个命令退出交互模式

image-20220624233938821
image-20220624233938821
image-20220624234313682
image-20220624234313682
pyenv global 3.10.0

即可

我们当然不会用终端开发~ 写小demo也不会在这里的,找个网页在线编辑python都好~

ok今天到这里了~

分类:

后端

标签:

Python

作者介绍

Shinkai005
V1

公众号:深海笔记Shinkai