news 2026/6/18 22:03:28

Python中的流程控制实现,附python画爱心代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中的流程控制实现,附python画爱心代码

Python流程控制

在流程控制介入之前,代码只能从上到下依次执行,这个状态的代码还处于一个没有灵魂的状态

流程控制是让代码实现 判断分支 和 重复执行 的核心,加入流程控制之后,我们的代码就可以处理复杂的逻辑需求了

而流程控制一般又有条件控制循环控制

条件控制语句(if-elif-else)

条件控制语句可以让程序根据不同的条件执行不同的代码

基础语法规则如下

# 单分支:满足条件才执行if条件表达式:# 条件表达式返回布尔值(True/False),末尾必须加冒号代码块# 缩进(4个空格/Tab)表示属于if的代码块# 双分支:二选一执行if条件表达式:满足条件的代码块else:不满足条件的代码块# 多分支:多选一执行if条件1:代码块1elif条件2:# 可写多个elif代码块2else:# 可选,所有条件都不满足时执行代码块3

使用if语句时需注意以下几点:

  • 条件表达式可以是直接的布尔值比较运算逻辑运算,甚至是任意能被隐式转为布尔值的对象(空字符串 / 0 / 空列表为 False,其余为 True);
  • 代码块必须缩进
  • elifelse不能单独使用,必须跟在if后面;
  • 多分支中只要一个条件满足,后续条件不再判断(执行完对应代码块就跳出分支)

话不多说,直接上代码:

以学生信息为例

age:年龄

score:分数

gender:性别

age=20score=88gender=0# 假设0表示女生,1表示男生# 可以通过以上内容输出这位同学的相关信息# 先判断是否成年print('是否成年:')ifage>=18:print('成年人')else:print('未成年人')# 再判断成绩的等级:A对应90以上,B对应80~89,C对应70~79,D对应60~69,E对应60以下print('该学生的成绩等级:')ifscore>=90:print('A')elifscore>=80:print('B')elifscore>=70:print('C')elifscore>60:print('D')else:print('E')# 最后判断学生性别,可以使用if else,也可以使用2个if判断print('该学生的性别:')ifgender==0:print('女')ifgender==1:print('男')

结果如下:

是否成年: 成年人 该学生的成绩等级: B 该学生的性别: 女

三元表达式写法:

# 结果1 if 条件 else 结果2# 如果条件为真取结果1,否则取结果2age=12result='成年'ifage>=18else'未成年'print(result)

结果如下:

未成年

循环控制(for、while)

循环是指:如果指定的条件成立,就会一直执行想要执行部分的代码,直到条件不成立或者在循环体中手动写一个中断,程序才会停止运行

外面想要重复执行的那部分代码称之为:循环体

while循环
while条件表达式:# 条件为True时,重复执行代码块循环体(缩进代码)# 必须有让条件最终变为False的逻辑,否则会陷入死循环

注意避免死循环(代码会一直执行,终止条件处于不可到达的状态)

示例代码:

  • 实现一个计数代码,输出1~100所有的数

如果不采用循环的,我们就需要一直使用print,从1~100写100条print,显然有点呆了

具体实现如下

a=1whilea<=100:print(a)a+=1# 每次输出完之后,让a+1,否则会一直输出1,并且不会退出
  • 给定一个数字,我们通过输入的方式,将我们猜的数字反馈给程序,程序根据我们输入的数字给我们反馈,直到猜到指定数字
secret_num=6whileTrue:# 先无限循环# input 用于从控制台接收输入的数据,每次输入数据后回车输入数据guess=int(input("猜1-10的数字:"))ifguess==secret_num:print("猜对了!")break# 猜对后终止循环elifguess<secret_num:print("猜小了")else:print("猜大了")

结果如下:

猜1-10的数字:4 猜小了 猜1-10的数字:9 猜大了 猜1-10的数字:5 猜小了 猜1-10的数字:6 猜对了!
for

遍历「可迭代对象」(列表、字符串、字典、range 序列等),逐个取出元素执行循环体,是 Python 中最常用的循环。

for变量名in可迭代对象:循环体(每次循环,变量名会被赋值为可迭代对象的下一个元素)

示例代码:

# 遍历字符串(逐字符输出)forcharin"Python":print(char)# 输出:P、y、t、h、o、n# 遍历列表(逐个输出元素)fruits=["苹果","香蕉","橙子"]forfruitinfruits:print(f"我喜欢吃{fruit}")# 遍历range序列(生成数字范围,最常用)# range(开始, 结束, 步长):结束值不包含,步长默认1foriinrange(1,6):# 生成1、2、3、4、5print(i)foriinrange(0,10,2):# 生成0、2、4、6、8print(i)# 遍历字典(默认遍历键,可指定遍历值/键值对)student={"name":"小明","age":18,"gender":"男"}# 遍历键forkeyinstudent:print(key,student[key])# 输出:name 小明;age 18;gender 男# 遍历键值对fork,vinstudent.items():print(f"{k}{v}")

具体结果如下:

P y t h o n 我喜欢吃苹果 我喜欢吃香蕉 我喜欢吃橙子1234502468name 小明 age18gender 男 name:小明 age:18 gender:男

循环控制辅助语句(break/continue/pass)

这三个语句用于在循环中精准控制执行流程,是循环的 “辅助开关”。

