程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Python】尚硅谷Python零基礎入門

編輯:Python

這個隨便記記~

【Python】尚硅谷Python零基礎入門

1-10

配置環境變量作用~

  • 在我們日常使用命令行的時候 whatever 蘋果系統還是linux還是win都會用到~

如果隨便編寫一個命令 比如 asb 會出現什麼情況?

image-20220623182050333

win會報錯是不是內部指令~

那為什麼有的內容就能找到~

  • 實際上是因為 當我們的內容在當年目錄找不到的時候就會去-> 用戶環境變量->系統的環境變量

  • 我們只要設置了環境變量~ 比如js的 node vpn vpm~你就發現可以直接使用了為什麼?

  • 實際上是因為找到了那個文件夾~找到了那個命令~告訴了計算機應該做什麼了~

幾個注意點:

  • path 是不區分大小寫的~ Path PATH都可
  • mac修改完要應用一下,win只需要重新開窗口即可

二進制介紹

相信很多人都知道十進制

  • 也就是滿十進1;每一位我們稱之為 個十百千...我畫個圖
  • 二級制類比出來就是 滿2進1, 那麼用十進制命名2進制每一位就是 2,4,8,16
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

這是一個叫做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

寫幾個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

win是這樣的

image-20220624233824884
  • mac是這樣的,可以看到我已經輸入了python

  • 版本是mac自帶的版本2.7

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

  • 先輸入這個命令退出交互模式

image-20220624233938821
image-20220624234313682
pyenv global 3.10.0

即可

我們當然不會用終端開發~ 寫小demo也不會在這裡的,找個網頁在線編輯python都好~

ok今天到這裡了~


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved