天才教育網(wǎng)合作機(jī)構(gòu) > 編程語(yǔ)言培訓(xùn)機(jī)構(gòu) > java培訓(xùn)機(jī)構(gòu) >

天才領(lǐng)路者

歡迎您!
朋友圈

400-850-8622

全國(guó)統(tǒng)一學(xué)習(xí)專線 9:00-21:00

位置:編程語(yǔ)言培訓(xùn)資訊 > java培訓(xùn)資訊 > 0基礎(chǔ)怎么自學(xué)python

0基礎(chǔ)怎么自學(xué)python

日期:2019-08-18 11:10:03     瀏覽:186    來源:天才領(lǐng)路者
核心提示:python的變量與java的不一樣,java的變量是固定類型的,而python的變量也是對(duì)象引用。以下是小編為你整理的0基礎(chǔ)怎么自學(xué)python?首先是理解對(duì)象引用,對(duì)象引用就是映射關(guān)系?比如,你在超市的儲(chǔ)物柜1號(hào)放了個(gè)包裹,那么你得到一

python的變量與java的不一樣,java的變量是固定類型的,而python的變量也是對(duì)象引用。以下是小編為你整理的0基礎(chǔ)怎么自學(xué)python ?

首先是理解對(duì)象引用,對(duì)象引用就是映射關(guān)系 ?

比如,你在超市的儲(chǔ)物柜1號(hào)放了個(gè)包裹,那么你得到一張票據(jù),上面寫著A ?

那么,這個(gè)A就是引用了這個(gè)格子 ?

標(biāo)識(shí)符-等號(hào)-對(duì)象,比如,A = 123

0基礎(chǔ)怎么自學(xué)python

?

那么,A是標(biāo)識(shí)符,123是對(duì)象 ?

注意:標(biāo)識(shí)符的大小寫是區(qū)分的,ABC與Abc與abc,是不同的標(biāo)識(shí)符 ?

如果之前接觸過java,這個(gè)理解起來會(huì)有點(diǎn)不一樣,python的變量就是對(duì)象引用,與java的變量存儲(chǔ)在棧內(nèi)存是不一樣 ?

比如A=1,B=A,那么結(jié)果是A和B都指向1 ?

假如這時(shí)候,A=2,那么A會(huì)指向2,B不會(huì)跟著改變,則還是指向1 ?

所以說,A指向另外一個(gè)引用的時(shí)候,是直接指向另外一個(gè)引用所引用的對(duì)象的 ?

換成代碼,則是下面這樣,首先A指向1號(hào),然后B指向A,再把A的指向2號(hào) ?

這樣的情況下,B不會(huì)跟著改變 ?

還有重要的一點(diǎn),就是對(duì)象不會(huì)隨著沒有被引用而馬上消失,假設(shè)A和B都是指向1,然后A和B又指向2,那么1沒有被引用了,但是還是會(huì)存在的 ?

用代碼演示就是 ?

A=1,打印A的內(nèi)存地址 ?

A=2,打印A的內(nèi)存地址 ?

A=1,打印A的內(nèi)存地址 ?

A=2,打印A的內(nèi)存地址 ?

如果對(duì)象沒有被清除,那么4次打印內(nèi)存地址,13次地址數(shù)值是相同的,24次也一樣 ?

底部的內(nèi)存地址,即使對(duì)象再次被引用的時(shí)候,還是原來的地址。 ?

如何搭建環(huán)境

學(xué)習(xí)爬蟲首先學(xué)習(xí)Python,建議通過**mooc和《笨方法學(xué)Python》來實(shí)現(xiàn)入門,那本書的內(nèi)容可以有所取舍。通過這兩個(gè)途徑再上網(wǎng)上針對(duì)性地查找相關(guān)內(nèi)容完全可以入門,重點(diǎn)在于理解“面向?qū)ο蟆薄? ?

爬蟲入門首先要明白一些網(wǎng)絡(luò)技術(shù),了解TCP/IP參考模型,并且對(duì)應(yīng)用層的HTTP協(xié)議的方法和工作原理有一定的認(rèn)識(shí)。爬蟲爬取網(wǎng)頁(yè)內(nèi)容,大多數(shù)網(wǎng)頁(yè)服務(wù)由HTTP協(xié)議實(shí)現(xiàn)。 ?

正式學(xué)習(xí)爬蟲庫(kù)urllib和正則表達(dá)式,urllib靈活性很高,并且和你所學(xué)的網(wǎng)絡(luò)原理、HTTP原理非常貼合,利于新手學(xué)習(xí),正則表達(dá)式看看內(nèi)容,再看幾個(gè)實(shí)例就應(yīng)該會(huì)用了,不推薦看亂七八糟的教程和MOOC(效果非常差,講的跨度太大),推薦書籍《精通Python網(wǎng)絡(luò)爬蟲 核心技術(shù)、框架與項(xiàng)目實(shí)戰(zhàn) 》(韋瑋)。同樣是選擇性的閱讀。 ?

