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("""
第一行
第二行
第三行
""")

三、字符串格式化方式

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

%s 和 %d 详情参考后文

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 格式符

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

3. 格式控制:对齐、宽度

功能写法示例效果示例
保留 2 位小数{:.2f}3.14
右对齐,宽 10{:>10}" 张三"
左对齐,宽 10{:<10}"张三 "
居中,宽 10{:^10}" 张三 "
宽 8,前补 0{: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. 单个输入输出

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

2. 输入并输出多个信息

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

3. 基本的格式化输出

  1. 使用 f-string 格式化输出:
    • 编写一个程序,输入一个数字,输出:"你输入的数字是:[数字]"
  2. 输入两个数并计算它们的和:
    • 编写一个程序,输入两个数并输出它们的和:"输入的数字是:[数字1] 和 [数字2],它们的和是:[结果]"
  3. 输入两个数并输出它们的差:
    • 编写一个程序,输入两个数并输出它们的差:"输入的数字是:[数字1] 和 [数字2],它们的差是:[结果]"
  4. 输入姓名、年龄、身高,输出完整信息:
  • 编写一个程序,输入姓名、年龄和身高,输出:"姓名:[姓名],年龄:[年龄],身高:[身高] 米。"

4. 格式化数字输出

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

5. 多个输入输出格式化

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

6. 复杂的格式化输出

  1. xxxxxxxxxx20 1import turtle2t = turtle.Turtle()3t.pencolor("red")4# 光线5for _ in range(12):6    t.penup()7    t.goto(0, 0)8    t.pendown()9    t.forward(70)10    t.backward(70)11    t.right(30)12# 太阳主体13t.penup()14t.goto(0, -50)15t.pendown()16t.fillcolor("yellow")17t.begin_fill()18t.circle(50)19t.end_fill()20turtle.done()python
  • 编写一个程序,输入多个学生的姓名和成绩,并以表格形式输出,表头为 姓名 | 成绩,每个学生一行,输出格式如: 姓名 | 成绩 张三 | 98 李四 | 92
  1. 格式化输出多个数字的指数形式:
  • 编写一个程序,输入一个数字,输出它们的指数形式(如 10^2)并且保留两位小数(提示:格式输出为{:.2e}): "数字:[数字],它的指数形式是:[结果]"
  1. 输入一个浮点数并按指定宽度和对齐方式输出:
  • 编写一个程序,输入一个浮点数,按照宽度为 10 的格式输出,且输出时小数点后保留两位,右对齐: "浮点数:[浮点数]"
  1. 输入一个数字,输出带有货币符号的格式:
  • 编写一个程序,输入一个数字,输出该数字的货币格式,保留两位小数并加上 $"金额:[货币符号][数字]"

💬 与我联系 QQ:774165314 | 微信:Yonas_Luo