Python格式化输出、运算符、分支&循环

Python格式化输出、运算符、分支&循环

一、Python格式化输出

1 字符串格式化输出

1.1 +连接

  在Python中,+主要有两个作用:

  第一个作用:数学运算符 ---> 用于整形、浮点型等数学直接进行加法操作;

  第二个作用:用来进行字符串连接 ---> 字符串+字符串(只能同类型相加,不同类型相加要类型转换,很麻烦 不同类型拼接在一起更便捷,就需要用到格式化输出);

  所谓格式化 ---> 一种更好的输出方式

   可以让你更方便的输出带有变量的数据

   可以让你更方便的输出一些固定格式的数据


1.2 f-str形式

  • 最简单方便粗暴的输出方式;
  • 语法:在字符串前面加f/F,在字符串中把要输出的变量,用大括号{}包裹起来;
  • f'{变量}......{}'
python 复制代码
money = 99.9
food = '一大堆零食'
print(str(money) + food)
# + 拼接
print("小明用了" + str(money) + "元" + "买了" + food)
# f-str形式
print(f'小明用了{money}元买了{food}')

  上面的输出:

  f-str形式:print(f'小明用了{money}元买了{food}')不需要进行强制数据类型转换,即str(money)

  +拼接:print("小明用了" + str(money) + "元" + "买了" + food)需要使用+,并且还需要进行数据类型强制转换,即str(money)

  遍历加f/F-str类型:

python 复制代码
# 群发转发
name = ['父亲', '母亲', '舅舅', '妹妹', '姐姐', '哥哥']
# 使用循环来进行索引遍历得到列表name中的数据
for i in name:
    print(F'{i},新年快乐哦,祝愿新的一年心想事成,事业蒸笼、步步高升。')

1.3 占位符

  • 通过占位符先占一个位置,后续再用具体值补上
  • %s ---> str类型 ------ 占位置,放字符串
  • %d ---> int类型 ------ 占位置,放整型(有小数点的,小数点会被抹除)
  • %f ---> float类型 ------ 占位置,放浮点数(默认6位小数)
    • %.1f ---> 带一位小数
    • %.2f ---> 带两位小数
    • %.xf ---> 带x位小数
  • 语法格式: print('XX%sXX%d' % (数据1,数据2))
python 复制代码
# 占位符
str1 = '小明'
str2 = '小红'
str3 = 10
str4 = 480.5
print('%s同学在%d号这天,与%s同学相约逛昆明南屏街,两人在这天一共花费了%.1f' %(str1, str3, str2, str4))

  占位符的应用:

python 复制代码
# 占位符的应用 班级平均分
num = int(input("请输入高三三班学生人数:"))
grade = float(input("请输入高三三班学生平均分:"))
name = str(input("请输入高三三班学生授课老师:"))
print('''
    ----------高三三班学生----------
    班级人数:%d
    班级平均分:%.2f
    班级授课老师:%s
    '''
    %(num, grade, name)
)

  特殊注意事项

  • "一个萝卜一个坑",需要注意前后所用的%对应的数据类型必须对应,否则会报错;
  • 对应的位置不能少,少位置或者多位置都不可以;
  • 放的都是已知数据,不可更改;

1.4 format

  format的用法跟占位符,f-str类似。它是用大括号作为占位符,在字符串后面通过.format来填上数据;   语法格式:print('xxx{下标}xxx{下标}'.format(数据1,数据2))

python 复制代码
# format
nameId = 144658972212
name = "风中的砂砾"
times = "2026-06-08 05:00:00"
password = 999999999999
print("我的QQ号ID:{},QQ号昵称"{}",创建时间{},QQ号密码是:{}。".format(nameId, name, times, password))

  下标来识别对应的位置:

python 复制代码
# 下标位置对应
name1 = '小红'
name2 = '小明'
grade = 98.25
print("同学{}和同学{},他们的分数是:{}。".format(name1, name2, grade))
print("同学{}的分数是:{};同学{}的分数是:{}。".format(name1, grade, name2, grade))
print("同学{0}的分数是:{1};同学{2}的分数是:{3}。".format(name1, grade, name2, grade)) # 下标要从0开始,如果从1开始会报错,报:IndexError: tuple index out of range

1.5 总结三种格式化字符串的特点

