news 2026/6/23 22:40:00

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python基础学习之Python 循环及函数

一、Python while 循环

Python 循环

Python 有两个原始的循环命令:
for 循环
while 循环

1. while 循环

如果使用 while 循环,只要条件为真,我们就可以执行一组语句。

实例
只要 i 小于 7,打印 i:

i=1whilei<7:print(i)i+=1

注释:请记得递增 i,否则循环会永远继续。

while 循环需要准备好相关的变量。在这个实例中,我们需要定义一个索引变量 i,我们将其设置为 1。

2. break 语句

如果使用 break 语句,即使 while 条件为真,我们也可以停止循环:

实例
在 i 等于 3 时退出循环:

i=1whilei<7:print(i)ifi==3:breaki+=1

3. continue 语句

如果使用 continue 语句,我们可以停止当前的迭代,并继续下一个:

实例
如果 i 等于 3,则继续下一个迭代:

i=0whilei<7:i+=1ifi==3:continueprint(i)

4. else 语句

通过使用 else 语句,当条件不再成立时,我们可以运行一次代码块:

实例
条件为假时打印一条消息:

i=1whilei<6:print(i)i+=1else:print("i is no longer less than 6")

二、Python For 循环

1. for 循环用于迭代序列(即列表,元组,字典,集合或字符串)。

这与其他编程语言中的 for 关键字不太相似,而是更像其他面向对象编程语言中的迭代器方法。

通过使用 for 循环,我们可以为列表、元组、集合中的每个项目等执行一组语句。

实例
打印 fruits 列表中的每种水果:

fruits=["apple","banana","cherry"]forxinfruits:print(x)

提示:for 循环不需要预先设置索引变量。

循环遍历字符串
甚至连字符串都是可迭代的对象,它们包含一系列的字符:

实例
循环遍历单词 “banana” 中的字母:

forxin"banana":print(x)

2. break 语句

通过使用 break 语句,我们可以在循环遍历所有项目之前停止循环:

实例
如果 x 是 “banana”,则退出循环:

fruits=["apple","banana","cherry"]forxinfruits:print(x)ifx=="banana":break

实例
当 x 为 “banana” 时退出循环,但这次在打印之前中断:

fruits=["apple","banana","cherry"]forxinfruits:ifx=="banana":breakprint(x)

3. continue 语句

通过使用 continue 语句,我们可以停止循环的当前迭代,并继续下一个:

实例
不打印香蕉:

fruits=["apple","banana","cherry"]forxinfruits:ifx=="banana":continueprint(x)

4. range() 函数

如需循环一组代码指定的次数,我们可以使用 range() 函数,

range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。

实例
使用 range() 函数:

forxinrange(10):print(x)

注意:range(10) 不是 0 到 10 的值,而是值 0 到 9。

range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(3, 10),这意味着值为 3 到 10(但不包括 10):

实例
使用起始参数:

forxinrange(3,10):print(x)

range() 函数默认将序列递增 1,但是可以通过添加第三个参数来指定增量值:range(2, 30, 3):

实例
使用 3 递增序列(默认值为 1):

forxinrange(3,50,6):print(x)

5. For 循环中的 Else

for 循环中的 else 关键字指定循环结束时要执行的代码块:

实例
打印 0 到 9 的所有数字,并在循环结束时打印一条消息:

forxinrange(10):print(x)else:print("Finally finished!")

6. 嵌套循环

嵌套循环是循环内的循环。

“外循环”每迭代一次,“内循环”将执行一次:

实例
打印每个水果的每个形容词:

adj=["red","big","tasty"]fruits=["apple","banana","cherry"]forxinadj:foryinfruits:print(x,y)

7. pass 语句

for 语句不能为空,但是如果您处于某种原因写了无内容的 for 语句,请使用 pass 语句来避免错误。

实例

forxin[0,1,2]:pass

三、Python 函数

函数是一种仅在调用时运行的代码块。

您可以将数据(称为参数)传递到函数中。

函数可以把数据作为结果返回。

1. 创建函数

在 Python 中,使用 def 关键字定义函数:

defmy_function():print("Hello from a function")

参数
信息可以作为参数传递给函数。

参数在函数名后的括号内指定。您可以根据需要添加任意数量的参数,只需用逗号分隔即可。

下面的例子有一个带参数(fname)的函数。当调用此函数时,我们传递一个名字,在函数内部使用它来打印全名:

defmy_function(fname):print(fname+" Gates")my_function("Bill")my_function("Steve")my_function("Elon")

2.默认参数值

下面的例子展示如何使用默认参数值。

如果我们调用了不带参数的函数,则使用默认值:

defmy_function(country="China"):print("I am from "+country)my_function("Sweden")my_function("India")my_function()my_function("Brazil")

3. 以 List 传参

您发送到函数的参数可以是任何数据类型(字符串、数字、列表、字典等),并且在函数内其将被视为相同数据类型。

例如,如果您将 List 作为参数发送,它到达函数时仍将是 List(列表):

defmy_function(food):forxinfood:print(x)fruits=["apple","banana","cherry"]my_function(fruits)

4. 返回值

如需使函数返回值,请使用 return 语句:

defmy_function(x):return5*xprint(my_function(3))print(my_function(5))print(my_function(9))

5. 关键字参数

您还可以使用 key = value 语法发送参数。

参数的顺序无关紧要。

defmy_function(child3,child2,child1):print("The youngest child is "+child3)my_function(child1="Phoebe",child2="Jennifer",child3="Rory")

在 Python 文档中,“关键字参数”一词通常简称为 kwargs。

6. 任意参数

如果您不知道将传递给您的函数多少个参数,请在函数定义的参数名称前添加" * "。

这样,函数将接收一个参数元组,并可以相应地访问各项:

实例
如果参数数目未知,请在参数名称前添加 *:

defmy_function(*kids):print("The youngest child is "+kids[2])my_function("Phoebe","Jennifer","Rory")

7. pass 语句

函数定义不能为空,但是如果您出于某种原因写了无内容的函数定义,请使用 pass 语句来避免错误。

defmyfunction:pass

递归
Python 也接受函数递归,这意味着定义的函数能够调用自身。

递归是一种常见的数学和编程概念。它意味着函数调用自身。这样做的好处是可以循环访问数据以达成结果。

开发人员应该非常小心递归,因为它可以很容易地编写一个永不终止的,或者使用过量内存或处理器能力的函数。但是,在被正确编写后,递归可能是一种非常有效且数学上优雅的编程方法。

在这个例子中,tri_recursion() 是我们定义为调用自身 (“recurse”) 的函数。我们使用 k 变量作为数据,每次递归时递减(-1)。当条件不大于 0 时(比如当它为 0 时),递归结束。

对于新的开发人员来说,可能需要一些时间来搞清楚其工作原理,最好的方法是测试并修改它。

实例
递归的例子:

deftri_recursion(k):if(k>0):result=k+tri_recursion(k-1)print(result)else:result=0returnresultprint("\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)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 16:46:18

魔盒项目开发纪实:移动端应用开发

继续移动端项目框架搭建&#xff0c;购买的材料预计今天可以送货&#xff0c;到货后搭建一个demo进行测试&#xff0c;之后进行电路图绘制和3d建模做盒子造型。 项目概述 MagicBox 是一个基于 Flutter 开发的跨平台移动端应用&#xff0c;用于管理智能设备的发现、配置和控制…

作者头像 李华
网站建设 2026/6/23 16:44:39

鸿蒙ArkTS与Vue3状态管理对比

在鸿蒙&#xff08;HarmonyOS&#xff09;ArkTS开发中&#xff0c;状态管理装饰器与Vue 3的响应式系统设计理念相似&#xff0c;但实现和语法存在显著差异。以下从核心机制、语法和功能维度进行专业对比&#xff1a;1. 核心机制对比特性鸿蒙 ArkTSVue 3响应式基础State、Prop 等…

作者头像 李华
网站建设 2026/6/23 16:44:19

EmotiVoice能否生成辩论赛语音?逻辑性强语调输出

EmotiVoice能否生成辩论赛语音&#xff1f;逻辑性强语调输出 在一场激烈的辩论赛中&#xff0c;真正打动评委的往往不只是论点本身&#xff0c;更是说话的方式——那一声斩钉截铁的反驳、一次恰到好处的停顿、一段情绪递进的陈词。语气的强弱、节奏的变化、情感的张力&#xff…

作者头像 李华
网站建设 2026/6/23 0:48:21

建议收藏:零基础也能玩转AI大模型:提示词工程+微调+RAG实战指南

咱们先唠个实诚的——现在想蹭AI大模型的风口&#xff0c;是不是得先啃完《深度学习》《机器学习实战》&#xff1f;是不是得把TensorFlow、PyTorch的API背得滚瓜烂熟&#xff1f;是不是得搞懂“卷积神经网络 ”“Transformer架构”这些绕口的术语&#xff1f; 不用&#xff01…

作者头像 李华
网站建设 2026/6/23 18:39:20

精度论文:【Class Attention Transfer Based Knowledge Distillation】

基于类注意力转移的知识蒸馏 Class Attention Transfer Based Knowledge Distillation 摘要 以往的知识蒸馏方法在模型压缩任务中展现了卓越的性能&#xff0c;然而这些方法难以解释所转移的知识如何提升学生网络的性能。本研究致力于提出一种兼具高可解释性与强大性能的知识蒸…

作者头像 李华