中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python基礎-你必備的語言技能包

發布時間:2020-07-20 09:46:09 來源:網絡 閱讀:1362 作者:51CTO博客 欄目:編程語言

今天,我們正式開始數據分析課程的基礎篇,Python 基礎。

為什么是 Python 呢,在相關的開發語言調查中,使用過 Python 的開發者,大多數人都會把 Python 作為自己的主要語言。在數據分析領域,使用 Python 語言更是最多的。Python 語言語法簡潔,搭建方便,而且還擁有龐大健全的第三方庫供使用。比如科學計算工具庫 Pandas 和 NumPy;深度學習工具 Keras 和 TensorFlow;以及機器學習工具庫 Scikit-learn 等等。

總之,如果你想在數據分析、機器學習等領域做深入研究的話,那么熟練掌握 Python 語言就是最好的敲門磚。

搭建語言環境

我們首先來了解下如何安裝和搭建 Python 語言環境?

Python 版本的選擇

當前流行的 Python 版本有兩個,2.X 和 3.X,由于 2.X 即將不再維護,所以我建議直接使用 3.X 版本作為你的主要版本。

IDE 的選擇

目前市面上流行著很多的 Python 編輯器,比如 Sublime,Notebook++ 等,不過我還是推薦如下兩個

PyCharm:這是一個跨平臺的 Python 開發工具,不但擁有常規的調試、語法高亮,智能提示等功能外,還自帶多個數據庫連接器,使你在調試數據庫的時候也能得心應手,不再忙于到處下載各種數據庫客戶端。

Jupyter:這個是一個 web 式的在線編輯器,每次運行一行代碼,你都可以立即得到結果,非常方便,在代碼調試階段,用處無限。

Python 軟件的安裝

如果你是 Linux 或者 MacOS 操作系統,那么一般會自帶 Python2.6 的版本。如果想要安裝 3.X 的版本,需要自行編譯安裝,如果沒有 Linux 操作基礎的話,建議還是使用 Windows,以后有機會了,再學習 Linux 及相關操作。

如果是 Windows 操作系統,可以直接到 Python 官網下載 .exe 安裝包,一路下一步即可完成安裝。

Python 基礎語法

Hello World

相信大家都有這種經驗,學習任何一門語言時,入門的都是輸出 Hello World,下面我們就來看看如何使用 Python 來輸出 Hello World

print("Hello World")
sum = 1 + 2
print("sum = %d" %sum)
>>>
Hello World
sum = 3

print 函數,用來在控制臺打印輸出,sum = 語法是聲明變量并賦值,%d 是用來做字符串替換。

數據類型和變量

列表

list1 = ["1", "2", "test"]
print(list1)
list1.append("hello")
print(lists)
>>>
['1', '2', 'test']
['1', '2', 'test', 'hello']

list 是 Python 內置的一種數據類型,是一種有序的集合,可以隨時添加和刪除其中的元素。

元組

tuple1 = ("zhangsan", "lisi")
print(tuple1[0])
>>>
zhangsan

tuple 和 list 非常類似,但是 tuple 一旦初始化就不能修改。

字典

dict1 = {"name1": "zhangsan", "name2": "lisi", "name3": "wangwu"}
dict1["name1"]
>>>
'zhangsan'

Python 內置了字典:dict 全稱 dictionary,在其他語言中也稱為 map,使用鍵-值(key-value)存儲,具有極快的查找速度。

集合

s = set([1, 2, 3])
print(s)
>>>
{1, 2, 3}

set 和 dict 類似,也是一組 key 的集合,但不存儲 value。由于 key 不能重復,所以,在 set 中,沒有重復的 key。

變量

變量的概念基本上和初中代數的方程變量是一致的,只是在計算機程序中,變量不僅可以是數字,還可以是任意數據類型。

a = 1
a = 3
print(a)
>>>
3

條件判斷

age = 30
if age >= 18:
    print('your age is', age)
    print('good')
else:
    Print('your are not belong here')
>>>
your age is 30
good

if ... else... 是非常經典的條件判斷語句,if 后面接條件表達式,如果成立,則執行下面的語句,否則執行 else 后面的語句。同時還要注意,Python 語言是采用代碼縮進的方式來判斷代碼塊的,一般是四個空格或者一個 tab,兩者不要混用。

循環語句