类型 说明 应用或注意
f-str 在字符串前面加f/F,使用{}来放入变量,语法最简洁,易读 {}中可以直接进行数学运算或切片、索引等操作
% - 占位符 使用%操作符号进行占位,%后面填充数据 多种操作说明符:%s字符串、%d整型、%f浮点数
format 字符串中用{}占位,.format()在小括号中放入数据,比较灵活,可以通过下标来锁定数据 变量如果重复使用,传一次就可以,放上变量对应的下标

二、运算符

1 赋值运算符

  把右侧值赋给左侧变量

python 复制代码
a = 10
b = a # 把a的值10赋给变量b

  常见的赋值运算符:

运算符 示例 等价写法 运算符名称 含义
+= a += 2 a = a + 2 加后赋值 先加,再将结果赋回变量
-= a -= 2 a = a - 2 减后赋值 先减,再将结果赋回变量
*= a *= 2 a = a * 2 乘后赋值 先乘,再将结果赋回变量
/= a /= 2 a = a / 2(结果浮点) 除后赋值 先除,再将结果赋回变量
//= a //= 2 a = a // 2(整数除法) 整除后赋值 先整除,再将结果赋回变量
%= a %= 2 a = a % 2(取余) 取余后赋值 先取余,再将结果赋回变量
**= a **= 2 a = a ** 2(幂运算) 幂后赋值 先求幂(次方),再将结果赋回变量
python 复制代码
a = 5
a += 1   # 6
a -= 2   # 4
a *= 3   # 12
a /= 2   # 6.0
a //= 2  # 3.0
a %= 2   # 1.0
a **= 3  # 1.0

2 比较运算符

  用于判断两个值的大小,相等关系 ,结果只有True(真)False(假)

运算符 汉字解说 含义 示例 结果
== 等于 判断两边的值是否相等 5 == 5 True
!= 不等于 判断两边的值是否不相等 3 != 2 True
> 大于 判断左边是否大于右边 5 > 10 False
< 小于 判断左边是否小于右边 5 < 1 False
>= 大于等于 判断左边是否大于或等于右边 9 >= 8 True
<= 小于等于 判断左边是否小于或等于右边 5 <= 3 True
python 复制代码
a = 10
b = 20

print(a == b)   # False
print(a != b)   # True
print(a > b)    # False
print(a < b)    # True
print(a >= 10)  # True
print(b <= 15)  # False

  身份与成员比较:

运算符 汉字解说 含义
is 是同一对象 判断两边是否为同一个内存对象(不仅值相等)
is not 非同一对象 判断两边是否不是同一个内存对象
in 属于 / 包含于 判断左边元素是否存在于右边的序列中
not in 不属于 / 不包含于 判断左边元素是否不存在于右边的序列中

  说明

  • == 比较 是否相等;is 比较身份(内存地址)是否相同。
  • 判断 None 时应使用 isif x is None:

3 逻辑运算符

  逻辑运算符用来连接多个判断条件 ,最终结果只有真(True)、假(False)

  • and:两边条件全为真,结果才是真;只要有一个假,整体就是假
  • or:两边条件,只要有一个为真 ,结果就是真,只有两边都是假,结果才是假
  • not:把原有结果颠倒真变假,假变真
  • 运算优先级:not > and > or
  • 逻辑判断中:数字 0、空字符串、空列表、None 都代表假,其余代表真。
运算符 汉字解说 含义
and 逻辑与 / 两边都为真时结果才为真
or 逻辑或 / 两边只要有一个为真结果就为真
not 逻辑非 / 取反 将真变为假,将假变为真

  重要特性:短路求值

表达式 求值过程 结果
A and B A 为假,直接返回 A ,不再看 B 假值短路
A or B A 为真,直接返回 A ,不再看 B 真值短路

三、分支结构

  Python的分支结构,是Python根据条件执行不同的代码块

  在Python中,构造分支结构 最常用的是ifelifelse三个关键字。所谓关键字就是编程语言中有特殊意义的单词,很显然我们不能使用它作为变量名。当然,并不是我们每次构造分支结构,都会将这三个关键字用上。

  通过例子加以说明

  例如我们要写一个身体质量指数(BMI)的计算器。身体质量质数也叫体质指数,是国际上常用的衡量人体胖瘦程度以及是否健康的一个指标,计算公式如下所示。通常认为:BMI小于18.5说明体重过轻;BMI小于24属于正常范围;BMI大于24说明体重过重;BMI大于27就属于肥胖的范围了;
BMI= 体重身高2 BMI = \frac{体重}{身高^{2}} BMI=身高2体重

说明:上面公式中的体重以千克(kg)为单位,身高以米(m)为单位。

python 复制代码
# 单分支
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'你的身体质量指数为:{bmi:.2f}')
if 18.5 <= bmi < 24:
    print('你的身材很棒!')

  当输入身高162;体重65,经过计算后BMI的值为24.77,显然这个值不在[18.5,24)范围内,顾if后面的程序代码就不执行;

  当输入身高163;体重50,经过计算后BMI的值为18.82,显然这个值在[18.5,24)范围内,顾if后面的程序代码执行;

python 复制代码
# 双分支
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'你的身体质量指数为:{bmi:.2f}')
if 18.5 <= bmi < 24:
    print('你的身材很棒!')
else:
    print("你的身体似乎不太健康哦,请特别注意哦!")

  当输入身高163;体重40,经过计算后BMI的值为15.06,显然这个值不在[18.5,24)范围内,顾if后面的程序代码不执行,执行else后面的程序代码;

python 复制代码
# 多分支
height = float(input('身高(cm):'))
weight = float(input('体重(kg):'))
bmi = weight / (height / 100) ** 2
print(f'你的身体质量指数为:{bmi:.2f}')
if bmi < 18.5:
    print('你太瘦了,要多吃肉哦!')
elif bmi < 24:
    print('你的身材很棒!')
elif bmi < 27:
    print('你偏胖了,要多运动,注意荤素搭配哦!')
else:
    print("你太胖了,要多运动啊!")

   第一组数据:当输入身高167;体重50,经过计算后BMI的值为17.93,显然这个值小于18.5,执行if后面的程序代码;

   第二组数据:当输入身高175;体重68,经过计算后BMI的值为22.20,显然这个值小于24,执行第一个elif后面的程序代码;

   第三组数据:当输入身高175;体重80,经过计算后BMI的值为26.12,显然这个值小于27,顾执行第二个elif后面的程序代码;

   第四组数据:当输入身高175;体重89,经过计算后BMI的值为29.06,显然这个值大于27,顾执行else后面的程序代码;

1 三种基础的分支结构

1.1 单分支

  单分支if语句(满足条件才执行)

  语法

python 复制代码
if 条件:
   条件成立时执行
  • 条件结果为True就执行内部代码,否则就跳过;
  • 注意if末尾必须加上冒号 ,内部代码必须缩进(4个空格/1个Tab)
python 复制代码
age = 18
if age >= 18:
    print("你成年了!")
1.2 双分支

  双分支if ... else ...(二选一执行)

  语法

python 复制代码
if 条件:
   条件成立执行代码
else:
   条件不成立执行代码
  • 条件结果为True就执行内部代码,否则就跳到else后;
python 复制代码
age = 16
if age >= 18:
    print("成年人")
else:
    print("未成年人")
1.3 多分支

  多分支if ... elif ... else ...(多选一)

  语法

python 复制代码
if 条件1:
   代码1
elif 条件2:
   代码2
elif 条件3:
   代码3
else:
   以上条件都不满足时执行的代码
  • 如果if条件结果为True就执行内部代码,否则就跳到elif后,如果elif结果还为假,就跳到else后,否则执行elif后的代码;
  • elif 可以写多个
  • else 可选,不是必须写
python 复制代码
score = 85
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 60:
    print("及格")
else:
    print("不及格")

2 嵌套分支

  在if/elif/else内部继续写if,用于多层判断场景

  语法:

python 复制代码
if 外层条件:
    if 内层条件:
        代码
    else:
        代码
else:
    代码
python 复制代码
age = 20
has_id = True

if age >= 18:
    if has_id:
        print("允许进入")
    else:
        print("成年但无证件,禁止进入")
else:
    print("未成年,禁止进入")

3 分支结构的应用

3.1 分段函数求值

  有如下分段函数,要求输入x,计算出y的值:
y= { 3x−5, (x>1) x+2, (−1≤x≤1) 5x+3, (x<−1) y = \begin{cases} 3x - 5, & (x \gt 1) \\\\ x + 2, & (-1 \le x \le 1) \\\\ 5x + 3, & (x \lt -1) \end{cases} y=⎩ ⎨ ⎧3x−5,x+2,5x+3,(x>1)(−1≤x≤1)(x<−1)

python 复制代码
# 分段函数求值
x = float(input('请输入x的值:'))
if x > 1:
    y = 3 * x - 5
elif x < -1:
    y = 5 * x - 4
else:
    y = x + 2
print(y)

  嵌套分支结构:

python 复制代码
# 嵌套分支
x = float(input('请输入x的值:'))
if x > 1:
    y = 3 * x - 5
else:
    if x >= -1:
        y = x + 2
    else:
        y = 5 * x - 4
print(y)

说明 :大家可以自己感受和评判一下上面两种写法哪一种更好。在"Python 之禅"中有这么一句话:"Flat is better than nested"。之所以认为"扁平化"的代码更好,是因为代码嵌套的层次如果很多,会严重的影响代码的可读性。所以,我个人更推荐大家使用第一种写法。


3.2 百分制成绩转换成等级

  要求 :如果输入的成绩在90分以上(含90分),则输出A;输入的成绩在80分到90分之间(不含90分),则输出B;输入的成绩在70分到80分之间(不含80分),则输出C;输入的成绩在60分到70分之间(不含70分),则输出D;输入的成绩在60分以下,则输出E

python 复制代码
# 百分制成绩转换成等级
score = float(input('请输入个人成绩:'))
if score >= 90:
    print(f'你的个人成绩等级为A。')
elif score >= 80:
    print(f'你的个人成绩等级为B。')
elif score >= 70:
    print(f'你的个人成绩等级为C。')
elif score >= 60:
    print(f'你的个人成绩等级为D。')
else:
    print(f'你的个人成绩等级为E。')

3.3 计算三角形的周长和面积

  要求:输入三条边的长度,如果能构成三角形就计算周长和面积;否则给出"不能构成三角形"的提示。

  判断三角形是否成立,三角形的三条边都需要满足以下两点

  • 每条边都大于0
  • 任意两边之和大于第三边,即:
    • a + b > c
    • a + c > b
    • b + c > a
python 复制代码
a = float(input('输入三角形的第一条边:'))
b = float(input('输入三角形的第二条边:'))
c = float(input('输入三角形的第三条边:'))
if (a > 0 and b > 0 and c > 0) and a + b > c and a + c > b and b + c > a:
    # 计算周长
    p = a + b + c
    print(f'三角形的周长为:{p}。')
    # 计算面积,使用【海伦公式】求解
    p = (a + b + c) / 2
    s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
    print('三角形的面积为:{}。'.format(s))
    print('三角形的面积为:%.2f。' %(s))
else:
    print('不能构成三角形。')

四、循环结构

  循环作用:重复执行一段代码 ,Python 主要有 while 循环for 循环,搭配跳转语句使用。

1 while循环

1.1 基本语法
python 复制代码
while 条件表达式:
    循环体代码
  • 规则:条件为 True,就一直执行循环体;条件为 False,结束循环

  • 必备要点:一定要设置条件变更 ,否则会造成死循环

  • 代码块靠缩进区分

1.2 基础示例
python 复制代码
# 打印1 到 8
i = 1
while i <= 8:
    print(i)
    i += 1
1.3 死循环

  条件永远为真,代码无限执行,按 Ctrl + C 强制终止。

python 复制代码
# 死循环
while True:
    print('死循环执行中********')
1.4 while + else

  循环正常结束(不是被 break 打断)后,会执行 else 代码。

python 复制代码
i = 1
while i <= 3:
    print(i)
    i += 1
else:
    print("循环正常结束")

2 for循环

  多用于遍历序列(字符串、列表、元组、range 区间等),按元素逐个循环。

1 基本语法
python 复制代码
for 变量 in 可迭代对象:
    循环体代码
2 搭配 range () 函数(最常用)

range(起始值, 结束值, 步长)

  • 取值范围:左闭右开,取不到结束值

  • 省略起始值:默认从 0 开始

  • 省略步长:默认步长为 1

python 复制代码
# 0~4
for i in range(5):
    print(i)

# 1~5
for i in range(1, 6):
    print(i)

# 1、3、5  步长2
for i in range(1, 7, 2):
    print(i)
3 遍历字符串 / 列表

  遍历字符串:

python 复制代码
# 遍历字符串
s = "Hello, Word! Nice to meet you!"
for i in s:
    print(i, end='') # 输出后空格分隔不换行

  遍历列表:

python 复制代码
# 遍历列表
# 取0 到 5内的值,并对每个值求平方存于列表ss中
ss = [i ** 2 for i in range(6)]
for i in ss:
    print(i, end=' ') # 0 1 4 9 16 25
4 for + else

  和 while-else 规则一致:循环正常遍历完毕才执行 else

python 复制代码
for i in range(3):
    print(i)
else:
    print("for 循环执行完毕")

3 循环跳转语句

1 break

  作用:立刻终止整个循环,跳出循环体,后续代码不再执行。

python 复制代码
for i in range(1, 6):
    if i == 3:
        break  # 遇到3,直接结束循环
    print(i) # 输出:1 2
2 continue

  作用:跳过当前这一次循环,直接进入下一轮循环,不会终止整体循环。

python 复制代码
# continue
for i in range(1, 20, 6):
    if i % 3 == 0:
        continue
    print(i, end='  ') # 1  7  13  19 

重点区分:

  • break彻底结束循环
  • continue只跳过当前一轮
3 嵌套的循环结构

  和分支结构一样,循环结构也是可以嵌套的,也就是说在循环结构中还可以构造循环结构。

  示例:九九乘法表

python 复制代码
# 九九乘法表
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f'{i} * {j} = {i * j}', end='  ')
    print()
4 核心注意事项
  1. 缩进:循环体内代码必须统一缩进,否则报错
  2. 死循环 :while 循环务必修改循环条件;while True 需配合 break 退出
  3. range 左闭右开range(1,5) 只取 1、2、3、4
  4. else 触发条件 :只有循环正常走完才执行,被 break 打断则不执行 else
  5. 嵌套循环:break/continue 只作用于当前所在的内层循环,不影响外层

  for vs while 选择:

场景 推荐
已知遍历次数 / 有明确序列 for
条件驱动,次数不确定 while
需要索引 for + enumerate
等待某个事件/状态 while

  循环控制关键字

关键字 作用 类比
break 立即终止整个循环 跳出
continue 跳过当前迭代,进入下一次 跳过
else 循环正常结束(未 break)后执行 收尾

  补充知识点

print(i) == print(i, end='\n')

  • end='':输出后不换行,紧跟下一个输出
  • end=' ':输出后空格分隔不换行
  • 默认 end='\n':输出后换行

4 循环结构的应用

  猜数字游戏:计算机出一个 1 到 100 之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息"大一点"、"小一点"或"猜对了",如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。

python 复制代码
import random

answer = random.randrange(1, 101)
counter = 0
while True:
    counter += 1
    num = int(input('请输入: '))
    if num < answer:
        print('大一点.')
    elif num > answer:
        print('小一点.')
    else:
        print('猜对了.')
        break
print(f'你一共猜了{counter}次.')

字**:

关键字 作用 类比
break 立即终止整个循环 跳出
continue 跳过当前迭代,进入下一次 跳过
else 循环正常结束(未 break)后执行 收尾

  补充知识点

print(i) == print(i, end='\n')

  • end='':输出后不换行,紧跟下一个输出
  • end=' ':输出后空格分隔不换行
  • 默认 end='\n':输出后换行

4 循环结构的应用

  猜数字游戏:计算机出一个 1 到 100 之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息"大一点"、"小一点"或"猜对了",如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。

python 复制代码
import random

answer = random.randrange(1, 101)
counter = 0
while True:
    counter += 1
    num = int(input('请输入: '))
    if num < answer:
        print('大一点.')
    elif num > answer:
        print('小一点.')
    else:
        print('猜对了.')
        break
print(f'你一共猜了{counter}次.')
相关推荐
92year1 小时前
用 browser-use 让 AI 自己操作浏览器:从安装到自动填表全流程
python·ai·浏览器自动化·browser-use
财经资讯数据_灵砚智能2 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月6日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
千寻girling2 小时前
一周没跑步了 ,今日跑步 5KM , 哑铃+健身 20min , 俯卧撑 30 个 ;
数据结构·c++·python·算法·leetcode·职场和发展·线性回归
CTA量化套保3 小时前
Jupyter Notebook 反复运行天勤策略内存涨:close 与内核习惯
ide·人工智能·python·jupyter
kida_yuan3 小时前
不想花钱写了一个 Flask 知识库
运维·python
站大爷IP3 小时前
Python的列表推导式差点搞垮我的服务器
python
学计算机的计算基3 小时前
2026 年 AI 助手三国杀:Claude Code vs 腾讯马维斯 vs MiniMax Mavis,我同时用了三周,结论很意外
java·人工智能·python·算法·langchain
我有2只猫3 小时前
LabelStudio二次开发
人工智能·python·django·ocr
石山代码3 小时前
Python 进阶学习指南
开发语言·python