第一章 Python概述與開(kāi)發(fā)環(huán)境安裝

第一章 Python概述與開(kāi)發(fā)環(huán)境安裝

1、Python開(kāi)發(fā)環(huán)境安裝

2、Anaconda安裝

選擇 just me

不用勾選添加本地環(huán)境變量

  1. 查看Anaconda環(huán)境是否安裝成功(查看Anaconda版本號(hào)):conda --version

  2. 查看目前安裝了哪些環(huán)境變量:conda info --envs

  3. 查看 Anaconda 當(dāng)前版本以及安裝了哪些包:conda list

3、Spyder

3.1 讀取文件里面的行數(shù)


import sys

import os.path

# 文件目錄

dir = os.path.dirname(sys.executable)

# 打開(kāi)文件進(jìn)行操作

with open(dir+'\\num.txt', encoding = 'utf-8') as fp:

    content = fp.readlines()

# 打印文件內(nèi)容的類(lèi)型

print(type(content))

# 打印文件內(nèi)容

print(content)

# 打印文件所在的目錄

print(dir)

# 打印文件里面內(nèi)容的行數(shù)

print(len(content))

結(jié)果:

<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

默認(rèn)地址: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個(gè)斐波那契數(shù)列

print(fib(10))

print(fib(0))

結(jié)果:

55

0

5、Python環(huán)境管理

5.1 打開(kāi)管理終端

Windows用戶打開(kāi)“Anaconda Prompt”

macOS和Linux用戶打開(kāi)"Terminal"(終端)

5.2 創(chuàng)建新環(huán)境


conda create --name <env_name> <package_name>

注:

  1. env_name--創(chuàng)建的環(huán)境名,建議英文命名,且不加空格,名稱兩邊不加尖括號(hào)"<>"

  2. package_name--安裝環(huán)境中的包名,名稱兩邊不加尖括號(hào)"<>"

  3. 如果要安裝指定的版本號(hào), 則只需要在包名后面以=和版本號(hào)的形式執(zhí)行。如:conda create name python2 python=2.7,即創(chuàng)建一個(gè)名為“python2”的環(huán)境,環(huán)境中安裝版本為2.7的python。

  4. 如果要在新創(chuàng)建的環(huán)境中創(chuàng)建多個(gè)包,則直接在<package_names>后以空格隔開(kāi),添加多個(gè)即可。如:conda create -n python3 python=3.7 numpy pandas,即創(chuàng)建一個(gè)名為“python”的環(huán)境,環(huán)境中安裝版本為3.7的python,同時(shí)也安裝了numpypandas

  5. 默認(rèn)情況下,新創(chuàng)建的環(huán)境會(huì)被保存在/User/<username>/anaconda3/env目錄下,其中<user_name>為系統(tǒng)當(dāng)前用戶的用戶名。

5.3 激活/退出環(huán)境

激活:conda activate python3

退出:conda deactivate

5.4 刪除環(huán)境

conda remove --name python3 --all

6、Python擴(kuò)展庫(kù)安裝

6.1 添加清華大學(xué)的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/

# 設(shè)置搜索時(shí)顯示通道地址

conda config --set show_channel_urls yes

conda install numpy 測(cè)試

查詢可供安裝的擴(kuò)展庫(kù)版本

conda search --full-name pandas

獲取當(dāng)前環(huán)境中已安裝的擴(kuò)展庫(kù)信息

conda list

6.2 在指定環(huán)境中安裝包


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 在當(dāng)前環(huán)境中卸載包

conda remove <package_name>

6.4 在指定環(huán)境中卸載包

conda remove --name <env_name> <package_name>

7、 Python擴(kuò)展庫(kù)導(dǎo)入

建議先導(dǎo)入標(biāo)準(zhǔn)庫(kù)再導(dǎo)入擴(kuò)展庫(kù)對(duì)象,只導(dǎo)入確實(shí)需要使用的標(biāo)準(zhǔn)庫(kù)和擴(kuò)展庫(kù)對(duì)象,提高加載速度,減少打包體積

7.1 import 模塊名[as 別名]

使用時(shí)需要在對(duì)象之前加上模塊名作為前綴,即“模塊名.對(duì)象名”


import math

import random

import posixpath as path

print(math.sqrt(16))    # 計(jì)算并輸出16的平方根

print(math.cos(math.pi/4))  # 計(jì)算余弦值

print(random.choices('abcd', k=8))  # 從字符串'abcd'隨機(jī)選擇8個(gè)字符

# 允許重復(fù)

print(path.isfile(r'C:Windows\notepad.exe'))    #測(cè)試指定路徑是否為文件

結(jié)果:

4.0

0.7071067811865476

['b', 'b', 'd', 'b', 'a', 'd', 'a', 'c']

False

7.2 from 模塊名 import 對(duì)象名 [as 別名]

不需要模塊名作為前綴,導(dǎo)入方式可以減少查詢次數(shù),提高訪問(wèn)速度


from math import pi as PI

from os.path import getsize

from random import choice

r = 3

print(round(PI*r*r, 2)) # 計(jì)算半徑為3的圓面積

