Python中的输入和输出是编程中非常重要的方面。
1. 输入输出简单介绍
1.1 输入方式
Python中的输入可以通过input()
函数从键盘键入,也可以通过命令行参数或读取文件的方式获得数据来源。
1)input()示例
基本的input()
函数,会将用户在终端(键盘)输入的内容作为字符串返回。
user_input = input("请输入内容:")
通过类型转换为其他数据类型,如:
使用 int()
或 float()
函数将用户输入的内容转换为整数或浮点数。
# 获取用户输入的整数
user_input = int(input("请输入整数:"))
# 获取用户输入的浮点数
user_input = float(input("请输入浮点数:"))
使用eval()
函数(不推荐,慎用)
eval()
函数用于执行以字符串形式给出的 Python 表达式,并返回表达式的结果。
注意:使用 eval()
函数时要非常小心,特别是当从不受信任的来源获取输入时。不建议直接将用户输入传递给eval()
函数,因为它可能执行任意的 Python 代码,包括潜在的危险操作。最好是在确定输入是安全的情况下使用 eval()
。
"""
用户可以输入任何合法的数学表达式,比如 "2 + 3 * 4"。eval() 函数会将输入的字符串作为 Python 表达式来计算,并输出结果。使用 try-except 块来捕获可能的异常,以防止输入的表达式引发错误。
"""
# 获取用户输入的数学表达式并计算结果
expression = input("请输入一个数学表达式:")
try:
result = eval(expression)
print("计算结果:", result)
except Exception as e:
print("发生错误:", e)
2) 命令行参数
通过命令行参数输入是一种常见的方式,特别是当你想在运行脚本时提供输入而不交互地输入时。
演示如何通过命令行参数输入:
# 文件名: script.py
import sys
# 获取命令行参数
# 注意:sys.argv[0] 是脚本的名称,而实际的参数从 sys.argv[1] 开始
if len(sys.argv) < 2:
print("请提供一个参数(例如:python script.py 输入内容)")
else:
# 第一个命令行参数是输入的内容
user_input = sys.argv[1]
print("您输入的内容是:", user_input)
在命令行中运行这个脚本,例如:
python script.py Hello
输出应该是:
您输入的内容是: Hello
通过sys.argv
获取命令行参数,如果没有提供足够的参数,脚本会输出一个提示。第一个参数是脚本的名称,实际的输入参数从第二个开始。
3)通过文件读取方式
使用 open()
函数来打开文件,并使用read()
方法来读取文件的内容。
# 打开文件
file_path = 'example.txt'
with open(file_path, 'r') as file:
# 读取整个文件内容
content = file.read()
print("文件内容:")
print(content)
open(file_path, 'r')
打开一个名为 'example.txt'
的文件进行读取。使用 with
语句可以确保在文件使用完毕后正确关闭。read() 方法用于读取整个文件的内容,并将其存储在变量 content
中,然后通过 print()
函数输出文件内容。
1.2 输出方式
在 Python 中,主要使用 print()
函数进行输出。print()
函数可以打印字符串、数字和其他数据类型的内容到控制台。
2. 复杂的输出格式
程序的输出有几种显示方式,数据既可以输出供人阅读,也可以写入文件备用。
格式化输出包括以下几种方法:
1)使用“格式化字符串字面量”
2)使用str.format()
方法
3)手动格式化字符串
4)旧式字符串格式化方法
当你进行调试并想要快速显示变量的值时,可以使用 repr()
或 str()
函数将变量转化为字符串。这两个函数的选择取决于你对输出字符串的期望:
str()
函数: 返回一个供人阅读的字符串。这意味着输出通常更为友好,适合直接展示给最终用户查看。
repr()
函数: 生成适于解释器读取的字符串,即如果没有等效的语法,会强制执行 SyntaxError。这在调试过程中更有用,因为它提供更多的细节,有助于理解对象的内部结构。
在一般情况下,数字、列表、字典等结构的值,使用str()
和repr()
函数输出的表现形式是相似的。但对于自定义类,你可以通过实现 __str__
和 __repr__
方法来定义它们的输出形式。下面是一个简单的例子:
class Example:
def __init__(self, value):
self.value = value
def __str__(self):
return f"Example with value: {
self.value}"
def __repr__(self):
return f"Example({
self.value}