python小白不要怕,小編來保護你~

 

 

前言:python

小編髮現最近私聊個人不少朋友都是零基礎的,因此小編整理了一下python基礎知識,但願對朋友們有所幫助~程序員

1、運行環境web

一、Python解釋器算法

Python解釋器就是Python的交互式運行環境,python程序必須有解釋器纔可以運行,是必備的環境。編程

python解釋器下載地址:https://www.python.org/windows

版本:python2.7數組

安裝後,通常安裝程序給配置好了環境變量,windows下在cmd中輸入python回車,若是出現python版本信息,進入命令行,說明配置好了;若是沒有,則須要配置環境變量。安裝了python解釋器以後,即可以運行python程序,能夠用命令交互式的,就像在cmd中輸入dos命令,也能夠直接運行.py結尾的python程序文件。網絡

二、文本編輯器app

有了運行環境,可是還得有編碼環境,這個不少IDE都對python支持,個人話直接用的notepad文本編輯器。python2.7

2、Python基礎

一、輸入輸出

輸入輸出是最基本的功能,用於用戶和計算機進行交互,raw_input和print是在命令行下面最基本的輸入和輸出。

(1)輸出print

用print後面跟上輸出的內容,就能夠向屏幕上輸出指定的內容。

print語句也能夠跟上多個輸出內容,用逗號「,」隔開,就能夠連成一串輸出,print會依次打印每一個字符串,遇到逗號「,」會輸出一個空格。

例如:print 'hello, world'

(2)輸入raw_input

Python提供了一個raw_input,可讓用戶輸入字符串,並存放到一個變量裏。須要注意的是raw_input獲得得結果是字符串,例如用戶輸入數值33,經過raw_input獲得得變量整形數值33,而是字符串’33’,如果直接用於數值得加減,那麼便會報錯。

字符串如何轉換爲相應的變量值?能夠經過以下方式:

若是是整形 a = int(str)

若是是浮點型 a = float(str)

如果相應的字符串不能轉換成對應的變量類型,那麼也會報錯。

所以如果要經過輸入獲得相應的變量類型,那麼能夠這樣作,例如 c = int(raw_input),則輸入33,即可以獲得值爲33的整形變量。

raw_input可讓你顯示一個字符串來提示用戶:

name = raw_input('please enter your name: ')

二、變量

(1)整數:python的整數包括正數和負數,在程序中的表示方法和數學上的寫法如出一轍。十六進制用0x前綴。

(2)浮點數:浮點數能夠用數學寫法,例如3.1415926;對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.63x109就是1.63e9。

(3)字符串:字符串是以''或""括起來的任意文本,好比'abc',"xyz"。若是字符串內部既包含'又包含"能夠用轉義字符\來標識,例如:'I\'m \"student\"!'(I’m「student」)。

若是字符串裏面有不少字符都須要轉義,就須要加不少\,爲了簡化,Python還容許用r''表示''內部的字符串默認不轉義。

(4)布爾值:布爾值和布爾代數的表示徹底一致,一個布爾值只有True、False兩種值。布爾值能夠用and、or和not運算。布爾值常常用在條件判斷中,並且比較操做符的結果都爲布爾值。

(5)空值:空值是Python裏一個特殊的值,用None表示。None不能理解爲0,由於0是有意義的,而None是一個特殊的空值。

(6)常量: 在python中常量並無相似C++中const關鍵字用於表示常量的語法,用以保證某種數據類型的數值在運行過程當中不可改變和更改,只可以靠程序員自覺遵照。

在python中,並不須要定義變量類型,如在某個地方引用了變量,該變量在賦值的時候,其賦值的右值是什麼類型的數值,在從新賦值以前,該變量就是什麼類型的變量。

例如以下:

A = 1

.........

A =「str」

在變量賦值爲整數1的時候,此時A的變量類型爲整數,一直在A = 「str」以前都是整數變量,在A=」str」以後,那麼此時A再也不是整數變量,而是字符串變量了,如果在以後,A看成整數進行運算,那麼會出現錯誤結果或者運行報錯,在python編碼中要當心又當心,最好不要將一個變量賦兩種不一樣類型的值,以免這種錯誤。

三、list和tuple

