Skip to content

💬 输入与输出

一、输入函数:input()

1. 语法

python
age = input() # 从键盘获取字符串存储到 age 中
name = input("请输入你的名字:") # 带提示的输入
  • input():提示用户输入,返回字符串类型
  • 如果需要数字:
    • int() → 转整数
    • float() → 转浮点数

2. 示例

python
age = int(input("请输入你的年龄:"))
height = float(input("请输入你的身高(米):"))

上述程序将提示用户输入年龄,并在把年龄存放到变量age中,接着继续提示用户输入身高(米),并把身高存放到 height中。

二、输出函数 print()

1. 基本用法

python
print("你好,Python!")
  • 默认换行
  • 多个内容用逗号隔开:
python
print("姓名:", "张三")

如果不需要换行,则可以修改print的 end 参数:

python
print("你好,Python!",end = " ")

end 参数修改为一个字符(空格),这输出"你好,Python!"后不会换行,而是输出一个空格。默认的 end 值为 '\n',它表示换行,其中 '\'为转义符,所以后面的n就不再是字符n的意思,类似的还有'\t',它表示一个Tab制表符。

print函数还可以输出变量,或者是表达式:

python
a = 10
print(a)
print("a的平方是:",a**2)

默认的情况下,print 对多个输出是用空格分开的,可以通过修改参数进行指定要使用的分隔符号:

python
print("苹果", "香蕉", "橙子", sep=", ")

Python 还是使用 """进行多行的输出:

py
print("""
第一行
第二行
第三行
""")

三、字符串格式化

使用逗号在一个语句中输出多个内容用法简单,但是不适合结构比较复杂的字符串。在Python中,我们还提供以下3中格式化字符串的方式:

这里,格式指的是把变量 / 数据,填到字符串的预留位置里面,拼接成完整文字

方式示例备注
% 占位符"名字:%s 年龄:%d" % (a, b)传统写法
str.format()"名字:{} 年龄:{}".format(a, b)兼容性好
f-stringf"名字:{a} 年龄:{b}"推荐,简单直接

方式1: % 占位符

这种格式化方式是 Python 中较早期的方式,类似于 C 语言中的格式化输出。它通过 % 符号来指定占位符,表示要插入变量的位置。

基本用法:

python
name = "张三"
age = 12
height = 1.56
print("名字:%s 年龄:%d 身高:%.2f米" % (name, age, height))
  • %s:用于字符串格式化。
  • %d:用于整数格式化。
  • %.2f:用于浮点数格式化,保留两位小数。

输出结果:

名字:张三 年龄:12 身高:1.56米

方式2: str.format()

str.format() 方法是 Python 2.7 版本引入的,提供了更灵活的格式化功能。它通过 {} 占位符来指定插入的位置,并且支持位置和关键字参数。

基本用法:

python
name = "张三"
age = 12
height = 1.56
print("名字:{} 年龄:{} 身高:{:.2f}米".format(name, age, height))
  • {}:占位符,用来插入变量。
  • {:.2f}:保留两位小数。

输出结果:

名字:张三 年龄:12 身高:1.56米

更多用法:

  • 你也可以通过位置参数或关键字参数来控制格式化。
python
# 使用位置参数
print("名字:{0} 年龄:{1} 身高:{2:.2f}".format(name, age, height))

# 使用关键字参数
print("名字:{name} 年龄:{age} 身高:{height:.2f}".format(name=name, age=age, height=height))

方式3:f-string

f-string 是 Python 3.6 版本引入的字符串格式化方法,它是最简洁和最直观的格式化方式。通过在字符串前加 f,你可以直接在字符串内插入变量,并且可以对数值进行格式化操作。

基本用法:

python
name = "张三"
age = 12
height = 1.56
print(f"名字:{name} 年龄:{age} 身高:{height:.2f}米")
  • f"{name}":直接插入变量。
  • {height:.2f}:保留两位小数。

输出结果:

名字:张三 年龄:12 身高:1.56米

更多用法:

  • 你可以在 f-string 中进行复杂的运算和格式化:
python
# 表达式支持
price = 99.99
discount = 0.1
print(f"原价:{price},折扣后价格:{price * (1 - discount):.2f}")

附表:

1. % 占位符表

格式符说明示例输出
%d十进制整数print("%d" % 255)255
%o八进制整数print("%o" % 255)377
%x十六进制小写print("%x" % 255)ff
%X十六进制大写print("%X" % 255)FF
%f浮点数,默认6位print("%.2f" % 3.1415926)3.14
%s字符串print("%s" % "Hello")Hello
%c单个字符print("%c" % 65)A

2. format() / f-string 格式符

格式符说明f‑string示例format()示例输出
{:d}十进制f"{255:d}""{:d}".format(255)255
{:b}二进制f"{255:b}""{:b}".format(255)11111111
{:o}八进制f"{255:o}""{:o}".format(255)377
{:x}十六进制小写f"{255:x}""{:x}".format(255)ff
{:X}十六进制大写f"{255:X}""{:X}".format(255)FF
{:.2f}浮点数保留2位小数f"{3.1415:.2f}""{:.2f}".format(3.1415)3.14

TIP

除了设置小数点,进制的显示外,Python 还支持控制控制宽度和对齐方式,以便某些文本更加方便阅读。他们也是通过格式符控制的。

功能% 百分号格式化format()f‑string输出
保留2位小数"%.2f" % 3.1415"{:.2f}".format(3.1415)f"{3.1415:.2f}"3.14
右对齐,宽度10"%10s" % "张三""{:>10}".format("张三")f'{"张三":>10}'" 张三"
左对齐,宽度10"%-10s" % "张三""{:<10}".format("张三")f'{"张三":<10}'"张三 "
居中,宽度10不支持"{:^10}".format("张三")f'{"张三":^10}'" 张三 "
数字宽8,前面补0"%08d" % 1234"{:0>8}".format(1234)f"{1234:0>8}""00001234"

四、示例

1. 进制格式化

python
number = 255
print("十进制:%d" % number)
print("八进制:%o" % number)
print("十六进制:%x" % number)

print(f"十进制:{number:d}")
print(f"二进制:{number:b}")
print(f"八进制:{number:o}")
print(f"十六进制:{number:X}")

2. 对齐与小数保留

python
print(f"{'姓名':<10}{'年龄':>5}{'身高':>8}")
print(f"{'张三':<10}{12:>5}{1.56:>8.2f}")
print(f"{'李四':<10}{9:>5}{1.23:>8.2f}")

输出:

姓名          年龄     身高
张三           12     1.56
李四            9     1.23

五、练习

1. 单个输入输出

  • 编写一个程序,提示用户输入他们的姓名,并打印输出:"你好,[姓名]!"
  • 编写一个程序,提示用户输入他们的年龄,并输出:"你今年 [年龄] 岁。"
  • 编写一个程序,提示用户输入他们的身高(单位:米),并输出:"你的身高是 [身高] 米。"

2. 输入并输出多个信息

  • 编写一个程序,提示用户输入姓名和年龄,并输出:"姓名:[姓名],年龄:[年龄] 岁。"
  • 编写一个程序,提示用户输入姓名和身高(单位:米),并输出:"[姓名],你的身高是 [身高] 米。"
  • 编写一个程序,提示用户输入身高和体重,并输出:"身高:[身高] 米,体重:[体重] 千克。"

3. 基本的格式化输出

  • 编写一个程序,输入一个数字,输出:"你输入的数字是:[数字]"

  • 编写一个程序,输入两个数并输出它们的和:"输入的数字是:[数字1] 和 [数字2],它们的和是:[结果]"

  • 编写一个程序,输入两个数并输出它们的差:"输入的数字是:[数字1] 和 [数字2],它们的差是:[结果]"

    • 编写一个程序,输入姓名、年龄和身高,输出:"姓名:[姓名],年龄:[年龄],身高:[身高] 米。"

4. 格式化数字输出

  • 编写一个程序,输入一个浮点数,输出:"你输入的数字是:[数字],保留两位小数后为:[保留两位小数的结果]"
  • 编写一个程序,输入一个浮点数,输出:"你输入的浮点数是:[浮点数],四舍五入到整数:[结果]"
  • 编写一个程序,输入圆的半径,输出:"半径:[半径],圆的面积为:[面积]",保留两位小数。

5. 多个输入输出格式化

  • 编写一个程序,输入两个数,输出它们的和、差和积,格式化输出:"和:[和],差:[差],积:[积]"
  • 编写一个程序,输入多个数字,计算并输出它们的平均值,格式化输出保留两位小数:"数字的平均值是:[平均值]"
  • 编写一个程序,输入姓名、性别、年龄,输出:"姓名:[姓名],性别:[性别],年龄:[年龄]岁。", 性别用

6. 复杂的格式化输出

  • 编写一个程序,输入多个学生的姓名和成绩,并以表格形式输出,表头为 姓名 | 成绩,每个学生一行,输出格式如: 姓名 | 成绩 张三 | 98 李四 | 92
  • 编写一个程序,输入一个数字,输出它们的指数形式(如 10^2)并且保留两位小数(提示:格式输出为{:.2e}): "数字:[数字],它的指数形式是:[结果]"
  • 编写一个程序,输入一个浮点数,按照宽度为 10 的格式输出,且输出时小数点后保留两位,右对齐: "浮点数:[浮点数]"
  • 编写一个程序,输入一个数字,输出该数字的货币格式,保留两位小数并加上 $"金额:[货币符号][数字]"