当前位置: 首页 > news >正文

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)
http://www.cnnetsun.cn/news/102359.html

相关文章:

  • 魔盒项目开发纪实:移动端应用开发
  • 鸿蒙ArkTS与Vue3状态管理对比
  • EmotiVoice能否生成辩论赛语音?逻辑性强语调输出
  • 【必收藏】AI智能体(AI Agent)完全指南:从底层原理到落地实践,打造你的第一个智能体系统
  • 建议收藏:零基础也能玩转AI大模型:提示词工程+微调+RAG实战指南
  • 精度论文:【Class Attention Transfer Based Knowledge Distillation】
  • 邮件防泄露再升级!CACTER EDLP大模型破解隐秘泄露,防护更精准
  • 13、深入了解psad:端口扫描攻击检测器与可疑流量检测
  • affine+docker+postgresql+备份数据库
  • EmotiVoice语音风格迁移功能探索:跨语境情感复现
  • FDM 3D打印表面粗糙度降至2μm?这一新技术来了解一下!
  • EmotiVoice跨平台兼容性测试结果公布
  • EmotiVoice支持长文本输入吗?分段处理最佳实践
  • 第012章:进销存的萌芽——仓库里的黑洞与“永远对不上的账”(1998)
  • 0 基础挖 SRC 怕违法?保姆级封神指南!合法渠道 + 实操步骤 + 必备技能一文搞定!
  • 如何让机器说话更有感情?试试EmotiVoice多情感TTS
  • 【OpenCV】Python图像处理几何变换之透视
  • EmotiVoice语音合成结果隐私保护措施说明
  • SottPlot5曲线图学习,代码示例,最新版本使用总结(v5.1.x)
  • EmotiVoice语音合成语音压缩技术:减小文件体积不影响质量
  • 央广财经对话齐向东!网安是 “十五五” 黄金赛道,稳、宽、强 = 躺赢风口?
  • 工业互联网产业联盟:高标准数字园区建设研究报告 2025
  • 共商AI时代发展新路径 第十六届亚洲电子论坛举办
  • 软考—系统集成项目管理工程师计算公式汇总
  • AI元人文构想:在黑箱与元白箱之间的抉择分析
  • AI元人文构想:意义行为原生论——回应质疑
  • 15、网络相似度与二分网络的构建与分析
  • 1.5 LangChain vs. DeepSeek:MCP 客户端开发与框架集成的终极对决
  • 设计少儿编程逻辑训练AI助手,通过图形化编程积木操作,AI实时判断代码逻辑错误,提供引导提示,非直接给出答案,记录能力成长轨迹。
  • 开发中小商家库存智能预警系统,录入商品销售数据与库存总量,通过时间序列模型,预测补货节点,自动生成采购清单,支持导出EXCEL。