第一章 Python概述與開發環境安裝

hsiehchou發表於2020-10-02

第一章 Python概述與開發環境安裝

1、Python開發環境安裝

2、Anaconda安裝

選擇 just me 不用勾選新增本地環境變數

  1. 檢視Anaconda環境是否安裝成功(檢視Anaconda版本號):conda --version
  2. 檢視目前安裝了哪些環境變數:conda info --envs
  3. 檢視 Anaconda 當前版本以及安裝了哪些包:conda list

3、Spyder

3.1 讀取檔案裡面的行數

import sys 
import os.path

# 檔案目錄
dir = os.path.dirname(sys.executable)
# 開啟檔案進行操作
with open(dir+'\\num.txt', encoding = 'utf-8') as fp:
    content = fp.readlines()

# 列印檔案內容的型別
print(type(content))
# 列印檔案內容
print(content)
# 列印檔案所在的目錄
print(dir)
# 列印檔案裡面內容的行數
print(len(content))

結果: <class 'list'> ['12\n', '6\n', '2\n', '35\n', '11\n', '22\n', '23\n', '11\n', '254\n', '12'] F:\Anaconda 10

4、Jupyter Notebook

預設地址:http://localhost:8888

# 使用遞迴
def fib(n):
    if n==1 or n==2:
        return 1
    elif n==0:
        return 0
    return fib(n-1)+fib(n-2)

# 輸出第10個斐波那契數列
print(fib(10))
print(fib(0))

結果: 55 0

5、Python環境管理

5.1 開啟管理終端

Windows使用者開啟“Anaconda Prompt”

macOS和Linux使用者開啟"Terminal"(終端)

5.2 建立新環境

conda create --name <env_name> <package_name>

注:

  1. env_name--建立的環境名,建議英文命名,且不加空格,名稱兩邊不加尖括號"<>"
  2. package_name--安裝環境中的包名,名稱兩邊不加尖括號"<>"
  3. 如果要安裝指定的版本號, 則只需要在包名後面以=和版本號的形式執行。如:conda create name python2 python=2.7,即建立一個名為“python2”的環境,環境中安裝版本為2.7的python。
  4. 如果要在新建立的環境中建立多個包,則直接在<package_names>後以空格隔開,新增多個即可。如:conda create -n python3 python=3.7 numpy pandas,即建立一個名為“python”的環境,環境中安裝版本為3.7的python,同時也安裝了numpypandas
  5. 預設情況下,新建立的環境會被儲存在/User/<username>/anaconda3/env目錄下,其中<user_name>為系統當前使用者的使用者名稱。

5.3 啟用/退出環境

啟用:conda activate python3

退出:conda deactivate

5.4 刪除環境

conda remove --name python3 --all

6、Python擴充套件庫安裝

6.1 新增清華大學的Anaconda映象

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

# 設定搜尋時顯示通道地址
conda config --set show_channel_urls yes

conda install numpy 測試

查詢可供安裝的擴充套件庫版本 conda search --full-name pandas

獲取當前環境中已安裝的擴充套件庫資訊 conda list

6.2 在指定環境中安裝包

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

conda config --set show_channel_urls yes

conda activate python3

conda install numpy

6.3 在當前環境中解除安裝包

conda remove <package_name>

6.4 在指定環境中解除安裝包

conda remove --name <env_name> <package_name>

7、 Python擴充套件庫匯入

建議先匯入標準庫再匯入擴充套件庫物件,只匯入確實需要使用的標準庫和擴充套件庫物件,提高載入速度,減少打包體積

7.1 import 模組名[as 別名]

使用時需要在物件之前加上模組名作為字首,即“模組名.物件名”

import math 
import random
import posixpath as path

print(math.sqrt(16))                # 計算並輸出16的平方根
print(math.cos(math.pi/4))            # 計算餘弦值
print(random.choices('abcd', k=8))    # 從字串'abcd'隨機選擇8個字元
                                    # 允許重複
print(path.isfile(r'C:Windows\notepad.exe'))    #測試指定路徑是否為檔案

結果: 4.0 0.7071067811865476 ['b', 'b', 'd', 'b', 'a', 'd', 'a', 'c'] False

