Python入门:3.Python的输入和输出格式化

简介: 在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。

引言

在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。

一、输入操作

Python 提供了简单而强大的输入功能,通过内置函数 input() 可以从用户那里获取字符串形式的输入。以下是一些基本用法和注意事项:

1. 基本用法

name = input("请输入你的名字: ")
print(f"你好, {name}!")

2. 转换数据类型

input() 返回的值始终是字符串类型。如果需要整数、浮点数或其他类型,必须显式转换:

age = int(input("请输入你的年龄: "))
height = float(input("请输入你的身高(米): "))
print(f"你今年 {age} 岁,身高 {height:.2f} 米。")

3. 处理异常输入

在用户输入数据时,经常可能发生错误输入。因此,我们可以使用 try...except 来捕获异常:

try:
    age = int(input("请输入你的年龄: "))
    print(f"你的年龄是 {age}")
except ValueError:
    print("输入的不是有效的整数!")

4. 类型转换的注意事项

对于复杂的输入场景,可以将字符串解析为列表、字典或其他类型。例如:

# 将逗号分隔的字符串转换为列表
numbers = input("请输入一组数字,用逗号分隔: ").split(",")
numbers = [int(num) for num in numbers]
print(f"你输入的数字是: {numbers}")

# 将 JSON 格式字符串转换为字典
import json
data = input("请输入 JSON 格式的数据: ")
data_dict = json.loads(data)
print(f"解析后的数据: {data_dict}")

二、输出操作

Python 提供了多种方法进行输出,最常用的是 print() 函数。下面详细介绍输出的格式化方法。

1. 基本输出

print() 函数可以直接输出字符串、变量、表达式等:

x = 10
y = 20
print("x + y =", x + y)

2. 格式化输出方法

格式化输出是 Python 中非常强大的功能,可以通过多种方法实现。

2.1 使用旧式 % 格式化

这是 Python 中较早的一种格式化方法,类似于 C 语言中的 printf

name = "Alice"
age = 25
print("%s 的年龄是 %d 岁。" % (name, age))
  • 常见格式符:
    • %s: 字符串
    • %d: 整数
    • %f: 浮点数
    • %.2f: 保留两位小数的浮点数
2.2 使用 str.format()

这种方法更加灵活,支持按位置或按名称插入变量:

# 按位置
print("{0} 的年龄是 {1} 岁。".format(name, age))

# 按名称
print("{name} 的年龄是 {age} 岁。".format(name="Bob", age=30))

# 格式化浮点数
pi = 3.14159
print("圆周率是 {0:.2f}".format(pi))
2.3 使用 f-string (推荐)

从 Python 3.6 开始,f-string 提供了更简洁、更直观的格式化方法:

name = "Charlie"
age = 28
print(f"{name} 的年龄是 {age} 岁。")

# 支持表达式
x = 5
y = 3
print(f"{x} + {y} = {x + y}")

# 浮点数格式化
print(f"圆周率是 {pi:.2f}")

3. 多行输出

使用三引号字符串('''""")可以轻松实现多行输出:

print("""这是多行输出:
第一行
第二行
第三行
""")

4. 控制符与转义字符

  • 换行符:\n
  • 制表符:\t
  • 反斜杠:\\
    print("Python\n编程\t语言")
    

三、综合案例

下面是一个结合输入、输出和格式化的案例:

案例描述

编写一个简单的购物结算程序,用户输入商品名称、单价和数量,程序计算总价并输出格式化账单。

实现代码

print("欢迎使用购物结算程序")

try:
    product = input("请输入商品名称: ")
    price = float(input("请输入商品单价: "))
    quantity = int(input("请输入购买数量: "))

    total = price * quantity

    print("\n结算账单:")
    print(f"商品名称: {product}")
    print(f"商品单价: {price:.2f} 元")
    print(f"购买数量: {quantity}")
    print(f"总价: {total:.2f} 元")

except ValueError:
    print("输入的数据格式有误,请重试!")

运行示例

欢迎使用购物结算程序
请输入商品名称: 苹果
请输入商品单价: 3.5
请输入购买数量: 4

结算账单:
商品名称: 苹果
商品单价: 3.50 元
购买数量: 4
总价: 14.00 元

四、总结

通过对输入和输出的深入理解与实践,Python 程序员可以更好地与用户交互,并以优雅的方式展示结果。无论是简单的 print(),还是复杂的格式化输出,掌握这些技巧对于编写高质量代码至关重要。在实际开发中,根据具体需求选择适合的格式化方法,可以大大提高程序的可读性和用户体验。

在这里插入图片描述

相关文章
|
4月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
575 7
|
5月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
478 1
|
5月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
385 100
|
5月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
533 99
|
5月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
5月前
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
5月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
5月前
|
Python
使用Python f-strings实现更优雅的字符串格式化
使用Python f-strings实现更优雅的字符串格式化
|
4月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
4月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
228 4

推荐镜像

更多