(1)list:list是Python內置的一種數據類型是列表。list是一種有序的集合,能夠隨時添加和刪除其中的元素,且集合中的元素能夠爲不一樣變量類型的元素,且數據元素的個數爲空。classmates = ['Michael', 'Bob', 'Tracy']

len()函數能夠得到list元素的個數

用索引來訪問list中每個位置的元素,記得索引是從0開始的,最後一個元素的索引是len(classmates) - 1。若是要取最後一個元素,除了計算索引位置外,還能夠用-1作索引,直接獲取最後一個元素,如果倒數第二個元素的索引能夠是-2,依次類推。

能夠往list中追加元素到末尾append方法

要刪除list末尾的元素,用pop()方法

要刪除指定位置的元素,用pop(i)方法,其中i是索引位置

要把某個元素替換成別的元素,能夠直接賦值給對應的索引位置

list中能夠嵌套list,組成二維數組甚至三位數組等。

(2)tuple:另外一種有序列表叫元組:tuple。tuple和list很是相似,可是tuple一旦初始化就不能修改。classmates = ('Michael', 'Bob', 'Tracy'),只有1個元素的tuple定義時必須加一個逗號,,來消除歧義(避免被識別爲函數)。在定義中,tuple在初始化的形式上能夠省略括號。

除了經過索引值獲取list和tuple中元素的值以外,python還提供了切片(slice)。

  • 經過指定索引範圍,對list進行截取。例如list數組L,取前面三個數值,則L[0:3],取前面N個值,則L[0:N],其中截取的list爲0到N-1,是索引值0到N的左開右閉的區間。若是第一個索引值是0,那麼還能夠省略,則爲L[:N],固然該種方式也支持負數索引值。
  • list和tuple均可以使用該種方式進行數據的截取,截取後獲得的結果依舊是list和tuple,字符串中字符也可使用這種方式,截取後獲得的結果是字符串(能夠將字符串當作是單個字符組成的list)。

四、dict和set

(1)dict是Python內置的字典,與C++中的map的功能類似,用於存儲使用鍵-值(key-value),可以經過key快速的檢索對應的value值。

初始化

d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

插入

d['Adam'] = 67

查找key對應的value值

d[key]

若是key存在,就能夠返回value值,若是key不存在,那麼就會運行報錯。在動態檢索key的過程當中,如果key不存在,運行報錯停止程序的話這是很不方便的,所以咱們能夠在檢索前查找是否在該dict中是否存在該key。

兩種辦法,一是經過in判斷key是否存在

'Thomas' in d 存在就返回true,不存在就返回false

二是經過dict提供的get方法,若是key不存在,能夠返回None,或者本身指定的value,如果存在則返回對應的value值。

刪除

要刪除一個key,用pop(key)方法,對應的value也會從dict中刪除

dict的key必須是不可變對象,做爲key的對象就不能變。在Python中,字符串、整數等都是不可變的,所以,能夠放心地做爲key。而list是可變的,就不能做爲key。

(2)Set

set和dict相似,也是一組key的集合,但不存儲value。因爲key不能重複,因此,在set中,沒有重複的key。

要建立一個set,須要提供一個list做爲輸入集合s = set([1, 2, 3])

添加

經過add(key)方法能夠添加元素到set中,能夠重複添加,但不會有效果

刪除

經過remove(key)方法能夠刪除元素:

五、條件判斷和循環

(1)條件判斷if語句

if <條件判斷1>:

<執行1>

elif <條件判斷2>:

<執行2>

elif <條件判斷3>:

<執行3>

else:

<執行4>

須要注意的是if else語句的判斷爲後須要加上冒號’:’,並且判斷爲true的時候,執行的代碼須要縮進。

(2)循環

循環有兩種,一種是while循環,一種是for循環。

while循環,只要條件知足,就不斷循環,條件不知足時退出循環,其格式與if很像,循環代碼執行主體須要縮進,其格式以下,記得while語句以後要加上冒號’:’。

While <條件判斷1>:

<執行1>

for循環

for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:

sum = sum + x

一種是for...in循環,依次把list或tuple中的每一個元素迭代出來

例如:for x in ...循環就是把每一個元素代入變量x,而後執行縮進塊的語句。

