一、Python while 循环
Python 循环
Python 有两个原始的循环命令:
for 循环
while 循环
1. while 循环
如果使用 while 循环,只要条件为真,我们就可以执行一组语句。
实例
只要 i 小于 7,打印 i:
python
i = 1
while i < 7:
print(i)
i += 1
注释:请记得递增 i,否则循环会永远继续。
while 循环需要准备好相关的变量。在这个实例中,我们需要定义一个索引变量 i,我们将其设置为 1。
2. break 语句
如果使用 break 语句,即使 while 条件为真,我们也可以停止循环:
实例
在 i 等于 3 时退出循环:
python
i = 1
while i < 7:
print(i)
if i == 3:
break
i += 1
3. continue 语句
如果使用 continue 语句,我们可以停止当前的迭代,并继续下一个:
实例
如果 i 等于 3,则继续下一个迭代:
python
i = 0
while i < 7:
i += 1
if i == 3:
continue
print(i)
4. else 语句
通过使用 else 语句,当条件不再成立时,我们可以运行一次代码块:
实例
条件为假时打印一条消息:
python
i = 1
while i < 6:
print(i)
i += 1
else:
print("i is no longer less than 6")
二、Python For 循环
1. for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。
这与其他编程语言中的 for 关键字不太相似,而是更像其他面向对象编程语言中的迭代器方法。
通过使用 for 循环,我们可以为列表、元组、集合中的每个项目等执行一组语句。
实例
打印 fruits 列表中的每种水果:
python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
提示:for 循环不需要预先设置索引变量。
循环遍历字符串
甚至连字符串都是可迭代的对象,它们包含一系列的字符:
实例
循环遍历单词 "banana" 中的字母:
python
for x in "banana":
print(x)
2. break 语句
通过使用 break 语句,我们可以在循环遍历所有项目之前停止循环:
实例
如果 x 是 "banana",则退出循环:
python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
实例
当 x 为 "banana" 时退出循环,但这次在打印之前中断:
python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
3. continue 语句
通过使用 continue 语句,我们可以停止循环的当前迭代,并继续下一个:
实例
不打印香蕉:
python
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
4. range() 函数
如需循环一组代码指定的次数,我们可以使用 range() 函数,
range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。
实例
使用 range() 函数:
python
for x in range(10):
print(x)
注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。
range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(3, 10),这意味着值为 3 到 10(但不包括 10):
实例
使用起始参数:
python
for x in range(3, 10):
print(x)
range() 函数默认将序列递增 1,但是可以通过添加第三个参数来指定增量值:range(2, 30, 3):
实例
使用 3 递增序列(默认值为 1):
python
for x in range(3, 50, 6):
print(x)
5. For 循环中的 Else
for 循环中的 else 关键字指定循环结束时要执行的代码块:
实例
打印 0 到 9 的所有数字,并在循环结束时打印一条消息:
python
for x in range(10):
print(x)
else:
print("Finally finished!")
6. 嵌套循环
嵌套循环是循环内的循环。
"外循环"每迭代一次,"内循环"将执行一次:
实例
打印每个水果的每个形容词:
python
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x,y)
7. pass 语句
for 语句不能为空,但是如果您处于某种原因写了无内容的 for 语句,请使用 pass 语句来避免错误。
实例
python
for x in [0, 1, 2]:
pass
三、Python 函数
函数是一种仅在调用时运行的代码块。
您可以将数据(称为参数)传递到函数中。
函数可以把数据作为结果返回。
1. 创建函数
在 Python 中,使用 def 关键字定义函数:
python
def my_function():
print("Hello from a function")
参数
信息可以作为参数传递给函数。
参数在函数名后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可。
下面的例子有一个带参数(fname)的函数。当调用此函数时,我们传递一个名字,在函数内部使用它来打印全名:
python
def my_function(fname):
print(fname + " Gates")
my_function("Bill")
my_function("Steve")
my_function("Elon")
2. 默认参数值
下面的例子展示如何使用默认参数值。
如果我们调用了不带参数的函数,则使用默认值:
python
def my_function(country = "China"):
print("I am from " + country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
3. 以 List 传参
您发送到函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。
例如,如果您将 List 作为参数发送,它到达函数时仍将是 List(列表):
python
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
4. 返回值
如需使函数返回值,请使用 return 语句:
python
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
5. 关键字参数
您还可以使用 key = value 语法发送参数。
参数的顺序无关紧要。
python
def my_function(child3, child2, child1):
print("The youngest child is " + child3)
my_function(child1 = "Phoebe", child2 = "Jennifer", child3 = "Rory")
在 Python 文档中,"关键字参数"一词通常简称为 kwargs。
6. 任意参数
如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加" * "。
这样,函数将接收一个参数元组,并可以相应地访问各项:
实例
如果参数数目未知,请在参数名称前添加 *:
python
def my_function(*kids):
print("The youngest child is " + kids[2])
my_function("Phoebe", "Jennifer", "Rory")
7. pass 语句
函数定义不能为空,但是如果您出于某种原因写了无内容的函数定义,请使用 pass 语句来避免错误。
python
def myfunction:
pass
递归
Python 也接受函数递归,这意味着定义的函数能够调用自身。
递归是一种常见的数学和编程概念。它意味着函数调用自身。这样做的好处是可以循环访问数据以达成结果。
开发人员应该非常小心递归,因为它可以很容易地编写一个永不终止的,或者使用过量内存或处理器能力的函数。但是,在被正确编写后,递归可能是一种非常有效且数学上优雅的编程方法。
在这个例子中,tri_recursion() 是我们定义为调用自身 ("recurse") 的函数。我们使用 k 变量作为数据,每次递归时递减(-1)。当条件不大于 0 时(比如当它为 0 时),递归结束。
对于新的开发人员来说,可能需要一些时间来搞清楚其工作原理,最好的方法是测试并修改它。
实例
递归的例子:
python
def tri_recursion(k):
if(k>0):
result = k+tri_recursion(k-1)
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6)
tri_recursion(6)
→ 6 + tri_recursion(5)
→ 5 + tri_recursion(4)
→ 4 + tri_recursion(3)
→ 3 + tri_recursion(2)
→ 2 + tri_recursion(1)
→ 1 + tri_recursion(0)
→ 0 (返回 0)
→ 1 + 0 = 1 (打印 1)
→ 2 + 1 = 3 (打印 3)
→ 3 + 3 = 6 (打印 6)
→ 4 + 6 = 10 (打印 10)
→ 5 + 10 = 15 (打印 15)
→ 6 + 15 = 21 (打印 21)