學(xué)習(xí)完成之后,多加實(shí)踐,推薦實(shí)戰(zhàn)項(xiàng)目:1、爬取漫畫網(wǎng)上的一部漫畫的所有圖片,并用PowerPoint做成PDF 2、爬取電影下載網(wǎng)站上的所有電影下載鏈接并整理到Excel。能獨(dú)立完成這兩個(gè)實(shí)戰(zhàn)項(xiàng)目,恭喜你已經(jīng)成功入門! ?

構(gòu)造一個(gè)三維數(shù)組

import numpy as npa = np.random.rand(3,3,5) ?

np.floor是一個(gè)ufunc函數(shù),它是一個(gè)一元函數(shù)——取整函數(shù),可以做用于a里面的每一個(gè)數(shù)字,且保持?jǐn)?shù)組結(jié)構(gòu)不變,仍舊是三維的3*3*5的數(shù)組: ?

類似的一元ufunc函數(shù)還有很多,比如所有的初等數(shù)學(xué)函數(shù): ?

print(np.sin(b),'n',np.cos(b)) ?

np.add是一個(gè)多元的ufunc函數(shù): ?

b = np.add.reduce(a) ?

這里,reduce的作用,是把a(bǔ)dd函數(shù)作用于數(shù)組a的*層每一個(gè)子數(shù)組,計(jì)算這些元素的和。 ?

具體的作用結(jié)果是: ?

c = []for j in range(3): d = [] for i in range(5): #print(a[:,j,i],'t',sum(a[:,j,i])) d.append(sum(a[:,j,i])) c.append(d)print(np.array(c)) ?

b = np.add.reduce(a,axis = 1) ?

這里指定了add作用于a的第二層子數(shù)組,具體如下: ?

c = []for j in range(3): d = [] for i in range(5): #print(a[j,:,i],'t',sum(a[j,:,i])) d.append(sum(a[j,:,i])) c.append(d)print(np.array(c)) ?

b = np.add.reduce(a,axis = 2) ?

將add函數(shù)作用于a的第三層子數(shù)組: ?

print(sum(a[0,0]))

?

給出一個(gè)一維數(shù)組: ?

import numpy as npa = np.floor(np.random.rand(6)*10) ?

從左往右累計(jì)a里面的元素之和: ?

b = np.add.accumulate(a) ?

具體的類似于: ?

c = 0d = []for i in range(6): c = c+a[i] d.append(c) print(np.array(d))

云基礎(chǔ)設(shè)施

這年頭,不支持云平臺(tái),不支持海量數(shù)據(jù),不支持動(dòng)態(tài)伸縮,根本不敢說自己是做大數(shù)據(jù)的,頂多也就敢跟人說是做商業(yè)智能(BI)。 ?

云平臺(tái)分為私有云和公有云。私有云平臺(tái)如日中天的 OpenStack,就是 Python 寫的。曾經(jīng)的追趕者 CloudStack,在剛推出時(shí)大肆強(qiáng)調(diào)自己是 Java 寫的,比 Python 有優(yōu)勢(shì)。結(jié)果,搬石砸腳,2015 年初,CloudStack 的發(fā)起人 Citrix 宣布加入 OpenStack 基金會(huì),CloudStack 眼看著就要壽終正寢。 ?

如果嫌麻煩不想自己搭建私有云,用公有云,不論是 AWS,GCE,Azure,還是阿里云,青云,在都提供了 Python SDK,其中 GCE 只提供 Python 和 JavaScript 的 SDK,而青云只提供 Python SDK??梢姼骷以破脚_(tái)對(duì) Python 的重視。 ?

提到基礎(chǔ)設(shè)施搭建,不得不提 Hadoop,在今天,Hadoop 因?yàn)槠?MapReduce 數(shù)據(jù)處理速度不夠快,已經(jīng)不再作為大數(shù)據(jù)處理的*,但是 HDFS 和 Yarn——Hadoop 的兩個(gè)組件——倒是越來越受歡迎。Hadoop 的開發(fā)語(yǔ)言是 Java,沒有官方提供 Python 支持,不過有很多第三方庫(kù)封裝了 Hadoop 的 API 接口(pydoop,hadoopy 等等)。 ?

Hadoop MapReduce 的替代者,是號(hào)稱快上 100 倍的 Spark,其開發(fā)語(yǔ)言是 Scala,但是提供了 Scala,Java,Python 的開發(fā)接口,想要討好那么多用 Python 開發(fā)的數(shù)據(jù)科學(xué)家,不支持 Python,真是說不過去。HDFS 的替代品,比如 GlusterFS,Ceph 等,都是直接提供 Python 支持。Yarn 的替代者,Mesos 是 C++ 實(shí)現(xiàn),除 C++ 外,提供了 Java 和 Python 的支持包。

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: