news 2026/5/3 2:12:34

Python第三课: 基础语法(2):顺序、条件、循环全攻略+人生重开模拟器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python第三课: 基础语法(2):顺序、条件、循环全攻略+人生重开模拟器

Python第三课: 基础语法(2):顺序、条件、循环全攻略+人生重开模拟器


文章目录

  • Python第三课: 基础语法(2):顺序、条件、循环全攻略+人生重开模拟器
    • 一、顺序语句:代码从上往下执行
    • 二、条件语句:让程序学会“判断”
      • 2.1 三种基础写法
        • (1)单 if
        • (2)if - else
        • (3)if - elif - else(多分支)
      • 2.2 Python 条件语法特点
      • 2.3 代码示例:选择学习模式
    • 三、缩进与代码块(Python 灵魂)
      • 嵌套条件
    • 四、空语句 pass
    • 五、循环语句:让程序重复干活
      • 5.1 while 循环
        • 示例 1:打印 1~10
        • 示例 2:1~100 求和
        • 示例 3:5 的阶乘
        • 示例 4:1!+2!+…+5!(双重循环)
      • 5.2 for 循环(更常用)
        • range() 用法
        • 示例 1:打印 1~10
        • 示例 2:打印 2、4、6、8、10
        • 示例 3:倒序 10~1
        • 示例 4:1~100 求和
    • 六、break 和 continue
      • 6.1 continue:跳过本次循环
      • 6.2 break:直接结束整个循环
      • 6.3 实用案例:输入数字求平均值
    • 七、经典练习题(必做)
      • 7.1 判断奇偶数
      • 7.2 判断正负
      • 7.3 判断闰年
    • 八、综合实战:人生重开模拟器

一、顺序语句:代码从上往下执行

Python 默认执行规则:从上到下,依次执行,顺序不可乱。

# 顺序执行示例print("1")print("2")print("3")

输出结果永远是:

1 2 3

二、条件语句:让程序学会“判断”

条件语句也叫分支语句,实现“如果…否则…”逻辑。

2.1 三种基础写法

(1)单 if
if条件:条件成立执行的代码
(2)if - else
if条件:条件成立执行else:条件不成立执行
(3)if - elif - else(多分支)
if条件1:...elif条件2:...else:...

2.2 Python 条件语法特点

  • 条件不用括号
  • 条件末尾必须加:
  • 缩进表示代码块(4 空格 / 1 Tab)
  • 多分支用elif,不是else if

2.3 代码示例:选择学习模式

choice=input("输入 1 认真学习,输入 2 躺平摆烂:")ifchoice=="1":print("你会找到好工作!")elifchoice=="2":print("你可能毕业就失业!")else:print("输入有误!")

三、缩进与代码块(Python 灵魂)

缩进决定代码归属,缩进错直接报错。

# 示例 1:world 属于 if 内部a=input("请输入整数:")ifa=="1":print("hello")print("world")# 条件成立才执行
# 示例 2:world 不属于 ifa=input("请输入整数:")ifa=="1":print("hello")print("world")# 无论如何都执行

嵌套条件

a=input("第一个数:")b=input("第二个数:")ifa=="1":ifb=="2":print("hello")# 两级缩进print("world")# 一级缩进print("python")# 无缩进,始终执行

四、空语句 pass

pass无任何功能,只用来占位,保证语法合法。

a=int(input("输入整数:"))ifa!=1:pass# 占位,不报错else:print("hello")

五、循环语句:让程序重复干活

5.1 while 循环

while条件:循环体
示例 1:打印 1~10
num=1whilenum<=10:print(num)num+=1
示例 2:1~100 求和
sum=0num=1whilenum<=100:sum+=num num+=1print(sum)
示例 3:5 的阶乘
result=1n=1whilen<=5:result*=n n+=1print(result)
示例 4:1!+2!+…+5!(双重循环)
num=1sum=0whilenum<=5:factor=1i=1whilei<=num:factor*=i i+=1sum+=factor num+=1print(sum)

5.2 for 循环(更常用)

Python for 循环直接遍历可迭代对象

for变量in可迭代对象:循环体
range() 用法
  • range(a, b)→ [a, b)
  • range(a, b, step)→ 步长