在使用for對list、tuple和字符串進行迭代時候,能夠經過直接迭代或者使用索引值進行間接迭代。由於dict的是經過key-value進行存儲的,所以在迭代的時候與list和tuple都不同,默認狀況下,dict迭代的是key。若是要迭代value,能夠用for value in d.itervalues(),若是要同時迭代key和value,能夠用for k, v in d.iteritems()。

在使用for能夠對一些數據類型進行迭代,但若對一些不可迭代的數據迭代就會產生錯誤。如何判斷一個對象是可迭代對象呢?方法是經過collections模塊的Iterable類型判斷

注:is和==這兩種運算符均可以對對象比較,比較是否相等,可是這兩種運算符又有差異,其中,is是比較兩個引用是否指向了同一個對象(引用比較),==是比較兩個對象是否相等。

六、經過下標遍歷list

在使用C/C++的時候,一般喜歡使用下表對數組進行遍歷。在python中能夠經過enumerate函數能夠把一個list變成索引-元素對,這樣就能夠在for循環中同時迭代索引和元素自己。

classmates = ['Michael', 'Bob', 'Tracy']

for i ,name in enumerate(classmates):

print i,name

print classmates[i]

運行結果以下:

0 Michael

Michael

1 Bob

Bob

2 Tracy

Tracy

七、同時引用兩個變量遍歷

for循環裏,同時引用了兩個變量,在Python裏是很常見的,好比下面的代碼:

for x, y in [(1, 1), (2, 4), (3, 9)]:

八、列表生成

列表生成能夠經過列表生成式或者列表生成器來進行程序生成。

列表生成式顧名思義,經過自定義表達式,能夠快速生成list,能夠經過一個list推導出另外一個list,表達式通常和for循環寫在一塊兒,並經過方括號組成。

例如L=[1,2,3,4,5]的列表,要生成每一個元素都是L中元素的平方,則 [x*x for x in L] 此表達式生成的就是一個對L的元素求平方的列表

列表生成式後面能夠根據if來進行篩選,將不符合條件的元素刷選調,例如要生成的列表中偶數進行平方操做生成列表,則[x*x for x in ifx%2==0]

列表生成式還能夠多層循環,能夠生成全排列,例如兩層循環,進行全排列,例如:[m + n for m in 'ABC' for n in 'XYZ']

生成器。經過列表生成式,咱們能夠直接建立一個列表。可是,受到內存限制,列表容量確定是有限的。列表元素能夠按照某種算法推算出來,咱們能夠在循環的過程當中不斷推算出後續的元素。在Python中,這種一邊循環一邊計算生成元素的,稱爲生成器(generator)。

建立一個generator

  • 能夠把一個列表生成式的[]改爲(),就建立了一個generator。

例如g = (x * x for x in range(10))

  • 能夠將在函數定義的時候,若是一個函數定義中包含yield關鍵字,那麼這個函數就再也不是一個普通函數,而是一個generator。generator的函數,與普通函數不同,在每次調用next()的時候執行,遇到yield語句返回,再次執行時從上次返回的yield語句處繼續執行。

對於生成器中的元素,咱們能夠經過generator的next()方法進行遍歷,直到遍歷玩到最後一個產生異常爲止。

在絕大多數狀況下,生成器的迭代通常能夠用for循環就能夠進行迭代遍歷了。

 

 

在這裏,小編也爲你們推薦一些入門讀物:

1.《Python基礎教程》(Beginning Python From Novice to Professional)

2.《Python學習手冊》(Learning Python)

3.《Python編程》(Programming Python)

4.《Python Cookbook》

5.《Python程序設計》(Python Programming: An Introduction to Computer Science)

6.《Python編程:從入門到實踐》

7.《python入門魔力手冊》

8.《笨辦法學 Python(第四版)》

9.《深刻_Python_3》

10.《Python網絡編程基礎》

11.《Python語言及其應用(美Lubanovic 2016)》

12.《Python編程入門(第3版)》

13.《Python編程初學者指南》

【這是針對基礎朋友的,固然,有須要進階、web、爬蟲、圖形圖像、數據分析、機器學習等讀物推薦的能夠私聊小編,加小編好友:2842957735。你們還有想一塊兒交流學習的能夠加羣:714042473】