跳到主要内容
Python 基础语法入门:顺序、条件与循环 | 极客日志
Python 算法
Python 基础语法入门:顺序、条件与循环 介绍 Python 基础语法,涵盖顺序语句、条件判断(if/elif/else)、循环结构(while/for)及控制语句(break/continue)。通过缩进规范、pass 占位符等细节讲解代码块逻辑。最后结合“人生重开模拟器”案例,演示属性设置、随机事件模拟及阶段逻辑实现,帮助读者掌握核心编程概念并应用于实际小项目。
霸天 发布于 2026/3/23 更新于 2026/4/27 23K 浏览一、顺序语句:从上到下,依次执行
默认情况下,Python 代码的执行顺序就像我们日常做事的流程——先做第一步,再做第二步,直到所有步骤完成。这种按固定顺序执行的语句,就是顺序语句 。
print ("1" )
print ("2" )
print ("3" )
二、条件语句:做选择
条件语句 让程序拥有了'判断能力',能够根据不同的条件执行不同的逻辑。
1. 条件语句的三种形式
Python 中通过 if、else、elif 三个关键字实现条件判断,不同形式对应不同的判断场景。
(1)单条件判断:if 语句
当只需要判断'满足条件就执行,不满足就跳过'时,使用 if 语句。
语法格式 :
if 条件表达式:
满足条件时执行的代码块(缩进)
注意 :
条件表达式后没有括号 (),结尾必须加冒号 :。
代码块通过缩进 区分(通常是 4 个空格或 1 个 Tab),这是 Python 的特色,缩进错误会直接报错。
示例 :如果输入的数字是 1,打印'你选择了认真学习'。
choice = input ("请输入数字 1:" )
if choice == "1" :
print ("你选择了认真学习" )
print ("程序结束" )
当 choice == "1" 成立时,会先打印'你选择了认真学习',再打印'程序结束';如果不成立,直接打印'程序结束'。
(2)双条件判断:if-else 语句
当需要判断'满足条件执行 A,不满足执行 B'时,使用 if-else 语句,覆盖所有可能性。
语法格式 :
if 条件表达式:
满足条件执行的代码块 A
else :
不满足条件执行的代码块 B
示例 :判断输入的整数是奇数还是偶数。
a = int (input ("请输入一个整数:" ))
a % == :
( )
:
( )
if
2
0
print
"偶数"
else
print
"奇数"
无论输入的数字是多少,都会进入其中一个分支,不会出现'无响应'的情况。
(3)多条件判断:if-elif-else 语句 当有多个条件需要依次判断时,使用 if-elif-else 语句,相当于'如果…否则如果…否则…'。
语法格式 :
if 条件 1 :
执行代码块 1
elif 条件 2 :
执行代码块 2
elif 条件 3 :
执行代码块 3
else :
所有条件都不满足时执行的代码块
a = int (input ("请输入一个整数:" ))
if a > 0 :
print ("正数" )
elif a < 0 :
print ("负数" )
else :
print ("为 0" )
程序会依次判断 a > 0、a < 0,只要有一个条件成立就执行对应的代码块,所有条件都不成立时才会执行 else 中的内容。
2. 缩进与代码块 在 Python 中,缩进是代码块的标志 ,不同层级的缩进代表不同的代码归属,这和 C++、Java 用 {} 划分代码块的方式完全不同。
正确理解缩进:
a = input ("请输入一个整数:" )
if a == "1" :
print ("hello" )
print ("world" )
a = input ("请输入一个整数:" )
if a == "1" :
print ("hello" )
print ("world" )
代码 1 中,只有 a == "1" 成立时,才会同时打印'hello'和'world';
代码 2 中,无论 a 是否等于 1,都会打印'world',因为它没有缩进,不属于 if 的代码块。
缩进嵌套: a = input ("请输入第一个整数:" )
b = input ("请输入第二个整数:" )
if a == "1" :
print ("进入 a=1 的分支" )
if b == "2" :
print ("world" )
print ("hello" )
print ("python" )
嵌套缩进需要严格对齐,否则会报错。这也是为什么有'写 Python 需要自备游标卡尺'的梗——缩进的规范性直接决定程序能否运行。
3. 空语句 pass:占位符 有时候,我们需要在条件语句中'占个位置',但暂时不执行任何操作,这时候就需要用到 pass 语句——它是 Python 中的'空语句',不影响程序执行,只用于保证语法格式正确。
a = int (input ("请输入一个整数:" ))
if a != 1 :
else :
print ("hello" )
这段代码会直接报错,因为 if a != 1: 后面没有任何代码,不符合 Python 语法。
a = int (input ("请输入一个整数:" ))
if a != 1 :
pass
else :
print ("hello" )
pass 的存在让语法格式合法,程序会正常运行:当 a != 1 时,跳过 if 分支,执行后续代码;当 a == 1 时,打印'hello'。
4. 练习:判断闰年
能被 400 整除的年份是闰年;
能被 4 整除但不能被 100 整除的年份是闰年;
其他情况是平年。
year = int (input ("请输入年份:" ))
if year % 100 == 0 :
if year % 400 == 0 :
print ("闰年" )
else :
print ("平年" )
else :
if year % 4 == 0 :
print ("闰年" )
else :
print ("平年" )
year = int (input ("请输入年份:" ))
if (year % 100 != 0 and year % 4 == 0 ) or (year % 400 == 0 ):
print ("闰年" )
else :
print ("平年" )
三、循环语句 循环语句 让程序能够自动重复执行某段代码,大大提高开发效率。
Python 中主要有两种循环:while 循环和 for 循环,各自适用于不同场景。
1. while 循环:'条件满足就一直做' while 循环的逻辑是:只要条件成立,就反复执行循环体,直到条件不成立时结束 。
基本语法: 注意 :循环体中必须包含'循环变量更新'的语句,否则循环条件会一直成立,导致程序进入'无限循环'(比如 while True: 没有退出条件时,会一直运行)。
示例:
(1)打印 1-10 的整数 num = 1
while num <= 10 :
print (num)
num += 1
执行过程:num 从 1 开始,每次打印后加 1,当 num=11 时,num <= 10 不成立,循环结束。
(2)计算 1-100 的和 sum_val = 0
num = 1
while num <= 100 :
sum_val += num
num += 1
print (sum_val)
(3)计算 5 的阶乘(5! = 5×4×3×2×1) result = 1
n = 1
while n <= 5 :
result *= n
n += 1
print (result)
(4)嵌套循环:计算 1! + 2! + 3! + 4! + 5! 的和 sum_val = 0
num = 1
while num <= 5 :
factor_result = 1
i = 1
while i <= num:
factor_result *= i
i += 1
sum_val += factor_result
num += 1
print (sum_val)
这里用到了'双重循环':外层循环控制计算哪个数的阶乘,内层循环负责计算具体的阶乘值。嵌套循环的关键是理清每层循环的职责,避免缩进错误。
2. for 循环:'遍历元素就做事' for 循环是 Python 中最灵活、最常用的循环,它不需要手动管理循环变量,而是直接遍历'可迭代对象' (比如列表、字符串、range 生成的序列),逐个执行循环体。
基本语法: for 循环变量 in 可迭代对象:
循环体(缩进代码块)
可迭代对象:内部包含多个元素,能逐个取出元素的对象(如 range(1,10)、[1,2,3]、"abc"等)。
Python 的 for 循环不需要'初始化语句''条件判断语句''更新语句',比其他语言更简洁。
示例:
(1)打印 1-10(使用 range 函数) range(start, end, step) 是 Python 内置函数,用于生成一个整数序列:
start:起始值(默认 0);
end:结束值(不包含 end 本身);
step:步长(默认 1,可正可负)。
for i in range (1 , 11 ):
print (i)
(2)打印 2、4、6、8、10(指定步长 2)
for i in range (2 , 12 , 2 ):
print (i)
(3)打印 10-1(步长为负,倒序)
for i in range (10 , 0 , -1 ):
print (i)
(4)计算 1-100 的和(for 循环更简洁) sum_val = 0
for i in range (1 , 101 ):
sum_val += i
print (sum_val)
相比 while 循环,for 循环不需要手动初始化和更新循环变量,代码更简洁,不易出错。
3. 循环控制:break 和 continue 在循环过程中,我们可能需要提前结束循环,或者跳过某次循环,这时候就需要 break 和 continue 两个关键字。
(1)continue:跳过本次循环,进入下次循环 continue 会直接跳过当前循环体中剩余的代码,不执行后续操作,直接进入下一次循环判断。
示例 :模拟吃包子,吃到第 3 个时吃出虫子,跳过这个包子,继续吃后面的。
for i in range (1 , 6 ):
if i == 3 :
print (f"第{i} 个包子吃出虫子,跳过!" )
continue
print (f"吃完第{i} 个包子" )
吃完第 1 个包子
吃完第 2 个包子
第 3 个包子吃出虫子,跳过!
吃完第 4 个包子
吃完第 5 个包子
(2)break:结束整个循环 break 会直接终止当前循环,无论循环条件是否成立,都不再继续执行。
示例 :模拟吃包子,吃到第 3 个时吃出半只虫子,直接停止吃包子。
for i in range (1 , 6 ):
if i == 3 :
print (f"第{i} 个包子吃出半只虫子,停止吃包子!" )
break
print (f"吃完第{i} 个包子" )
吃完第 1 个包子
吃完第 2 个包子
第 3 个包子吃出半只虫子,停止吃包子!
(3)练习:输入若干数字,求平均值(用 break 结束循环) 需求:持续输入数字,用分号';'结束输入,最后计算所有输入数字的平均值。
sum_val = 0
count = 0
while True :
num = input ("请输入数字(输入;结束):" )
if num == ';' :
break
num = float (num)
sum_val += num
count += 1
if count > 0 :
print (f"平均值为:{sum_val / count} " )
else :
print ("未输入任何数字!" )
这里用 while True 创建无限循环,通过 break 在输入';'时终止循环,逻辑清晰且灵活。
四、动手实现'人生重开模拟器' 学会了顺序、条件、循环语句后,我们可以动手实现一个趣味小游戏——'人生重开模拟器'。这款游戏的核心逻辑是:通过初始属性设置、随机事件触发,模拟人生不同阶段的经历,最终生成专属人生轨迹。
1. 游戏逻辑拆解
初始属性设置:颜值、体质、智力、家境(各 1-10 分,总和不超过 20);
随机生成性别:通过掷骰子(1-6)决定,单数为男孩,双数为女孩;
随机生成出生点:根据家境档位和随机数,决定出生环境并修改属性;
人生阶段模拟:分幼年、青年、壮年、老年阶段,每个阶段通过随机事件修改属性,触发特殊事件(如夭折)则游戏结束。
2. 完整代码 import random
import sys
import time
print ("=" * 50 )
print ("花有重开日,人无再少年" )
print ("欢迎来到 人生重开模拟器" )
print ("=" * 50 )
while True :
print ("\n请设定初始属性(可用总点数 20,每项 1-10 分)" )
face = int (input ("设定 颜值 (1-10):" ))
strong = int (input ("设定 体质 (1-10):" ))
iq = int (input ("设定 智力 (1-10):" ))
home = int (input ("设定 家境 (1-10):" ))
if face < 1 or face > 10 :
print ("颜值必须在 1-10 之间!" )
continue
if strong < 1 or strong > 10 :
print ("体质必须在 1-10 之间!" )
continue
if iq < 1 or iq > 10 :
print ("智力必须在 1-10 之间!" )
continue
if home < 1 or home > 10 :
print ("家境必须在 1-10 之间!" )
continue
if face + strong + iq + home > 20 :
print ("总点数超过 20!请重新分配!" )
continue
print ("初始属性设定完成!" )
print (f"颜值:{face} ,体质:{strong} ,智力:{iq} ,家境:{home} " )
break
print ("\n正在生成性别..." )
time.sleep(1 )
gender_point = random.randint(1 , 6 )
if gender_point % 2 == 1 :
gender = "boy"
print ("你是个男孩!" )
else :
gender = "girl"
print ("你是个女孩!" )
print ("\n正在生成出生点..." )
time.sleep(1 )
birth_point = random.randint(1 , 3 )
if home == 10 :
print ("你出生在帝都,你的父母是高官政要!" )
home += 1
iq += 1
face += 1
elif 7 <= home <= 9 :
if birth_point == 1 :
print ("你出生在大城市,你的父母是公务员!" )
face += 2
elif birth_point == 2 :
print ("你出生在大城市,你的父母是大企业高管!" )
home += 2
else :
print ("你出生在大城市,你的父母是大学教授!" )
iq += 2
elif 4 <= home <= 6 :
if birth_point == 1 :
print ("你出生在三线城市,你的父母是教师!" )
iq += 1
elif birth_point == 2 :
print ("你出生在镇上,你的父母是医生!" )
strong += 1
else :
print ("你出生在镇上,你的父母是个体户!" )
home += 1
else :
if 1 <= birth_point <= 2 :
print ("你出生在村里,你的父母是辛苦劳作的农民!" )
strong += 1
face -= 2
elif 3 <= birth_point <= 4 :
print ("你出生在穷乡僻壤,你的父母是无业游民!" )
home -= 1
else :
print ("你出生在镇上,你父母感情不和!" )
strong -= 1
print (f"出生后属性更新:颜值:{face} ,体质:{strong} ,智力:{iq} ,家境:{home} " )
print ("\n" + "=" * 50 )
print ("开始模拟幼年阶段(1-10 岁)..." )
print ("=" * 50 )
time.sleep(1 )
for age in range (1 , 11 ):
info = f"\n你今年{age} 岁,"
event_point = random.randint(1 , 3 )
if gender == "girl" and home <= 3 and event_point == 1 :
info += "你家里人重男轻女思想非常严重,你被遗弃了!"
print (info)
print ("游戏结束!" )
sys.exit(0 )
elif strong < 6 and event_point != 3 :
info += "你生了一场病,"
if home >= 5 :
info += "在父母的精心照料下恢复了健康,体质略有提升!"
strong += 1
home -= 1
else :
info += "你的父母没精力管你,身体状况更糟糕了!"
strong -= 1
elif face < 4 and age >= 7 :
info += "你因为长得太丑,别的小朋友不喜欢你,"
if iq > 5 :
info += "你决定用学习填充自己,智力提升!"
iq += 1
else :
if gender == "boy" :
info += "你和别的小朋友经常打架,体质提升但智力下降!"
strong += 1
iq -= 1
else :
info += "你经常被别的小朋友欺负,体质下降!"
strong -= 1
elif iq < 5 :
info += "你看起来傻傻的,"
if home >= 8 and age >= 6 :
info += "你的父母给你送到更好的学校学习,智力提升!"
iq += 1
elif 4 <= home <= 7 :
if gender == "boy" :
info += "你的父母鼓励你多运动,身体素质提升!"
strong += 1
else :
info += "你的父母鼓励你多打扮自己,颜值提升!"
face += 1
else :
info += "你的父母为此经常吵架,随机属性下降!"
if event_point == 1 :
strong -= 1
elif event_point == 2 :
iq -= 1
else :
info += "你健康成长,"
if event_point == 1 :
info += "看起来更聪明了,智力提升!"
iq += 1
elif event_point == 2 :
info += "看起来更好看了,颜值提升!"
face += 1
else :
info += "看起来更结实了,体质提升!"
strong += 1
print (info)
print (f"当前属性:颜值={face} ,体质={strong} ,智力={iq} ,家境={home} " )
time.sleep(1 )
print ("\n" + "=" * 50 )
print ("幼年阶段结束!后续可继续扩展青年、壮年、老年阶段..." )
print ("=" * 50 )
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online