2.9 输入与输出
2.9.1 使用 input() 获取用户输入
2.9.1.1 input() 的基本用法
input()函数用于获取用户输入的字符串。
代码演示:
name = input("请输入您的名字: ")
print("您好,", name)
输出:
请输入您的名字: 批量小王子
您好, 批量小王子
2.9.1.2 转换用户输入的类型
用户输入默认为字符串,可以使用类型转换函数转换为其他类型。
代码演示:
age = input("请输入您的年龄: ")
age = int(age) # 转换为整数
print("您的年龄是:", age)
输出:
请输入您的年龄: 30
您的年龄是: 30
2.9.1.3 捕获无效输入与异常处理
使用try-except结构来处理无效输入。
代码演示:
while True:
try:
age = int(input("请输入您的年龄: "))
break
except ValueError:
print("无效的输入,请输入一个数字。")
输出:
无效的输入,请输入一个数字。
2.9.2 使用 print() 输出信息
2.9.2.1 print() 的基础用法
print()函数用于输出信息。
代码演示:
print("Hello, World!")
输出:
Hello, World!
2.9.2.2 输出多个值
print()函数可以输出多个值。
代码演示:
name = "批量小王子"
age = 30
print("姓名:", name, "年龄:", age)
输出:
姓名: 批量小王子 年龄: 30
2.9.2.3 print() 的关键字参数:sep 和 end
sep和end参数分别用于定义值之间的分隔符和行尾字符。
代码演示:
print("Hello", "World", sep="-")
print("Hello", "World", end="!\n")
输出:
Hello-World
Hello World!
2.9.2.4 重定向输出到文件
输出可以通过重定向写入文件。
代码演示:
with open("output.txt", "w") as f:
print("Hello, World!", file=f)
输出:
# 文件 output.txt 内容为: Hello, World!
2.9.3 格式化输出
2.9.3.1 使用百分号 % 格式化字符串
使用%运算符进行字符串格式化。
代码演示:
name = "批量小王子"
age = 30
print("%s 今年 %d 岁" % (name, age))
输出:
批量小王子 今年 30 岁
2.9.3.2 使用 str.format() 方法
str.format()方法用于字符串格式化。
代码演示:
name = "批量小王子"
age = 30
print("{} 今年 {} 岁".format(name, age))
输出:
批量小王子 今年 30 岁
2.9.3.3 使用 f-strings (格式化字符串字面值)
f-strings提供了一种更简洁的字符串格式化方法。
代码演示:
name = "批量小王子"
age = 30
print(f"{name} 今年 {age} 岁")
输出:
批量小王子 今年 30 岁
2.9.3.4 对齐与填充
格式化字符串可以指定对齐和填充。
代码演示:
text = "批量小王子"
print(f"{text:<10} 今年 30 岁") # 左对齐
print(f"{text:>10} 今年 30 岁") # 右对齐
print(f"{text:^10} 今年 30 岁") # 居中对齐
输出:
批量小王子 今年 30 岁
批量小王子 今年 30 岁
批量小王子 今年 30 岁
2.9.3.5 设置数字的精度与进制转换
格式化字符串可以设置数字的精度和进制。
代码演示:
pi = 3.14159
print(f"{pi:.2f}") # 设置小数点后两位
print(f"{123:#b}") # 转换为二进制
输出:
3.14
123
2.9.4 高级输入与输出
2.9.4.1 使用 sys.stdin 和 sys.stdout 进行流操作
sys.stdin和sys.stdout可以用于更高级的输入输出操作。
代码演示:
import sys
line = sys.stdin.readline()
sys.stdout.write(line)
输出:
# 读取一行输入并输出
2.9.4.2 读取多行输入数据
可以读取多行输入直到EOF。
代码演示:
import sys
for line in sys.stdin:
sys.stdout.write(line)
输出:
# 读取多行输入并输出
2.9.4.3 通过文件重定向输入和输出
输入和输出可以通过文件重定向。
代码演示:
# 假设有一个文件 input.txt 包含输入数据
# 通过命令行重定向输入和输出
python script.py < input.txt > output.txt
2.9.5 输入与输出的应用实践
2.9.5.1 编写交互式程序
交互式程序可以根据用户输入执行不同的操作。
代码演示:
while True:
user_input = input("请输入命令(输入'quit'退出): ")
if user_input == "quit":
break
print(f"您输入了: {user_input}")
输出:
请输入命令(输入'quit'退出): hello
您输入了: hello
2.9.5.2 动态进度条的实现
可以使用第三方库如tqdm来实现动态进度条。
代码演示:
from tqdm import tqdm
import time
for i in tqdm(range(100)):
time.sleep(0.1)
输出:
# 显示动态进度条
2.9.5.3 控制台输出颜色与样式 (借助 colorama)
colorama库可以用于控制台输出颜色和样式。
代码演示:
from colorama import init, Fore, Style
init()
print(Fore.RED + "红色文字")
print(Style.BRIGHT + "加粗文字")
输出:
# 控制台输出红色和加粗文字