7.2 from 模組名 import 物件名 [as 別名]

不需要模組名作為字首,匯入方式可以減少查詢次數,提高訪問速度

from math import pi as PI
from os.path import getsize
from random import choice

r = 3
print(round(PI*r*r, 2))                     # 計算半徑為3的圓面積
print(getsize(r'C:Windows\notepad.exe'))    # 計算檔案大小,單位為位元組
print(choice('Python'))                        # 從字串中隨機選擇一個字元

結果: 28.27 254464 o

7.3 from 模組名 import *

不推薦使用

from itertools import *

characters = '1234'
for item in combinations(characters, 3):    # 從4個字元中任選3個組合
    print(item, end=' ')                    # end=' ' 表示輸出後不換行
print('\n'+'='*20)                          # 行號後輸出20個等於號
for item in permutations(characters, 3):    # 從4個字元中任選3個的排列
    print(item, end=' ')                    

8、Python常用標準庫

8.1 字串

re:正規表示式。用來判斷是否是你指定的特定字串。 StringIO:提供以檔案形式來讀寫字串。 struct:以二進位制位元組序列來解釋字串。可以通過格式化引數,指定型別、長度、位元組序(大小端)、記憶體對齊等。

import re 
print(re.findall(r'f[a-z]*',  'which foot or hand fell fastest'))

結果: ['foot', 'fell', 'fastest']

如果只需要簡單的功能,應該首先考慮字串,因為簡單,易於閱讀和除錯,如:

print('tea for too'.replace(''too,''two'))

結果: 'tea for two'

8.2 資料型別

datetime:提供操作日期和時間的類。 collections:高效能容器資料型別。實現了Python的通用內建容器、字典、列表、集合,和元組專門的資料型別。 pprint:提供“整潔列印”功能,具有列印任意Python資料結構的能力。

8.3 數學運算

random:各種分佈的偽隨機數的生成器。 math:數學函式。提供了由C標準的數學函式訪問。該庫函式不適用於複數。 cmath:為複數提供的數學函式。 operator: 過載運算子。

math 模組為浮點運算提供了對底層C函式庫的訪問

import math 
print(math.cos(math.pi/4))
print(math.log(1024, 2))

結果: 0.7071067811865476 10.0

random 提供了生成隨機數的工具

import random
fruits = random.choice(['apple', 'pear', 'banana'])
x = random.sample(range(100), 10)     # 0-100選擇不能重複的10個數
y = random.random()                    # 隨機浮點數
z = random.randrange(6)                # 從範圍0-6中選擇隨機整數
print(fruits)
print(x)
print(y)
print(z)

結果: apple [64, 97, 91, 21, 40, 55, 63, 79, 77, 1] 0.8885638928051524 0

8.4 檔案和目錄

os.path:常用路徑名操作。 filecmp:檔案和目錄的比較。 shutil:高階的檔案操作:支援檔案複製和刪除。

8.5 作業系統

time:時間獲取和轉換,各種與時間相關的函式。 argparse:命令列選項、引數和子命令的解析器。 io:提供介面處理的IO流。 logging: Python的日誌工具,提供日誌記錄的API。 logging.config:Python日誌配置,用於配置日誌模組的API。 os:提供豐富的與MAC,NT,Posix等作業系統進行互動的能力。 sys:提供訪問和維護python直譯器的能力。這包括了提示資訊,版本,整數的最大值,可用模組,路徑鉤子,標準錯誤,標準輸入輸出的定位和直譯器呼叫的命令引數。

os模組提供了不少與作業系統相關聯的函式

import os 
print(os.getcwd())            # 返回當前的工作目錄
os.chdir(r'C:Users\winner\Python3Learn\Lesson1Code') # 修改當前的工作目錄
os.system('mkdir today')     # 執行系統命令 mkdir
print(os.getcwd())            # 返回當前的工作目錄

建議使用import os 風格而非from os import *,這樣可以保證隨作業系統不同而有所變化的os.open()不會覆蓋內建函式open()。

在使用os這樣的大型模組時,內建的dir()和help()函式非常有用。

本文由部落格群發一文多發等運營工具平臺 OpenWrite 釋出

相關文章