每天都在汆肉中醒来青梅,好男人www在线观看,少妇无码自慰毛片久久久久久,国产欧美另类久久久精品丝瓜

登錄注冊
新聞 資訊 金融 知識 財經 理財 科技 金融 經濟 產品 系統 連接 科技 聚焦
首頁 > 知識 > > 正文

Python是什么?有什么優點?趕緊來看看Python的入門教程

2018-10-26 20:01:46來源:硬派科技

Python是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。
Python的設計具有很強的可讀性,相比其他語言經常使用英文關鍵字,其他語言的一些標點符號,它具有比其他語言更有特色語法結構。
 

Python特點
§  1.易于學習:Python有相對較少的關鍵字,結構簡單,和一個明確定義的語法,學習起來更加簡單。
§  2.易于閱讀:Python代碼定義的更清晰。
§  3.易于維護:Python的成功在于它的源代碼是相當容易維護的。
§  4.一個廣泛的標準庫:Python的最大的優勢之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。
§  5.互動模式:互動模式的支持,您可以從終端輸入并獲得結果的語言,互動的測試和調試代碼片斷。
§  6.便攜式:Python可以運行在多種硬件平臺和所有平臺上都具有相同的接口。
§  7.可擴展:可以添加低層次的模塊到Python解釋器。這些模塊使程序員可以添加或定制自己的工具,更有效。
§  8.數據庫:Python提供所有主要的商業數據庫的接口。
§  9.GUI編程:Python支持GUI可以創建和移植到許多系統調用。
§  10.可擴展性:相比 shell 腳本,Python 提供了一個更好的結構,且支持大型程序。

什么是NLP?

自然語言處理(NLP)是關于開發能夠理解人類語言的應用程序和服務。一些NLP的實際例子是語音識別,例如:谷歌語音搜索,了解內容是什么或情感分析等。

NLP

這些是自然語言處理(NLP)的一些成功實現:

搜索引擎,如谷歌,雅虎等。谷歌搜索引擎了解你是一個技術人員,所以它顯示了與你相關的結果。

社交網站像Facebook新聞源一樣提供。新聞Feed算法使用自然語言處理了解您的興趣,并向您展示與其他帖子相關的廣告和帖子。

語音引擎,Apple Siri等。

垃圾郵件過濾器, 現在垃圾郵件過濾器了解電子郵件內容中的內容,看看它是否是垃圾郵件。

如何使用Python開始使用NLP?

自然語言工具包(NLTK)是最受歡迎的自然語言處理庫(NLP),它是用Python編寫的,背后有一個很大的社區。

NLTK也很容易學習,它是您將使用的最簡單的自然語言處理(NLP)庫。

在這個NLP教程中,我們將使用Python NLTK庫。

Python基礎知識,在我開始安裝NLTK之前,我假設您已經了解了一些。

安裝nltk使用pip,如果您使用的是Windows或Linux或Mac,則可以安裝NLTK :

$ pip install nltk

在撰寫本文時,您可以在Python 2.7,3.4和3.5上使用NLTK。

要檢查NLTK是否已正確安裝,您可以打開python終端并鍵入以下內容:

導入nltk

如果一切順利,這意味著您已成功安裝NLTK庫。

一旦安裝了NLTK,就應該通過運行以下Python代碼來安裝NLTK軟件包:

import nltk

nltk.download()

這將顯示NLTK下載程序,以選擇需要安裝的軟件包。

您可以安裝所有包,因為它們的尺寸很小。

我們將學習如何識別網頁在Python中使用NLTK的內容

首先,我們將抓取一個網頁并分析文本以查看該頁面的內容。

urllib模塊將幫助我們抓取網頁

import urllib.request

response = urllib.request.urlopen('https://en.wikipedia.org/wiki/SpaceX')

html = response.read()

print(html)

從鏈接可以清楚地看出,該頁面是關于SpaceX的,現在讓我們看看我們的代碼是否能夠正確識別頁面的上下文。

Beautiful Soup

我們將使用這是一個Python庫,用于從HTML和XML文件中提取數據。

from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'html5lib')

text = soup.get_text(strip = True)

print(text)

使用Python自然語言處理入門教程

你會得到一個像這樣的輸出

現在我們從已抓取的網頁上獲得了干凈的文字,讓我們將文本轉換為tokens。

tokens = [t for t in text.split()]

print(tokens)

lambda

§ lambda表達式是起到一個函數速寫的作用。允許在代碼內嵌入一個函數的定義。它只是一個表達式,函數體比def簡單很多。

§ 3個數求和的例子:

>>>f = lambda x,y,z:x+y+z

>>>f(1,2,3)

>>>6

§ 而如何要用正常函數實現上述功能的話,需要先用def定義函數名,代碼如下:

>>>def f(x,y,z):

>>> return x+y+z

>>>n = f(1,2,3)

>>>6

filter()

§ filter()函數

§ 包括兩個參數,分別是function和list。該函數根據function參數返回的結果是否為真來過濾list參數中的項,最后返回一個新列表,如下例所示:

>>>a=[1,2,3,4,5,6,7]

>>>b=filter(lambda x:x>5, a)

>>print b

>>>[6,7]

§ 如果filter參數值為None,就使用identity()函數,list參數中所有為假的元素都將被刪除。如下所示:

>>>a=[0,1,2,3,4,5,6,7]

b=filter(None, a)

>>>print b

>>>[1,2,3,4,5,6,7]

§ map()函數

§ map()的兩個參數一個是函數名,另一個是列表或元組。

>>>map(lambda x:x+3, a) #這里的a同上

>>>[3,4,5,6,7,8,9,10] #另一個例子

>>>a=[1,2,3] >>>b=[4,5,6]

>>>map(lambda x,y:x+y, a,b)

>>>[5,7,9]

§ 在刷題的過程中,map()函數通常可以結合輸入一起使用,例如在一行中輸入3個整數,可用如下語句:

a,b,c = map(int, input().split())

§ reduce()函數

§ reduce()函數接收的參數和 map()類似,一個函數 f,一個list,但行為和 map()不同,reduce()傳入的函數 f 必須接收兩個參數,reduce()對list的每個元素反復調用函數f,并返回最終結果值。

§ 例如,編寫一個f函數,接收x和y,返回x和y的和:

def f(x, y):

return x + y

§ 調用 reduce(f, [1, 3, 5, 7, 9])時,reduce函數將做如下計算:

1. 先計算頭兩個元素:f(1, 3),結果為4;

2. 再把結果和第3個元素計算:f(4, 5),結果為9;

3. 再把結果和第4個元素計算:f(9, 7),結果為16;

4. 再把結果和第5個元素計算:f(16, 9),結果為25;

5. 由于沒有更多的元素了,計算結束,返回結果25。

range()

§ range() 函數可創建一個整數列表,一般用在 for 循環中。語法如下:

§ range(start, stop, step)

§ 實例:

>>>range(10) # 從 0 開始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(1, 11) # 從 1 開始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> range(0, 30, 5) # 步長為 5 [0, 5, 10, 15, 20, 25]

>>> range(0, 10, 3) # 步長為 3 [0, 3, 6, 9]

>>> range(0, -10, -1) # 負數 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

>>> range(0) []

>>> range(1, 0) []

§ range 在 for 中的使用:

for i in range(n): # 正序遍歷,表示i的取值從0到n-1

for i in range(n,0,-1): # 倒序遍歷,表示i的取值從n到1

dict字典

§ dict字典使用鍵-值(key-value)存儲,具有極快的查找速度。在Java中也稱為map。

§ 舉個例子,假設要根據同學的名字查找對應的成績,如果用list實現,需要兩個list:

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

scores = [95, 75, 85]