print(getsize(r'C:Windows\notepad.exe'))    # 計(jì)算文件大小,單位為字節(jié)

print(choice('Python')) # 從字符串中隨機(jī)選擇一個(gè)字符

結(jié)果:

28.27

254464

o

7.3 from 模塊名 import *

不推薦使用


from itertools import *

characters = '1234'

for item in combinations(characters, 3):    # 從4個(gè)字符中任選3個(gè)組合

print(item, end=' ')                    # end=' ' 表示輸出后不換行

print('\n'+'='*20)                          # 行號(hào)后輸出20個(gè)等于號(hào)

for item in permutations(characters, 3):    # 從4個(gè)字符中任選3個(gè)的排列

print(item, end=' ')                   

8、Python常用標(biāo)準(zhǔn)庫(kù)

8.1 字符串

re:正則表達(dá)式。用來(lái)判斷是否是你指定的特定字符串。

StringIO:提供以文件形式來(lái)讀寫(xiě)字符串。

struct:以二進(jìn)制字節(jié)序列來(lái)解釋字符串??梢酝ㄟ^(guò)格式化參數(shù),指定類(lèi)型、長(zhǎng)度、字節(jié)序(大小端)、內(nèi)存對(duì)齊等。


import re

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

結(jié)果:

['foot', 'fell', 'fastest']

如果只需要簡(jiǎn)單的功能,應(yīng)該首先考慮字符串,因?yàn)楹?jiǎn)單,易于閱讀和調(diào)試,如:


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

結(jié)果:

'tea for two'

8.2 數(shù)據(jù)類(lèi)型

datetime:提供操作日期和時(shí)間的類(lèi)。

collections:高性能容器數(shù)據(jù)類(lèi)型。實(shí)現(xiàn)了Python的通用內(nèi)置容器、字典、列表、集合,和元組專門(mén)的數(shù)據(jù)類(lèi)型。

pprint:提供“整潔打印”功能,具有打印任意Python數(shù)據(jù)結(jié)構(gòu)的能力。

8.3 數(shù)學(xué)運(yùn)算

random:各種分布的偽隨機(jī)數(shù)的生成器。

math:數(shù)學(xué)函數(shù)。提供了由C標(biāo)準(zhǔn)的數(shù)學(xué)函數(shù)訪問(wèn)。該庫(kù)函數(shù)不適用于復(fù)數(shù)。

cmath:為復(fù)數(shù)提供的數(shù)學(xué)函數(shù)。

operator: 重載運(yùn)算符。

math 模塊為浮點(diǎn)運(yùn)算提供了對(duì)底層C函數(shù)庫(kù)的訪問(wèn)


import math

print(math.cos(math.pi/4))

print(math.log(1024, 2))

結(jié)果:

0.7071067811865476

10.0

random 提供了生成隨機(jī)數(shù)的工具


import random

fruits = random.choice(['apple', 'pear', 'banana'])

x = random.sample(range(100), 10) # 0-100選擇不能重復(fù)的10個(gè)數(shù)

y = random.random() # 隨機(jī)浮點(diǎn)數(shù)

z = random.randrange(6) # 從范圍0-6中選擇隨機(jī)整數(shù)

print(fruits)

print(x)

print(y)

print(z)

結(jié)果:

apple

[64, 97, 91, 21, 40, 55, 63, 79, 77, 1]

0.8885638928051524

0

8.4 文件和目錄

os.path:常用路徑名操作。

filecmp:文件和目錄的比較。

shutil:高級(jí)的文件操作:支持文件復(fù)制和刪除。

8.5 操作系統(tǒng)

time:時(shí)間獲取和轉(zhuǎn)換,各種與時(shí)間相關(guān)的函數(shù)。

argparse:命令行選項(xiàng)、參數(shù)和子命令的解析器。

io:提供接口處理的IO流。

logging: Python的日志工具,提供日志記錄的API。

logging.config:Python日志配置,用于配置日志模塊的API。

os:提供豐富的與MAC,NT,Posix等操作系統(tǒng)進(jìn)行交互的能力。

sys:提供訪問(wèn)和維護(hù)python解釋器的能力。這包括了提示信息,版本,整數(shù)的最大值,可用模塊,路徑鉤子,標(biāo)準(zhǔn)錯(cuò)誤,標(biāo)準(zhǔn)輸入輸出的定位和解釋器調(diào)用的命令參數(shù)。

os模塊提供了不少與操作系統(tǒng)相關(guān)聯(lián)的函數(shù)


import os

print(os.getcwd())  # 返回當(dāng)前的工作目錄

os.chdir(r'C:Users\winner\Python3Learn\Lesson1Code') # 修改當(dāng)前的工作目錄

os.system('mkdir today') # 執(zhí)行系統(tǒng)命令 mkdir

print(os.getcwd())  # 返回當(dāng)前的工作目錄

建議使用import os 風(fēng)格而非from os import *,這樣可以保證隨操作系統(tǒng)不同而有所變化的os.open()不會(huì)覆蓋內(nèi)置函數(shù)open()。

在使用os這樣的大型模塊時(shí),內(nèi)置的dir()和help()函數(shù)非常有用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容