Python學習week2-python介紹與pyenv安裝

一、python簡介及python環境安裝

1.一、python的語言類型

(1)pyhton是一種強類型的,動態語言;java

  強類型語言:不一樣數據類型之間的操做,必須進行強制類型轉換才能操做,例如:java,python等node

  弱類型語言:能夠進行不一樣數據類型之間操做,解釋器會進行隱私轉換,例如:JScript等python

print('a'+1) 
==> 運行報錯
'''
TypeError: Can't convert 'int' object to str implicitly
'''

print('a'+str(1)) 
==>a+1

(2)什麼是動態語言?靜態語言?linux

  動態語言簡單的理解爲:在編譯前不須要定義變量的數據類型,例如 :a=2,直接能使用a;優勢:便於使用;缺點:不嚴謹;git

  靜態語言:在編譯前必事先定義變量類型,典型的語言爲:java,定義變量 int a=2;github

(3)語言類型分類圖:web

1.二、馮諾依曼體系

 計算機由五大部分組成:算法

(1)輸入設備:常見的例如鍵盤鼠標等;sql

(2)寄存器:用來存放數據和程序的地方;shell

(3)運算器:運算算術運算和邏輯運算;

(4)控制器:主要控制程序的運行;

(5)輸出設備:常見的例如各類顯示設備;

馮諾依曼主要提出了0和1二進制做爲計算機的控制信號,給將來計算機發展提供了方向;(我的理解)

1.三、程序是什麼?

  程序=算法+數據結構

   數據結構:數據在計算機系統中的類型和組織結構;

   算法:簡單理解爲處理數據的方式;

1.四、原碼,反碼和補碼

(1)原碼:所謂的原碼其實就是符號位加上數字的二進制表示;(符號位通常爲最高位,0表示正數,1表示負數);方便人類識別》

 7的原碼:  0000 0111
-7的原碼: 1000 0111

(2)反碼:正數的反碼與原碼相同;負數的反碼,符號位不變,其餘位按位取反;

-7的原碼: 1000 0111
-7的反碼: 1111 1000

(3)補碼:計算機內存中表示數據都是經過補碼的形式表示的,其中正數的補碼與原碼相同;負數的補碼則爲在反碼的基礎上加1;

+7的原碼:0000 0111 ==> 反碼 0000 0111 ==> 補碼 0000 0111
-7的原碼:1000 0111 ==> 反碼 1111 1000 == >補碼 1111 1001

 (4)運算練習:計算5-1

5的反碼:0000 0101
-1的原碼:1000 0001 ==> 反碼 1111 1110==>補碼:1111 1111
# 計算機內部運算都經過反碼計算
0000 0101
1111 1111
       +1
0000 0100 符號位溢出,則取值爲 0000 0100結果爲4 

總結:正數的原碼,反碼和補碼都相同;負數的反碼符號位不變,其餘位按位取反,補碼在反碼的基礎上加1;

1.五、pyenv

1.5.一、pyenv簡介

 # pyenv:是一款python的多版本控制器,能經過virtualenv插件徹底隔離用戶的python環境;

1.5.二、pyenv安裝

(1)系統環境準備

 Centos6.10_x64

(2)安裝過程

# 安裝git

# yum install git -y

# 安裝python編譯環境

# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel

# 建立python用戶

# useradd python
# echo python | passwd --stdin python

# 切換python用戶登陸系統,並安裝pyenv

# curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
###pyenv-installer 一個pyenv安裝的shell腳本###

# 若是出現「curl: (35) SSL connect error 」,則是nss版本低形成的,更新nss便可;

# yum update nss

# 修改python用戶的環境變量

# vim ~/.bash_profile

export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

# souce ~/.bash_profile

1.5.三、pyenv的使用

# python版本及patch路徑

$ python --version
$ echo $PATH

# pyenv命令

install命令
$ pyenv install --list   //列出全部可用版本
$ pyenv install 3.5.3   //在線安裝指定python版本,在線安裝因爲網速限制可能比較慢,推薦經過cache的方式安裝;
# cache方式安裝
1)先在~/.pyenv目錄下,新建cache目錄,放入下載好的待安裝文件,因爲不肯定安裝時候到底須要哪一個具體文件,最好將xz,gz,tgz等文件都放到cache目錄中
2)執行$ pyenv install 3.5.3 $ pyenv versions
//顯示已有版本

1.5.四、pyenv的python多版本控制

1 $ pyenv version  //顯示當前python版本
2 $ pyenv versions  //顯示當前系統全部可用的pyton版本,*表示當前生效版本
3 
4 $ pyenv global 3.5.3 // 表示當前用戶全局生效
5 $ pyenv shell 3.5.3 // 當前shell生效
6 $ pyenv local 3.5.3 // 當前目錄及子目錄生效
# 取消設置爲
pyenv local --unset

1.5.五、virltualenv虛擬環境設置

# 爲何要使用虛擬環境?

由於剛纔使用的python環境都爲一個公共的空間,若是多個項目同時開發,而且使用的不一樣的python版本開發,或者使用不一樣版本的python進行部署運行等均可能會照成衝突,最好的解決方法爲:

每一個項目都是用單獨獨立的環境中,此時virltualenv是一種比較好的解決方案;