names = {"zhangsan", "lisi", "wangwu"}
for name in names:
    print(name)
>>>
lisi
zhangsan
wangwu

names 是一個集合,為可迭代對象,使用 for 循環,name 會依次被賦值給 names 中的元素值。

sum = 0
n = 99
while n > 0:
    sum = sum + n
    n = n - 2
print(sum)
>>>
2500

在循環內部變量 n 不斷自減,直到變為-1時,不再滿足 while 條件,循環退出。

高級特性

切片

L = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
print(L[1])
print(L[1:3])
>>>
lisi
['lisi', 'wangwu']

Python 中,下標都是從 0 開始的,且都是左閉右開區間

迭代

對于列表、元組和字典,都是可迭代對象,可以使用 for 來進行迭代取值

L = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
D = {"zhangsan":1, "lisi": 2, "wangwu": 3, "zhaoliu": 4}
for l in L:
    print(l)
print('\n')
for k,v in D.items():
    print("鍵:", k, ",", "值", v)
>>>
zhangsan
lisi
wangwu
zhaoliu

鍵: zhangsan , 值 1
鍵: lisi , 值 2
鍵: wangwu , 值 3
鍵: zhaoliu , 值 4

對于字典,使用 items(),可是同時遍歷鍵值對

函數

調用函數

Python 內置了很多有用的函數,我們可以直接調用

>>> abs(100)
100
>>> abs(-20)
20
>>> abs(12.34)
12.34
>>> max(1, 2)
2
>>> max(2, 3, 1, -5)
3

在調用函數時,如果傳入的參數有問題,程序會拋出異常。
這里包含了 Python 中所有的內置函數:
https://docs.python.org/zh-cn/3/library/functions.html

定義函數

在 Python 中,定義一個函數要使用 def 語句,依次寫出函數名、括號、括號中的參數和冒號:,然后,在縮進塊中編寫函數體,函數的返回值用 return 語句返回。

def add(num1, num2):
    return num1 + num2

result = add(1,2)
print(result)

>>>
3

在代碼中,定義了一個叫做 add 的函數,它會接收兩個參數,并且會返回他們之和。函數定義之后,可以使用函數名稱后面跟()來調用,如果函數有返回值,可以賦給一個變量來接收。

模塊

調用模塊

Python 本身就內置了很多非常有用的模塊,只要安裝完畢,這些模塊就可以立刻使用。

import time

def sayTime():
    now = time.time()
    return now

nowtime = sayTime()
print(nowtime)
>>>
1566550687.642805

使用 import 來導入模塊,之后就可以調用該模塊為我們提供的各種方法變量等。

模塊說白了就是一組工具的集合,我們當然可以自己編寫一些工具,然后組成自己的模塊,供后面編程使用。

我們自己編寫模塊,一般目錄結構如下

mytest
├─ __init__.py
├─ test1.py
└─ test2.py

現在我們就可以在其他的文件中引用并調用這兩個 test 工具文件了

import mytest

mytest.test1

你應該注意到了 init.py 文件,這個文件可以是空文件,包含了 init.py 文件的文件夾就是一個”包“(Package)。如果我們需要像上面那樣引用文件,就必須包含 init.py 文件。

安裝第三方模塊

在 Python 中,安裝第三方模塊,是通過包管理工具 pip 完成的。

一般來說,第三方庫都會在 Python 官方的 pypi.python.org 網站注冊,要安裝一個第三方庫,必須先知道該庫的名稱,可以在官網或者 pypi 上搜索,比如 Pillow 的名稱叫 Pillow,因此,安裝 Pillow 的命令就是:

pip install Pillow

面向對象編程

類和實例

面向對象最重要的概念就是類(Class)和實例(Instance),必須牢記類是抽象的模板,比如 Student 類,而實例是根據類創建出來的一個個具體的“對象”,每個對象都會擁有類所提供的方法,但各自的數據可能不同,也可能各自定義不同的方法。

在 Python 中,使用 class 關鍵字來定義類

class Student(object):
    pass

定義好類之后,就可以實例化該類了

zhangsan = Student()
zhangsan.age = 20
print(Student)
print(zhangsan)
print(zhangsan.age)
>>>
<class '__main__.Student'>
<__main__.Student object at 0x00EA7350>
20

