自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從Zero到Hero ,一文掌握Python

開發(fā) 后端
對于我來說,學(xué)習(xí) Python 的首要原因是,Python是一種可以優(yōu)雅編程的語言。它能夠簡單自然地寫出代碼和實現(xiàn)我的想法。

***個問題,什么是 Python ?根據(jù) Python 之父 Guido van Rossum 的話,Python 是:

一種高級程序語言,其核心設(shè)計哲學(xué)是代碼可讀性和語法,能夠讓程序員用很少的代碼來表達自己的想法。

對于我來說,學(xué)習(xí) Python 的首要原因是,Python 是一種可以優(yōu)雅編程的語言。它能夠簡單自然地寫出代碼和實現(xiàn)我的想法。

另一個原因是我們可以將 Python 用在很多地方:數(shù)據(jù)科學(xué)、Web 開發(fā)和機器學(xué)習(xí)等都可以使用 Python 來開發(fā)。Quora、Pinterest 和 Spotify 都使用 Python 來進行他們的后端 Web 開發(fā)。那么讓我們來學(xué)習(xí)一下 Python 吧。

從Zero到Hero,一文掌握Python

Python 基礎(chǔ)

1.變量

你可以把變量想象成一個用來存儲值的單詞。我們看個例子。

Python 中定義一個變量并為它賦值是很容易的。假如你想存儲數(shù)字 1 到變量 “one” ,讓我們試試看:

  1. one = 1 

超級簡單吧?你只需要把值 1 分配給變量 “one” 。

 

  1. two = 2 
  2. some_number = 10000 

只要你想,你可以把任意的 值 賦給任何其他的 變量 。正如你從上面看到的那樣,變量 “ two ” 存儲整型變量 2 , 變量 “ some_number ” 存儲 10000 。

除了整型,我們還可以使用布爾值(True/Flase)、字符串、浮點型和其他數(shù)據(jù)類型。

  1. # booleanstrue_boolean = Truefalse_boolean = False# stringmy_name = "Leandro Tk"# floatbook_price = 15.80 

2.控制流程:條件語句

