python基础学习之Python 循环及函数

一、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)
相关推荐
自由生长20247 小时前
Python的条件编译-Type_Checking
python
mikejahn7 小时前
使用selenium从CNAS网站解析实验室信息
python·selenium·测试工具
小鸡脚来咯7 小时前
java web后端开发流程
java·开发语言·git
坐公交也用券7 小时前
适用于vue3+pnpm项目自动化类型检查及构建的Python脚本
开发语言·javascript·python·typescript·自动化
weixin_409383127 小时前
a星学习记录 通过父节点从目的地格子坐标回溯起点
学习·cocos·a星
搞机械的假程序猿7 小时前
普中51单片机学习笔记-DS1302实时时钟芯片
笔记·学习·51单片机
应用市场7 小时前
汽车CAN总线隔离设计与故障诊断:从原理到代码实战
开发语言·汽车·无人机
我爱烤冷面7 小时前
kotlin项目实现Java doc的方案:使用Dokka
java·开发语言·kotlin·dokka
车载测试工程师7 小时前
CAPL学习-SOME/IP交互层-值处理类函数2
学习·tcp/ip·以太网·capl·canoe