发现了一个宝藏网站:Learn X in Y Minutes,由这个学习了Python,推荐给大家,下面是我跟着敲得代码及翻译还有自己加的一些注释。原网址:https://learnxinyminutes.com/docs/python3/
我用的是jupyter notebook写的,将这个直接保存成了.py文件复制的,输出结果好像没有复制上来。第一次简书比较生疏,望见谅,有问题可留言。
注:#:后面是注释
ln[x]:代表cell,即一个jupyter notebook的一个cell。
####################################################
## 3. 控制流和迭代器
####################################################
# In[3]:
some_var =5
# python通过缩进来对代码进行分段(连续同缩进量的代码可以看作在一个大括号里,空行、注释行自动忽略)
# 一个缩进应该是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循环,持续迭代直到不满足判断条件
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,可以同时执行
pass
# else可选,如果try的代码块没有问题,则执行
else:
print("All good!")
# finally可选,不管有没有问题,都会执行finally中的代码块
finally:
print("We can clean up resources here")
# In[10]:
# 通常open(fileName)之后,需要调用close方法来释放内存
# 为了避免代码出错,产生内存垃圾,需要
# try:
# open
# finally:
# close
# 也可以通过with open() as name:来进行声明,该声明块结束后会自动close
with open("myfile.txt")as f:
for linein f:
print(line)
# In[11]:
# Python提供一种基础抽象方法叫做Iterable(可迭代的)
# 一个iterable对象,可以被当作sequence对待
# range函数返回的对象其实就是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循环中
for iin our_iterable:
print(i)
# In[13]:
# 但是无法通过index取出其中的数值
# 会报错
our_iterable[0]
# In[15]:
# iterable对象可以通过iter方法生成迭代器
our_iterator =iter(our_iterable)
# In[16]:
our_iterator
# In[17]:
# 迭代器可以在遍历过程中记录当前状态(位置)
# 我们可以通过next函数取出迭代器中的下一个item
next(our_iterator)# => "one"
# In[19]:
# 当前迭代的位置会被存储下来
next(our_iterator)# => "two"
next(our_iterator)# => "three"
# In[20]:
# 超出迭代范围,就报错
next(our_iterator)
# In[21]:
# 通过list方法把iterable转化为list,就可以访问所有对象了
list(filled_dict.keys())# => Returns ["one", "two", "three"]