语句作用
break立即终止整个循环,跳出循环体,后续循环不再执行
continue跳过本次循环的剩余代码,直接进入下一次循环的条件判断
pass空语句,仅作为 “占位符”(语法上需要代码块但暂时无逻辑时用,不影响执行)

示例代码:

# :break(终止循环)foriinrange(1,6):ifi==3:break# 当i=3时,终止整个循环print(i)# 输出:1、2(3及之后不执行)# continue(跳过本次循环)foriinrange(1,6):ifi==3:continue# 跳过i=3的打印,直接进入下一次循环print(i)# 输出:1、2、4、5(3被跳过)# pass(占位符)foriinrange(1,6):ifi==3:pass# 暂时无逻辑,先占位,不影响循环执行print(i)# 输出:1、2、3、4、5(无任何影响)# while中使用break/continuei=1whilei<=5:i+=1ifi==3:continue# 跳过i=3的打印ifi==5:break# 终止循环print(i)# 输出:2、4

结果如下:

1212451234524

流程控制嵌套

分支和循环可以互相嵌套,实现复杂逻辑(比如 “循环里加判断”“判断里加循环”“循环嵌套循环”)

  • 筛选一定范围内的偶数
nums=[1,2,3,4,5,6]fornuminnums:ifnum%2==0:print(f"{num}是偶数")else:print(f"{num}是奇数")

结果打印如下:

1是奇数2是偶数3是奇数4是偶数5是奇数6是偶数
  • 实现九九乘法表
# 外层循环控制行数(1-9)foriinrange(1,10):# 内层循环控制每行的列数(1-i)forjinrange(1,i+1):print(f"{j}×{i}={i*j}",end="\t")# end="\t" 不换行,用制表符分隔print()# 每行结束后换行

效果如下:

1×1=11×2=22×2=41×3=32×3=63×3=91×4=42×4=83×4=124×4=161×5=52×5=103×5=154×5=205×5=251×6=62×6=123×6=184×6=245×6=306×6=361×7=72×7=143×7=214×7=285×7=356×7=427×7=491×8=82×8=163×8=244×8=325×8=406×8=487×8=568×8=641×9=92×9=183×9=274×9=365×9=456×9=547×9=638×9=729×9=81

python绘制爱心

代码实现:

# 定义爱心的数学函数(心形线方程)foryinrange(15,-15,-1):line=""forxinrange(-30,30):# 心形线方程:((x*0.05)^2 + (y*0.1)^2 - 1)^3 - (x*0.05)^2 * (y*0.1)^3 <= 0formula=((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3ifformula<=0:# 在爱心内部填充字符line+='*'else:# 爱心外部填充空格line+=' 'print(line)

实现效果自行尝试哦

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 17:12:13

DevOps中的测试自动化文化:构建高效软件交付的文化基石

在当今快速迭代的软件开发环境中&#xff0c;DevOps理念已经深入人心&#xff0c;它将开发&#xff08;Development&#xff09;和运维&#xff08;Operations&#xff09;紧密结合&#xff0c;旨在通过自动化和协作加速软件交付。而测试自动化文化作为DevOps的核心组成部分&am…

作者头像 李华
网站建设 2026/6/16 14:49:57

Memory Sharing(MS, 共享记忆)框架

共享记忆&#xff08;Memory Sharing, MS&#xff09;框架是为解决 LLM 智能体在开放式任务&#xff08;如诗歌创作、计划生成&#xff09;中示例不足、理解有限的问题而设计的&#xff0c;通过 “多智能体共享记忆池 实时记忆检索 / 更新”&#xff0c;强化上下文学习能力&am…

作者头像 李华
网站建设 2026/6/17 18:18:27

免疫细胞去卷积快速入门:从零基础到实战应用

免疫细胞去卷积快速入门&#xff1a;从零基础到实战应用 【免费下载链接】immunedeconv 项目地址: https://gitcode.com/gh_mirrors/imm/immunedeconv 免疫细胞去卷积是肿瘤免疫研究中的关键技术&#xff0c;能够从混合组织样本的基因表达数据中准确估算各类免疫细胞的…

作者头像 李华
网站建设 2026/6/14 4:47:50

Open WebUI搜索优化完全指南:告别无关结果,让AI更懂你

Open WebUI搜索优化完全指南&#xff1a;告别无关结果&#xff0c;让AI更懂你 【免费下载链接】open-webui Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI&#xff0c;设计用于完全离线操作&#xff0c;支持各种大型语言模型&#xff08;LLM&#xff09;运行器&a…

作者头像 李华
网站建设 2026/6/15 12:00:20

“掺铝”工艺提升高质量发展 企业精准控制再上台阶

作者&#xff1a;龚艺在高纯石英砂制造领域&#xff0c;金属杂质通常被严格管控&#xff0c;但光伏坩埚的特殊应用场景催生了差异化技术需求。行业专家指出&#xff0c;铝元素在光伏坩埚用砂中的作用并非传统意义上的杂质&#xff0c;而是通过 "功能化改性" 提升材料…

作者头像 李华
网站建设 2026/6/15 14:50:39

Epic Games免费游戏自动领取终极指南:告别手动操作的时代

Epic Games免费游戏自动领取终极指南&#xff1a;告别手动操作的时代 【免费下载链接】epicgames-freebies-claimer Claim available free game promotions from the Epic Games Store. 项目地址: https://gitcode.com/gh_mirrors/ep/epicgames-freebies-claimer Epic G…

作者头像 李华