Learn Python in Y Minutes:控制流和迭代器

發(fā)現(xiàn)了一個寶藏網(wǎng)站:Learn X in Y Minutes,由這個學習了Python,推薦給大家,下面是我跟著敲得代碼及翻譯還有自己加的一些注釋。原網(wǎng)址:https://learnxinyminutes.com/docs/python3/

我用的是jupyter notebook寫的,將這個直接保存成了.py文件復制的,輸出結(jié)果好像沒有復制上來。第一次簡書比較生疏,望見諒,有問題可留言。

注:#:后面是注釋

? ? ? ? ln[x]:代表cell,即一個jupyter notebook的一個cell。

####################################################

## 3. 控制流和迭代器

####################################################

# In[3]:

some_var =5

# python通過縮進來對代碼進行分段(連續(xù)同縮進量的代碼可以看作在一個大括號里,空行、注釋行自動忽略)

# 一個縮進應該是4個空格,不是制表符

if some_var >10:

print("some_var is totally bigger than 10.")

elif some_var <10:# 可選

? ? print("some_var is smaller than 10.")

else:# 可選

? ? print("some_var is indeed 10.")

# In[4]:

# for item in list

# 迭代取出list中的所有item進行計算

for animalin ["dog", "cat", "mouse"]:

# You can use format() to interpolate formatted strings

? ? print("{} is a mammal".format(animal))

# In[5]:

# range(n)方法返回一個list,[0,1,2,...,n-1]

for iin range(4):

print(i)

# In[6]:

#range(start,end)返回一個list,[start,start+1,…,end-1]

for iin range(4, 8):

print(i)

# In[7]:

# range(start,end,step)返回一個list,[start, start+step, ..., (直到>=end)]

for iin range(4, 8, 2):

print(i)

# In[8]:

# while循環(huán),持續(xù)迭代直到不滿足判斷條件

x =0

while x <4:

print(x)

x +=1? # Shorthand for x = x + 1

# In[9]:

# 可以通過try except來處理異常(避免報錯直接退出)

try:

# raise方法,可以手動報錯

? ? raise IndexError("This is an index error")

except IndexError as e:

# pass保留字代表這一行啥不也干

? ? pass

except (TypeError, NameError):

# 如果有多個except,可以同時執(zhí)行

? ? pass

# else可選,如果try的代碼塊沒有問題,則執(zhí)行

else:

print("All good!")

# finally可選,不管有沒有問題,都會執(zhí)行finally中的代碼塊

finally:

print("We can clean up resources here")

# In[10]:

# 通常open(fileName)之后,需要調(diào)用close方法來釋放內(nèi)存

# 為了避免代碼出錯,產(chǎn)生內(nèi)存垃圾,需要

# try:

#? ? open

# finally:

#? ? close

# 也可以通過with open() as name:來進行聲明,該聲明塊結(jié)束后會自動close

with open("myfile.txt")as f:

for linein f:

print(line)

# In[11]:

# Python提供一種基礎抽象方法叫做Iterable(可迭代的)

# 一個iterable對象,可以被當作sequence對待

# range函數(shù)返回的對象其實就是iterable

filled_dict = {"one":1, "two":2, "three":3}

our_iterable = filled_dict.keys()

print(our_iterable)# => dict_keys(['one', 'two', 'three']). This is an object that implements our Iterable interface.

# In[12]:

# iterable 可迭代,比如放到for循環(huán)中

for iin our_iterable:

print(i)

# In[13]:

# 但是無法通過index取出其中的數(shù)值

# 會報錯

our_iterable[0]

# In[15]:

# iterable對象可以通過iter方法生成迭代器

our_iterator =iter(our_iterable)

# In[16]:

our_iterator

# In[17]:

# 迭代器可以在遍歷過程中記錄當前狀態(tài)(位置)

# 我們可以通過next函數(shù)取出迭代器中的下一個item

next(our_iterator)# => "one"

# In[19]:

# 當前迭代的位置會被存儲下來

next(our_iterator)# => "two"

next(our_iterator)# => "three"

# In[20]:

# 超出迭代范圍,就報錯

next(our_iterator)

# In[21]:

# 通過list方法把iterable轉(zhuǎn)化為list,就可以訪問所有對象了

list(filled_dict.keys())# => Returns ["one", "two", "three"]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,847評論 0 10
  • PYTHON-進階-ITERTOOLS模塊小結(jié)轉(zhuǎn)自wklken:http://wklken.me/posts/20...
    C_Y_閱讀 1,167評論 0 2
  • 函數(shù)調(diào)用 Built-in Functions abs(x) Return the absolute value ...
    叫我七夜閱讀 1,310評論 0 0
  • 你的悲觀讓我不能接受 再勇敢一點 還是不夠 囗中的啤酒就象凜冽的寒流 一起喝下 各自上頭 繼續(xù)走吧,別回頭一起向前...
    老莊夢談閱讀 339評論 0 1
  • 在西方國家,人們見面會有兩種打招呼的方式。一種是,見到你我很高興,這是在表達自己;另一種是你今天看起來氣色好好啊,...
    最美_時光閱讀 248評論 1 4

友情鏈接更多精彩內(nèi)容