# viltualenv插件目錄 /home/python/.pyenv/plugins

# 創建虛擬環境

$ pyenv virtualenv 3.5.3 mag353 // 至關於創建一個以3.5.3爲基礎的mag353環境

# 查看可用版本

# 具體使用實例:

[python@node ~]$ mkdir -p magedu/projects/web
[python@node ~]$ cd magedu/projects/web/
[python@node web]$ pyenv local mag353
(mag353) [python@node web]$ cd ..
[python@node projects]$ cd web/
(mag353) [python@node web]$

1.六、pip的使用

# pip是python 的包管理工具,和rhel的yum工具相似,也須要配置源站:

linux系統下pip配置:
$ mkdir ~/.pip
$ vim ~/.pip/pip.conf
###配置以下###
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com

windows則在登陸用戶的家目錄建立一個pip目錄,而後再建立內容和上面同樣的pip.ini文件便可;

1.七、pyenv導出與導入包

# 虛擬環境的好處就在於和其餘項目運行環境隔離。每個獨立的環境均可以使用pip命令導出已經安裝的包,在另
一個環境中安裝這些包 ;

1 (mag353) [python@node web]$ pip freeze > requirement   
//導出包文件名,內容例如:
backcall==0.1.0
bleach==2.1.3
decorator==4.3.0
2 (mag353) [python@node web]$ mkdir ~/magedu/projects/pro1 3 (mag353) [python@node web]$ cd ~/magedu/projects/pro1 4 [python@node pro1]$ pyenv install --list 5 [python@node pro1]$ pyenv install 3.6.4 6 [python@node pro1]$ pyenv virtualenv 3.6.4 mag364 7 [python@node pro1]$ pyenv local mag364 8 (mag364) [python@node pro1]$ mv ../web/requirement ./ 9 (mag364) [python@node pro1]$ pip install -r requirement

二、python基礎語法

2.一、python文件執行過程

(1)先啓動python解釋器;

(2)python解釋器把文件從硬盤讀取到內存;

(3)讀入內存後,Python解釋器解釋執行;

2.二、python變量

(1)定義一個變量的3個特徵:

1 a=10       # 定義變量a
2 id(a)      # 先理解爲在內存的地址
3 type(a)    # 變量類型
4 value      # 變量值,10

總結:id相同,則type和value一定相同;value相同,則type相同,id未必相同;python中的變量名沒有存值的功能,變量名與變量值只是一種綁定關係;

(2)變量的定義規範

  1)變量名只能是字母,數字或者下劃線的任意組合;

  2)變量名的第一個字符不能以數字開頭;

  3)python的關鍵字不能聲明爲變量名;

  4)定義方式:最好是有具體含義,一看能明白的駝峯體;

2.三、關於python的註釋

# 代碼註釋分爲:單行註釋和多行註釋;單行註釋用#表示,多行註釋用''' '''來表示;

# 寫註釋原則:不用所有都寫註釋,只須要在本身以爲很差理解的代碼加上註釋便可;

# 關於文件開頭:

#!/usr/bin/env python    ==> 聲明解釋器;
# -*- coding:utf-8 -*-    ==> 聲明編碼格式;

2.四、python的基本數據類型

(1)數字類型:int和float

(2)字符串:在python中加了引號就表示爲字符串類型str,注意:python沒有單個字符類型;

(3)列表:有序,能夠存放多個值,而且每一個值可使任意數據類型;

(4)字典:無序,採用key:value方式存儲,能夠存放多個值;每一個key必須是不可變數據類型,每一個value可使任意數據類型;

(5)布爾類型:True和False;注意:全部數據類型都自帶布爾值,其中None、0、和空三種狀況爲False;其他爲True;

2.五、運算符

2.5.一、算數運算符

+      加法
-      減法
*      乘法
/      除法
**     冪運算
//     取整除,返回商的正數部分;例如:9//2 = 4 , 50021 // 10000 =5

2.5.二、位運算

a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011  

移位操做:
>> 左移位:將操做數的二進制碼總體左移指定位數,左移以後的空使用「0」來補位;值變大,冪運算;
>> 右移位:將操做數的二進制碼總體右移指定位數,右移以後的空使用「符號位」(正數爲「0」,負數爲「1」)來補位;值變小12>>2 ,0000 1100 ==> 0000 0011=4
常見的移位操做:
1) m*2^n :左移是乘以2的冪,例如:2^3 ==> 1<<3 ==> 1*2^3=8

2.5.三、邏輯運算

# 與或非,and or not

# 短路運算:

  and:若是第一個表達式爲False,後面的表達式則不須要運算,結果必定爲False;

  or:若是第一個表達式爲True,後面的表達式不須要運算,結果必定爲True;

2.5.四、運算符的優先級

# 算數運算符 > 位運算符 > 身份運算符 > 成員運算符 > 邏輯運算符;記不住順序用括號來區分優先級;

2.5.五、表達式expression

# 表達式由:數字、符號、括號和變量等的組合

  算數表達式

  邏輯表達式

  賦值表達式

    在python中,賦值即定義;

2.六、程序控制語句

2.6.一、單分支

2.6.二、多分支

2.6.三、循環語句

2.6.四、循環控制continue與break

相關文章
相關標籤/搜索