發(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"]