§ 給定一個名字,要查找對應的成績,就先要在names中找到對應的位置,再從scores取出對應的成績,list越長,耗時越長。

§ 如果用dict實現,只需要一個“名字”-“成績”的對照表,直接根據名字查找成績,無論這個表有多大,查找速度都不會變慢。用Python寫一個dict如下:

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

>>> d['Michael'] 95

§ 我在刷題的時候,遇到一個問題就是需要在循環中動態往dict添加數據,但是沒有找到添加的函數,其實不用插入函數,循環中動態往dict添加數據也很簡單,如下所示:

dt = {} #先定義一個字典,注意是{},如果定義數組是[]

for i in range(n):

dt[key[i]] = value[i]

sort

§ sort參數說明

L.sort(cmp=None, key=None, reverse=False)

§ sorted參數說明

sorted(iterable, cmp=None, key=None, reverse=False)

§ iterable:是可迭代類型,通常為一個集合;

§ cmp:用于比較的函數,比較什么由key決定,有默認值,迭代集合中的一項;

§ key:用列表元素的某個屬性和函數進行作為關鍵字,有默認值,迭代集合中的一項;

§ reverse:排序規則. reverse = True 表示降序 或者 reverse = False 表示升序,默認值為False。

§ 使用sort()方法對list排序會修改list本身,不會返回新list,使用方法如下:

my_list = [3, 5, 1, 4, 2]

my_list.sort()

print my_list

#輸出:

[1, 2, 3, 4, 5]

§ 而使用sorted()方法排序時會返回一個新的list:

my_list = [3, 5, 1, 4, 2]

result = sorted(my_list) #返回一個新的list

print result

#輸出:

[1, 2, 3, 4, 5]

常用的一些零散的小知識

§ 求實數的多少次冪

§ 正常在java和C語言中,求一個數的冪需要調用一個求冪的函數,但是Python中直接一個運算符就可以搞定了:

#Python求冪

10**2 #10的平方

10**4 #10的4次方

§ print(‘xx’,end=’’)中end問題

§ end是print()函數的一個參數。end 是輸出語句結束以后附加的字符串,它的默認值是換行(’ ’)。如果輸出的時候不需要換行需要顯示的給end賦值。

§ 例如輸出一個數組,每個數之間以空格隔開,可以用如下語句:

for i in range(n):

print(data[i],end=' ') #end值為空格

§ 如果只是單純的想要輸出不換行,可以令end='',end值為空字符串

§ // 與 / 的區別

§ “ / “ 表示浮點數除法,返回浮點結果;

§ “ // “ 表示整數除法,返回不大于結果的一個最大的整數

§ 【code】

print("6 // 4 = " + str(6 // 4))

print("6 / 4 =" + str(6 / 4))

§ 【result】

6 // 4 = 1

6 / 4 =1.5

§ 記得用set去除重復元素

§ 如果一個數組中有很多重復元素,根據需求需要去除重復元素的話,可以使用set集合,類似于Java的HashSet。

§ 語法很簡單,只需一行代碼就可以去重,如下所示:

§ 【code】

a = [1,1,2,2,3,4,5]

a = set(a) print(a)

§ 【result】

{1, 2, 3, 4, 5}
 

關鍵詞: Python

熱點
39熱文一周熱點
主站蜘蛛池模板: 佳木斯市| 千阳县| 南宁市| 酉阳| 烟台市| 镇坪县| 内乡县| 鸡西市| 闵行区| 左贡县| 汾阳市| 陆良县| 寻甸| 江都市| 荆州市| 绿春县| 金平| 进贤县| 阿坝县| 昭通市| 玉树县| 深州市| 怀远县| 河池市| 井研县| 大竹县| 汝南县| 陕西省| 永胜县| 濮阳县| 柘荣县| 呼伦贝尔市| 和田县| 岐山县| 平原县| 延津县| 芜湖县| 五家渠市| 阿图什市| 育儿| 宜君县|