“ If ” 使用一個表達式來判斷一個語句是 True 還是 False ,如果是 True ,那么執(zhí)行 if 內(nèi)的代碼,例子如下:

 

  1. if True
  2.   print("Hello Python If")if 2 > 1: 
  3.   print("2 is greater than 1"

2 比 1 大,所以 print 代碼被執(zhí)行。

當(dāng)“ if ”里面的表達式是 false 時,“ else ” 語句將會執(zhí)行。

 

  1. if 1 > 2: 
  2.   print("1 is greater than 2")else
  3.   print("1 is not greater than 2"

1 比 2 小,所以 “ else ” 里面的代碼會執(zhí)行。

你也可以使用 “ elif ” 語句:

 

  1. if 1 > 2: 
  2.   print("1 is greater than 2")elif 2 > 1: 
  3.   print("1 is not greater than 2")else
  4.   print("1 is equal to 2"

3. 循環(huán)和迭代

在 Python 中,我們可以用不同的形式進行迭代。我會說下 while 和 for。

While 循環(huán):當(dāng)語句是 True 時,while 內(nèi)部的代碼塊會執(zhí)行。所以下面這段代碼會打印出 1 到 10 。

 

  1. num = 1while num <= 10: 
  2.     print(num) 
  3.     num += 1 

while 循環(huán)需要 循環(huán)條件 ,如果條件一直是 True ,它將會一直迭代,當(dāng) num 的值為 11 時,循環(huán)條件為 false 。

另一段代碼可以幫你更好的理解 while 語句的用法:

 

  1. loop_condition = Truewhile loop_condition: 
  2.     print("Loop Condition keeps: %s" %(loop_condition)) 
  3.     loop_condition = False 

循環(huán)條件是 True 所以會一直迭代,直到為 False 。

For 循環(huán):你可以在代碼塊上應(yīng)用變量 “ num ” ,而 “for” 語句將為你迭代它。此代碼將打印與 while 中相同的代碼:從 1 到 10 。

 

  1. for i in range(1, 11): 
  2.   print(i) 

瞧見沒?這太簡單了。i 的范圍從 1 開始一直到第 11 個元素(10是第十個元素)

List:集合 | 數(shù)組 | 數(shù)據(jù)結(jié)構(gòu)

假如你想要在一個變量里存儲整數(shù) 1 ,但是你也要存儲 2 和 3 , 4 , 5 ...

不是用成百上千個變量,我有別的方法存儲這些我想要存儲的整數(shù)嗎?你已經(jīng)猜到了,確實有別的存儲它們的方法。

列表是一個集合,它能夠存儲一列值(就像你想要存儲的這些),那么讓我們來用一下它:

  1. my_integers = [1, 2, 3, 4, 5] 

這真的很簡單。我們創(chuàng)建了一個叫做 my_integer 的數(shù)組并且把數(shù)據(jù)存到了里面。

也許你會問:“我要怎樣獲取數(shù)組里的值?”

問的好。列表有一個叫做索引的概念。***個元素的下表是索引0(0)。第二個的索引是1,以此類推,你應(yīng)該明白的。

為了使它更加簡潔,我們可以用它的索引代表數(shù)組元素。我畫了出來:

 

從Zero到Hero,一文掌握Python

用 Python 的語法,也很好去理解:

 

  1. my_integers = [5, 7, 1, 3, 4]  
  2. print(my_integers[0]) # 5print(my_integers[1]) # 7print(my_integers[4]) # 4 

假如你不想存整數(shù)。你只想去存一些字符串,像你親戚名字的列表。我的看起來是類似這樣的:

 

  1. relatives_names = [  "Toshiaki",  "Juliana",  "Yuji",  "Bruno",  "Kaio" 
  2. print(relatives_names[4]) # Kaio 

它的原理跟存整數(shù)一樣,很友好。

我們只學(xué)習(xí)了列表的索引是如何工作的,我還需要告訴你如何向列表的數(shù)據(jù)結(jié)構(gòu)中添加一個元素(向列表中添加一個項目)。

最常用的向列表中添加新數(shù)據(jù)的方法是拼接。我們來看一下它是如何使用的:

 

  1. bookshelf = [] 
  2. bookshelf.append("The Effective Engineer"
  3. bookshelf.append("The 4 Hour Work Week"
  4. print(bookshelf[0]) # The Effective Engineerprint(bookshelf[1]) # The 4 Hour Work W 

拼接超級簡單,你僅需要把一個元素(比如“有效的機器”)作為拼接參數(shù)。

好了,關(guān)于列表的知識這些就夠了,讓我們來看一下其它的數(shù)據(jù)結(jié)構(gòu)。

字典:Key-Value 數(shù)據(jù)結(jié)構(gòu)

現(xiàn)在我們知道 List 是有索引的整型數(shù)字集合。但如果我們不像使用整型數(shù)字作為索引呢?我們可以用其他的一些數(shù)據(jù)結(jié)構(gòu),比如數(shù)字、字符串或者其他類型的索引。

讓我們學(xué)習(xí)下字典這種數(shù)據(jù)結(jié)構(gòu)。字典是一個鍵值對的集合。字典差不多長這樣:

 

  1. dictionary_example = { 
  2.   "key1""value1"
  3.   "key2""value2"
  4.   "key3""value3" 

Key 是指向 value 的索引。我們?nèi)绾卧L問字典中的 value 呢?你應(yīng)該猜到了,那就是使用 key 。 我們試一下:

 

  1. dictionary_tk = { 
  2.   "name""Leandro"
  3.   "nickname""Tk"
  4.   "nationality""Brazilian" 
  5.  
  6. print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro 
  7. print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk 
  8. print("And by the way I'm %s" %(dictionary_tk["nationality"])) # And by the way I'm Brazilian 

我們有個 key (age) value (24),使用字符串作為 key 整型作為 value 。

我創(chuàng)建了一個關(guān)于我的字典,其中包含我的名字、昵稱和國籍。這些屬性是字典中的 key 。

就像我們學(xué)過的使用索引訪問 list 一樣,我們同樣使用索引(在字典中 key 就是索引)來訪問存儲在字典中的 value 。

正如我們使用 list 那樣,讓我們學(xué)習(xí)下如何向字典中添加元素。字典中主要是指向 value 的 key 。當(dāng)我們添加元素的時候同樣如此:

 

  1. dictionary_tk = { 
  2.   "name""Leandro"
  3.   "nickname""Tk"
  4.   "nationality""Brazilian"
  5.   "age": 24 
  6.  
  7. print("My name is %s" %(dictionary_tk["name"])) # My name is Leandro 
  8. print("But you can call me %s" %(dictionary_tk["nickname"])) # But you can call me Tk 
  9. print("And by the way I'm %i and %s" %(dictionary_tk["age"], dictionary_tk["nationality"])) # And by the way I'm Brazilian 

我們只需要將一個字典中的一個 key 指向一個 value 。沒什么難的,對吧?

迭代:通過數(shù)據(jù)結(jié)構(gòu)進行循環(huán)

跟我們在 Python 基礎(chǔ)中學(xué)習(xí)的一樣,List 迭代十分簡單。我們 Python 開發(fā)者通常使用 For 循環(huán)。我們試試看:

 

  1. bookshelf = [ 
  2.   "The Effective Engineer"
  3.   "The 4 hours work week"
  4.   "Zero to One"
  5.   "Lean Startup"
  6.   "Hooked" 
  7.  
  8. for book in bookshelf: 
  9.     print(book) 

對于在書架上的每本書,我們打印( 可以做任何操作 )到控制臺上。超級簡單和直觀吧。這就是 Python 的美妙之處。

對于哈希數(shù)據(jù)結(jié)構(gòu),我們同樣可以使用 for 循環(huán),不過我們需要使用 key 來進行:

 

  1. dictionary = { "some_key""some_value" } 
  2. for key in dictionary: 
  3.     print("%s --> %s" %(key, dictionary[key])) # some_key --> some_value 

上面是如何在字典中使用 For 循環(huán)的例子。對于字典中的每個 key ,我們打印出 key 和 key 所對應(yīng)的 value 。

另一種方式是使用 iteritems 方法。

 

  1. dictionary = { "some_key""some_value" } 
  2. for key, value in dictionary.items(): 
  3.     print("%s --> %s" %(key, value))# some_key --> some_value 

我們命名兩個參數(shù)為 key 和 value ,但是這不是必要的。我們可以隨意命名。我們看下:

 

  1. dictionary_tk = { 
  2.   "name""Leandro"
  3.   "nickname""Tk"
  4.   "nationality""Brazilian"
  5.   "age": 24 
  6.  
  7. for attribute, value in dictionary_tk.items(): 
  8.     print("My %s is %s" %(attribute, value)) 
  9.      
  10. # My name is Leandro 
  11. # My nickname is Tk 
  12. # My nationality is Brazilian 
  13. # My age is 24 

可以看到我們使用了 attribute 作為字典中 key 的參數(shù),這與使用 key 命名具有同樣的效果。真是太棒了!

類&對象

一些理論:

  • 對象是對現(xiàn)實世界實體的表示,如汽車、狗或自行車。 這些對象有兩個共同的主要特征: 數(shù)據(jù) 和 行為 。
  • 汽車有 數(shù)據(jù) ,如車輪的數(shù)量,車門的數(shù)量和座位的空間,并且它們可以表現(xiàn)出其行為:它們可以加速,停止,顯示剩余多少燃料,以及許多其他的事情。

我們將 數(shù)據(jù) 看作是面向?qū)ο缶幊讨械膶傩院托袨椤?又表示為:

  • 數(shù)據(jù)→ 屬性和行為 → 方法

而 類 是創(chuàng)建單個對象的藍圖。 在現(xiàn)實世界中,我們經(jīng)常發(fā)現(xiàn)許多相同類型的對象。 比如說汽車。 所有的汽車都有相同的構(gòu)造和模型(都有一個引擎,輪子,門等)。每輛車都是由同一套藍圖構(gòu)造成的,并具有相同的組件。

Python 面向?qū)ο缶幊棠J剑篛N

Python,作為一種面向?qū)ο缶幊陶Z言,存在這樣的概念: 類 和 對象 。

一個類是一個藍圖,是對象的模型。

那么,一個類是一個模型,或者是一種定義 屬性 和 行為 的方法(正如我們在理論部分討論的那樣)。舉例來說,一個車輛 類 有它自己的 屬性 來定義這個 對象 是個什么樣的車輛。一輛車的屬性有輪子數(shù)量,能源類型,座位容量和***時速這些。

考慮到這一點,讓我們來看看 Python 的 類 的語法:

 

  1. class Vehicle: 
  2.     pass 

上邊的代碼,我們使用 class 語句 來定義一個類。是不是很容易?

對象是一個 類 的實例化,我們可以通過類名來進行實例化。

 

  1. car = Vehicle() 
  2. print(car) # <__main__.Vehicle instance at 0x7fb1de6c2638> 

在這里,car 是類 Vehicle 的對象(或者實例化)。

記得車輛 類 有四個 屬性 :輪子的數(shù)量,油箱類型,座位容量和***時速。當(dāng)我們新建一個車輛 對象 時要設(shè)置所有的 屬性 。所以在這里,我們定義一個 類 在它初始化的時候接受參數(shù):

 

  1. class Vehicle: 
  2.     def __init__(self, number_of_wheels, type_of_tank, seating_capacity, maximum_velocity): 
  3.         self.number_of_wheels = number_of_wheels 
  4.         self.type_of_tank = type_of_tank 
  5.         self.seating_capacity = seating_capacity 
  6.         self.maximum_velocity = maximum_velocity 

這個 init 方法 。我們稱之為構(gòu)造函數(shù)。因此當(dāng)我們在創(chuàng)建一個車輛 對象 時,可以定義這些 屬性 。想象一下,我們喜歡 Tesla Model S ,所以我們想創(chuàng)建一個這種類型的 對象。 它有四個輪子,使用電能源,五座并且***時時速是250千米(155英里)。我們開始創(chuàng)建這樣一個 對象 :

  1. tesla_model_s = Vehicle(4, 'electric', 5, 250) 

四輪+電能源+五座+***時速250千米。

責(zé)任編輯:未麗燕 來源: 開源中國翻譯文章
相關(guān)推薦

2017-10-18 17:16:59

ZeroHeroPython

2018-11-14 10:28:38

AI數(shù)據(jù)科技

2025-02-27 08:05:47

2022-12-20 07:39:46

2023-12-21 17:11:21

Containerd管理工具命令行

2022-10-21 17:24:34

契約測試定位

2024-11-19 09:00:00

Pythondatetime模塊

2021-05-12 18:22:36

Linux 內(nèi)存管理

2023-10-24 11:44:21

2023-12-15 09:45:21

阻塞接口

2020-10-09 07:56:52

Linux

2025-04-07 05:01:00

MCP上下文協(xié)議LLM?

2019-06-23 15:21:42

Google谷歌平板

2023-10-26 08:25:39

KubernetesKubeadm

2025-04-03 08:30:00

Python數(shù)據(jù)庫ORM

2023-10-21 20:50:00

Python項目PyCharm

2020-12-18 11:54:22

Linux系統(tǒng)架構(gòu)

2021-02-22 09:05:59

Linux字符設(shè)備架構(gòu)

2021-06-04 09:35:05

Linux字符設(shè)備架構(gòu)

2023-03-10 07:57:26

點贊
收藏

51CTO技術(shù)棧公眾號