此時,變量 zhangsan 就是類 Student 的一個實例了。同時我們還給 zhangsan 綁定了一個屬性 age 并賦值。

請謹記面向對象三大基本要素:抽象,封裝,繼承。如果你當前對這些還沒有太多的概念的話,也不要緊,你可以在后面的學習中慢慢體會。

IO 編程

讀取文件,是后面要經常用到的操作,在 Python 中,使用 open 函數可以非常方便的打開一個文件

f = open('/Users/tanxin/test.txt', 'r')
f.read()
f.close()

標示符 'r' 表示讀,這樣,我們就成功地打開了一個文件,然后使用 read 函數來讀取文件內容,最后用 close 來關閉文件。
文件使用完畢后必須關閉,因為文件對象會占用操作系統的資源,并且操作系統同一時間能打開的文件數量也是有限的

使用 with 來方便的打開文件

with open('/Users/tanxin/test.txt', 'r') as f:
    print(f.read())

with 語句幫助我們完成了 close 的過程

文件讀取還有 readline() 和 readlins() 兩個函數。readline() 一次讀取一行數據,readlines() 一次讀取所有內容并按行返回一個列表。

正則表達式

正則表達式是一個很大的學科,其中的內容是完全可以單獨寫滿一本書的,我們這里只做些簡單的介紹。

Python 中提供了 re 模塊來做正則

import re
str1 = "010-56765"
res = re.match(r'(\d{3})-(\d{5})', str1)
print(res)
print(res.group(0))
print(res.group(1))
print(res.group(2))
>>>
<re.Match object; span=(0, 9), match='010-56765'>
010-56765
010
56765

match() 方法判斷是否匹配,如果匹配成功,返回一個 Match 對象,否則返回 None
配合 group 方法,可以有效的提取出字字符串。

requests 庫簡介

requests 庫,是一個非常常用的 HTTP 網絡請求庫,后面的爬蟲課程,我們會大量的使用它。

import requests

r = requests.get('https://www.baidu.com')
r = requests.post('http://test.com/post', data = {'key':'value'})

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://test.com/get", params=payload)

此時的 r 是一個 response 對象,我們可以從中獲取到相關信息

r.text  # 獲取響應內容
r.content  # 以字節的方式讀取響應信息
response.encoding = "utf-8"  # 改變其編碼 
html = response.text  # 獲得網頁內容 
binary__content = response.content  # 獲得二進制數據 
raw = requests.get(url, stream=True)  # 獲得原始響應內容 
headers = {'user-agent': 'my-test/0.1.1'}  # 定制請求頭 
r = requests.get(url, headers=headers) 
cookies = {"cookie": "# your cookie"}  # cookie 的使用 
r = requests.get(url, cookies=cookies)

這里只是簡單介紹了 Python 的語法,如果要深入學習,你還需要花費更多的精力。不過世上無難事,只怕肯攀登。不要一直停留在入門的階段,平時多找些刷題的網站,比如 Leetcode,online Judge 等等,在刷題的同時,更能鍛煉自己的編程思維和算法能力。

總結

本節課我們知道 Python 作為數據分析領域最主流的語言,掌握它是必備的技能。同時還了解了 Python 的一些基本語法,相信你一定體會到了它的簡潔之處。下面就是練習,練習,再練習了。俗話說,熟能生巧,巧后達精。我們只有把 Python 這個工具完全掌握熟練,在進行數據分析的時候,就會事半功倍了。

Python基礎-你必備的語言技能包

練習題

第一題:定義一個函數,求解 1 到 99 之和,再以面向對象的思維,定義一個類,使得調用該類的方法來計算數字之和。

第二題:嘗試用 requests 庫獲取某個網站的響應信息

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠东县| 陆河县| 平陆县| 四平市| 涞源县| 抚顺县| 镇远县| 永泰县| 宜兰市| 景洪市| 平和县| 马公市| 如皋市| 常宁市| 西吉县| 北票市| 宁波市| 安陆市| 青铜峡市| 关岭| 平利县| 丰顺县| 巢湖市| 东阿县| 偏关县| 万宁市| 光泽县| 昌吉市| 五华县| 基隆市| 张家界市| 蒙城县| 青铜峡市| 吉首市| 兴仁县| 蒙阴县| 长武县| 榆树市| 淮滨县| 庆阳市| 长白|