Python學習筆記—day1—基礎知識

qq_43524117發表於2019-02-27

Python學習筆記—day1—基礎知識

一、環境搭建

(一)anaconda環境配置

我採用的版本是Anaconda 3 5.2.0,Python版本為Python3.7.0

1.Anaconda是什麼

Anaconda包含canda,Anaconda Navigator以及許多scientific packages,用於管理包和環境。

2.Anaconda與Python的關係

如果將Python比作linux,那麼Anaconda就類似於linux的發行版。其主要作用有兩個,一個是管理包,包括報的安裝,更新與解除安裝;二是管理環境,解決了多版本python並存以及不同版本包的執行問題。

3.Anaconda與Pycharm的關係

anaconda是一個科學計算環境,安裝anaconda相當於安裝了python以及眾多的包和模組;而pycharm則是python的編譯器,既可以直接在python環境下執行,也可以在anaconda中的python中執行。

4.環境配置過程中遇到的問題

(1)在初次安裝Anaconda後在執行程式中僅能找到Anaconda prompt:

在安裝軟體時未選擇第一個預設選項,即未加入環境變數。
在這裡插入圖片描述

(2)在解除安裝了之前安裝的python再安裝anaconda,在anaconda prompt中仍舊無法使用conda命令,會出現“'conda’不是內部或外部命令,也不是可執行的程式或批處理的檔案”:

這時需要配置環境變數,計算機—>屬性—>高階系統設定—>環境變數—>系統變數—>在path中新增anaconda的安裝目錄。這樣就可以成功使用conda命令了,會出現如下介面:
在這裡插入圖片描述

(3)pycharm環境的配置

在安裝anaconda後,由於刪掉了之前的python需要對原來pycharm的編譯環境進行重新配置,否則會出現以下情況:
在這裡插入圖片描述
在重新配置編譯環境時,我採用conda命令重新構建scikit-learn環境,並將其通過pycharm中的existing environment將建立好的環境新增進去,成功解決了這一問題。

5.更新包

在終端輸入conda upgrade --all,終端未報錯並出現proceed<[y]/n>?此時輸入yes,終端會下載並提取所有包.。

(二)直譯器(編譯器與直譯器的區別)

1.直譯器

(1)直譯器的概念

直譯器相當於翻譯器,將高階程式語言一行行直譯為系統可執行的指令,由於在每次執行時都需要將程式語言轉化為另一種語言才能執行,因此直譯器的程式執行速度較為緩慢。

(2)直譯器執行程式的方法

直接執行高階程式語言;轉化高階程式語言碼到一些有效率的位元組碼並執行這些位元組碼(常見的有python,Perl,MATLAB等);以直譯器包含的編譯器對高階語言編譯並指示處理器執行編譯後的程式(常見的有UCSD-Pascal)。

(3)python直譯器

當我們編寫python程式碼時得到的是以.py為副檔名的文字檔案,要執行程式碼就需要python直譯器去執行.py檔案。常見的python直譯器有Cpyhton(官方版本的直譯器),Ipython,PyPy,Jython,IronPython。
在這裡插入圖片描述

2.編譯器

(1)編譯器的概念

編譯就是把高階語言變成計算機可識別的二進位制語言。

(2)編譯器與IDE的關係

IDE(intergrated development environment)指整合開發環境,也就是用於編輯程式碼、開發程式的應用程式,一般包含程式碼編輯器與編譯器等;
編譯器(compiler)將高階程式語言程式碼翻譯成目的碼(如機器語言)的程式。
IDE包含編譯器,也就是說編譯器是IDE的一部分。
在這裡插入圖片描述

二、Python基礎講解

(一)Python的變數特性與命名規則

1.Python中的變數

(1)變數的概念

變數簡單的來說就是程式設計中的基本儲存單位,會暫時性地存放程式中的多種實體,可以是一個值、執行的另一個程式、一組資料或者一個檔案。對於初學者而言變數更多的是代表一個值。

(2)變數的分類

2.1屬性變數,使用者自定義變數。屬性變數是系統自動產生的物件,併為每個變數設定預設值,使用者可以直接引用它或者給它賦新值;使用者自定義變數用於存放程式執行過程中產生的臨時資料或結果資料等。
2.2全域性變數,靜態全域性變數,靜態區域性變數,區域性變數。
區域性變數又稱內部變數,區域性變數是函式內做定義說明的,其作用域僅限於函式內,離開函式後再使用這種變數是非法的(允許在不同的函式中使用相同的變數名);
全域性變數也稱外部變數,是函式外部定義的變數,其作用域是整個源程式(在函式中使用全域性變數應做全域性變數說明;但在函式之前定義的全域性變數在該函式內使用時可不再說明。在同一原始檔內允許全域性變數與區域性變數同名,在區域性變數作用域內全域性變數不起作用)。
變數的儲存方式可以分為靜態儲存和動態儲存。“靜態儲存變數”定義時分配儲存單元並一直保持不變;“動態儲存變數”是在程式執行過程中使用時才給它分配儲存單元。

(3)變數使用時的注意事項

3.1變數在命名時注意區分大小寫(常見的一些命名規則:不能用數字開頭);
3.2變數在使用前必須宣告變數,即建立該變數;
3.3變數的賦值,“=”是賦值號,同一個變數可以多次賦值且可以是不同種類的變數。

(二)註釋方法

1.註釋的作用

說明這段程式碼的作用增加程式碼的可讀性,或者刪除一段暫時不需要執行的程式碼。

2.註釋符號(以python為例)

python中註釋必須是英文,若想使用中文註釋,需要在指令碼檔案第一行新增**#coding utf-8:**
單行註釋:以#來註釋單行不需要執行的程式碼,註釋程式碼會灰顯,在程式執行時不會執行;
多行註釋:以’’‘xxx’’'或""“xxx”""來註釋多行程式碼,功能與單行註釋相同。

3.註釋技巧

3.1每個級別有統一的註釋風格(各個級別的程式碼塊,類,方法);
3.2使用段落註釋(將程式碼塊分為功能獨立的段落);
3.3對齊註釋,常用的操作有tab和空格鍵;
3.4寫程式碼的同時完成註釋,注意註釋要簡明扼要;
3.5更新程式碼的同時注意更新註釋。

(三)Python中“:”的作用

1.python操作中的“:”

1.1切片操作(slice):從一個序列中提取一部分的方法,支援字串、列表、字典、元祖,一般形式為X[I:J](所提取的內容包括I但不包括J);
1.2標準格式:
字典中的key-value的表達需要“:”分割,一般形式{key:value,…};
迴圈中在條件語句後加“:”,例如while和for迴圈,寫了兩個最簡單的程式碼:

while(True):
    print("good")
    break
for i in [1,2,3]:
    print(i)

在條件後輸入“:”,回車,下一行會自動縮排;除此之外與while,for迴圈同時使用的else在使用時要在else後面直接加“:”。
定義函式,定義類時需要用“:”,例如定義一個和函式,裡面的引數包括i和n,定義類用class與定義函式的格式類似。

def sum(i,n):

(四)dir()及help()的使用

1.help()函式

(1)help()函式介紹

help()是python中的內建函式,檢視函式或模組用途的詳細說明。在括號內填寫引數,如函式,也包括模組,資料,字串等例項。

(2)舉例應用

以dir()函式的介紹為例:

help(dir)

執行結果如下:
在這裡插入圖片描述

2.dir()函式

(1)dir()函式介紹

dir()是python中的內建函式,用於返回任意物件屬性和方法列表,物件包括模組,函式,字串,列表,字典等。

(2)舉例應用

注意:在應用時直接輸入dir()函式,執行結果中不會顯示所查詢物件的屬性和方法的,需要用print()函式將執行結果列印出來才能看到。
2.1檢視列表的方法:在dir()函式中輸入空列表,或列表例項返回的結果是一樣的:檢視字串的方法與列表的方法類似,只需要將括號內的引數換位字串或空字元“ ”。

print(dir([]))
x=["a","b"]
print(dir(x))

上述兩個程式碼的執行結果相同,均會返回列表的方法
在這裡插入圖片描述
2.2檢視模組屬性和方法,如檢視sys模組:

import sys
print(dir(sys))

執行結果為:
在這裡插入圖片描述

(五)import使用

1.import()函式的介紹

