2.9_输入与输出

73 阅读4分钟

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() 的关键字参数:sepend

sepend参数分别用于定义值之间的分隔符和行尾字符。

代码演示:

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.stdinsys.stdout 进行流操作

sys.stdinsys.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 + "加粗文字")

输出:

# 控制台输出红色和加粗文字