示例 1:打印 1~10
foriinrange(1,11):print(i)
示例 2:打印 2、4、6、8、10
foriinrange(2,12,2):print(i)
示例 3:倒序 10~1
foriinrange(10,0,-1):print(i)
示例 4:1~100 求和
sum=0foriinrange(1,101):sum+=iprint(sum)

六、break 和 continue

6.1 continue:跳过本次循环

# 吃到第 3 个包子有虫,跳过foriinrange(1,6):ifi==3:continueprint(f"吃完第{i}个包子")

6.2 break:直接结束整个循环

# 吃到第 3 个有半只虫,不吃了foriinrange(1,6):ifi==3:breakprint(f"吃完第{i}个包子")

6.3 实用案例:输入数字求平均值

sum=0count=0whileTrue:num=input("输入数字(分号结束):")ifnum==";":breaksum+=float(num)count+=1print("平均值:",sum/count)

七、经典练习题(必做)

7.1 判断奇偶数

a=int(input("输入整数:"))ifa%2==0:print("偶数")else:print("奇数")

7.2 判断正负

a=int(input("输入整数:"))ifa>0:print("正数")elifa<0:print("负数")else:print("零")

7.3 判断闰年

year=int(input("输入年份:"))if(year%4==0andyear%100!=0)or(year%400==0):print("闰年")else:print("平年")

八、综合实战:人生重开模拟器

# 人生重开模拟器~importrandomimportsysimporttimeprint('+------------------------------------------------+')print('| |')print('| 花有重开日, 人无再少年 |')print('| |')print('| 欢迎来到, 人生重开模拟器 |')print('| |')print('+------------------------------------------------+')# 设置初始属性# 颜值, 体质, 智力, 家境, 总和不能超过 20, 每一项取值都是 1-10 之间# 使用循环, 使玩家在输入错误的时候, 可以重新输入.whileTrue:print("请设置初始属性(可用点数总数为 20)")face=int(input("请输入颜值(1-10):"))strong=int(input("请输入体质(1-10):"))iq=int(input("请输入智力(1-10):"))home=int(input("请输入家境(1-10):"))# 通过条件语句, 对于用户输入的属性值做出校验检查# 这段逻辑, 使用 elif 是否可以呢? 完全可以. 效果是相同的.# 使用 elif 则是多个分支只能进一个, 一旦某个条件满足了, 就不会再走其他的分支了.# 此处虽然没有使用 elif , 但是有了 continue, 一旦某个条件满足, continue 就会使循环从头再来, 也就没机会# 继续执行后续的条件判定了.ifface<1orface>10:print("颜值设置有误!")continueifstrong<1orstrong>10:print("体质设置有误!")continueifiq<1oriq>10:print("智力设置有误!")continueifhome<1orhome>10:print("家境设置有误!")continueifface+strong+iq+home>20:print("总的属性和超出了 20, 也是设置有误!")continue# 如果当前上面的条件都没有被触发, 则认为玩家输入的数据是合法的.# 此时就可以跳出循环结束输入了print("初始属性输入完毕!")print(f"颜值:{face}, 体质:{strong}, 智力:{iq}, 家境:{home}")break# 生成角色的性别# 使用 random.randint(beg, end), 就能生成 [beg, end] 随机整数point=random.randint(1,6)# print(f'point = {point}')ifpoint%2==1:gender='boy'print('你是个男孩')else:gender='girl'print('你是个女孩')# 设定角色的出生点# 为了简单, 就直接生成 1-3 的随机数point=random.randint(1,3)ifhome==10:# 第一档print('你出生在帝都, 你的父母是高官政要')home+=1iq+=1face+=1elif7<=home<=9:# 第二档ifpoint==1:print('你出生在大城市, 父母是公务员')face+=2elifpoint==2:print('你出生在大城市, 父母是企业高管')home+=2else:print('你出生在大城市, 父母是大学教授')iq+=2elif4<=home<=6:# 第三档ifpoint==1:print('你出生在三线城市, 你的父母是医生')strong+=1elifpoint==2:print('你出生在镇上, 你的父母是老师')iq+=1else:print('你出生在镇上, 你的父母是个体户')home+=1else:# 第四档ifpoint==1:print('你出生在农村, 父母是辛苦劳作的农民')strong+=1face-=2elifpoint==2:print('你出生在穷乡僻壤, 你的父母是无业游民')home-=1else:print('你出生在镇上, 你的父母感情不和')strong-=1print(f'颜值:{face}, 体质:{strong}, 智力:{iq}, 家境:{home}')# 幼年阶段forageinrange(1,11):# 把一整年的打印都整理到一个字符串中, 在这一年的结尾统一打印info=f'你今年{age}岁. '# 生成一个 [1, 3] 的随机整数.point=random.randint(1,3)# 接下来编写各种事件的代码# 性别触发的事件ifgender=='girl'andhome<=3andpoint==1:info+='你的家里人重男轻女思想非常严重, 你被遗弃了!'print(info)print('游戏结束!')sys.exit(0)# 体质触发的事件# 使用 elif 是为了保证每年只触发一个事件!elifstrong<6andpoint<3:info+='你生了一场病, 'ifhome>=5:info+='在父母的悉心照料下, 你康复了'strong+=1home-=1else:info+='你的父母没精力管你, 你的身体状况更糟糕了'strong-=1# 颜值触发的时间elifface<=4andage>=7:info+='你长的太丑了, 别的小朋友不喜欢你. 'ifiq>5:info+='你决定用学习填充自己!'iq+=1else:ifgender=='boy':info+='你和别的小朋友经常打架!'strong+=1iq-=1else:info+='你经常被别的小朋友欺负!'strong-=1# 智商触发的事件elifiq<5:info+='你看起来傻傻的. 'ifhome>=8andage>=6:info+='你的父母把你送到更好的学校学习'iq+=1elif4<=home<=7:ifgender=='boy':info+='你的父母鼓励你多运动, 争取成为运动员'strong+=1else:info+='你的父母鼓励你多打扮自己'face+=1else:# 家境 < 4info+='你的父母为此经常吵架'ifpoint==1:strong-=1elifpoint==2:iq-=1else:pass# 健康成长事件else:info+='你健康成长. 'ifpoint==1:info+='你看起来更结实了.'strong+=1elifpoint==2:info+='你看起来更好看了.'face+=1else:# 无事发生pass# 打印这一年发生的事情print(info)print(f'颜值:{face}, 体质:{strong}, 智力:{iq}, 家境:{home}')print('------------------------------------------------------')# 为了方便观察, 加一个小小的暂停操作time.sleep(1)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 5:48:17