首先介紹一下模組,模組其實就是一些函式和類的集合檔案,它能實現一些相應的功能。在python中可以用import或者from…import來匯入相應模組,兩者的區別:from…import是從某一指定的模組中匯入特定的成員,一般儘量使用import()函式,使得程式更易懂。
import()函式可以在程式的任意位置使用,一個模組可以多次使用import()函式,但只有第一次匯入時程式碼會被執行。

2.import()函式應用

執行程式碼及執行結果:

import sys
print('================Python import mode==========================');
print ('The command line arguments are:')
for i in sys.argv:
    print (i)
print ('\n The python path',sys.path)

在這裡插入圖片描述

(六)pep8介紹

pep是Python Enhancement Proposal 的縮寫,是基於Python主要發行版本的標準庫的python程式碼編碼規範,原文連結:
pep介紹
主要內容:
(1)程式碼佈局——縮排;tab與space縮排的選擇;所有行的最大字元數為79;允許在二元運算子之前或之後中斷;空行(頂層函式和類的定義,前後用兩個空行隔開);避免使用不必要的空格。
(2)標準庫的匯入。
(3)註釋。
(4)命名規範。
具體解釋可參考下面連結的內容:
pep8編碼規範中文版

三、Python數值基本知識

(一)Python中的資料型別

python中的常見的資料型別包括:字串(string)、布林型別(bool)、數字(numbers)、列表(list)、元組(tuple)、字典(dictionary)、集合(set)等。
(1)數值型別:整型(int),浮點型(float);根據進位制可分為:二進位制資料 (數值前加0b表示:0b11),八進位制資料 (數值前加0o表示:0o77),十進位制資料,十六進位制資料 (數值前加0x表示:0xFF)。
(2)布林型:True和False
(3)常見的資料轉化:

符號 含義
int(a) 把a轉換成一個整數
float(a) 把a轉換成一個浮點型數
str(a) 把a轉換成字串型
repr(a) 把a轉換成表示式字串
eval(str) 用來計算在字串中的有效Python表示式,並返回一個物件
tuple(s) 把序列s轉換成一個元組
list(s) 把序列s轉換成一個列表

(二)算數運算子

(1)常見的算數運算子包括**"+","-","*","/","","//","%".
在這裡插入圖片描述
(2)除此之外整數型支援位運算,即對整型數對應的二進位制數進行按位操作。有以下幾種位運算:
在這裡插入圖片描述
(3)比較運算:
在這裡插入圖片描述

(三)邏輯運算子

常見的邏輯運算子有and,or,not
在這裡插入圖片描述
執行示例程式碼及執行結果:

a=10
b=20
if a and b:
    print("True")
else:
    print("False")
a=0
b=10
if a and b:
    print("True")
else:
    print("False")
if a or b:
    print("True")
else:
    print("False")
if not(a and b):
    print("True")
else:
    print("False")

在這裡插入圖片描述

(四)成員運算子

成員運算子常見用於列表,元祖,字串中,包括“in”以及“not in”:
在這裡插入圖片描述
執行程式碼及執行結果:

a=10
b=20
c=[1,2,3,4,5,6,7,8,9,10]
if a in c:
    print("True")
else:
    print("False")
if b in c:
    print("True")
else:
    print("False")

在這裡插入圖片描述

(五)身份運算子

身份運算子用於比較兩個物件的儲存單元,身份運算子包括“is”和“not is”:
在這裡插入圖片描述

(六)運算子的優先順序

在這裡插入圖片描述
執行程式碼及執行結果:

a = 20
b = 10
c = 15
d = 5
e=(a+b)*c/d
print(e)
e=a*c+c/d
print(e)

在這裡插入圖片描述

四、Python初體驗

(一)print()

1.print()函式的作用

print()函式是將括號中的物件列印出來的一個函式。

2.print()的使用

print("hello world!")
print("what's your name")

點選“run”,在pycharm的執行結果視窗成功地出現了上面兩句話。當直接輸入print()時,會列印出一個空行。
在這裡插入圖片描述

(二)input()

1.input()函式的作用

等待使用者在鍵盤上輸入文字,並按回車。

2.input()的使用

myname=input("請輸入你的姓名:")
print(myname)

其中myname是一個變數,將input()函式中輸入的字串賦值給myname,並用print()函式列印出來,執行結果為:

在這裡插入圖片描述

相關文章