GIC内存地址禁止EL0访问的原因(0x9600000e 异常)

将GIC的内存地址配置为EL0不可访问&#xff0c;是ARM架构为了隔离用户态与内核态、确保系统安全与稳定所做出的基本设计。其根本原因在于权限分离和中断系统的安全模型。你遇到的0x9600000e异常&#xff0c;正是硬件在严格执行这条“隔离红线”。&#x1f512; 为什么GIC内存地…

作者头像 李华
网站建设 2026/4/16 5:45:34

2026届最火的十大AI科研神器解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 跟着学术写作需求的增多&#xff0c;“论文一键生成”工具顺势出现了&#xff0c;那个系统依…

作者头像 李华
网站建设 2026/4/16 5:45:14

中国人民大学科研团队破解AI医学图像诊断难题

这项由中国人民大学高瓴人工智能学院陈嘉昊和苏兵团队完成的研究成果发表于2026年4月的计算机视觉与模式识别领域顶级会议&#xff0c;论文编号为arXiv:2604.03687v1。对这项研究感兴趣的读者可以通过该编号查询完整的学术论文。在现代医疗中&#xff0c;人工智能已经成为医生诊…

作者头像 李华
网站建设 2026/4/16 5:45:03

SpringBoot与MinIO深度整合:从入门到实战

1. MinIO简介与核心特性 MinIO是一款高性能的对象存储服务&#xff0c;完全兼容Amazon S3 API协议。它采用Golang语言开发&#xff0c;具有轻量级、易部署的特点&#xff0c;特别适合存储图片、视频、日志文件等非结构化数据。我在实际项目中使用MinIO替代传统FTP服务后&#x…

作者头像 李华
网站建设 2026/4/16 5:42:25

SDXL-Turbo保姆级教程:HTTP接口返回JSON结构解析与前端集成

SDXL-Turbo保姆级教程&#xff1a;HTTP接口返回JSON结构解析与前端集成 你是不是也厌倦了等待AI绘画生成结果&#xff1f;输入一段描述&#xff0c;然后就是漫长的等待&#xff0c;有时候甚至要几十秒。今天要聊的这个工具&#xff0c;彻底改变了这个体验。它叫Local SDXL-Tur…

作者头像 李华