《Python 实用项目与工具制作指南》· 2.1 输入输出
2.1 输入输出
在编程世界中,输入与输出是程序与用户交互的桥梁。就像人与人交流需要听(输入)和说(输出),Python 程序也通过输入获取用户指令或数据,通过输出反馈结果或状态。无论是制作 “题目数据生成器” 时让用户设定难度,还是开发 “密码管理器” 时展示保存的账号信息,都离不开输入输出功能。本节将带你掌握 Python 中最基础也最常用的输入输出方法,为后续项目开发打下交互基础。
一、输出函数:print ()—— 让程序 “说话”
print()函数是 Python 中最基础的输出工具,它能将信息显示在屏幕上,让用户知道程序的运行结果。
1. 基本用法:输出文本或变量
- 输出固定文本:将需要显示的内容放在括号中,用英文引号(单引号或双引号均可)包裹。例如:
print("欢迎使用题目数据生成器")
print('请按照提示完成设置')
运行后,屏幕会依次显示两行文字:
欢迎使用题目数据生成器
请按照提示完成设置
- 输出变量:直接将变量名放在括号中,即可显示变量存储的值。例如:
# 定义一个存储题目标题的变量
question_type = "小学数学口算题"
print(question_type) # 输出变量的值
运行结果:
小学数学口算题
2. 进阶用法:同时输出多个内容
print()可以一次输出多个内容,用逗号分隔即可。默认情况下,多个内容之间会用空格分隔,且输出后会自动换行。例如:
subject = "英语"
level = "初级"
print("当前生成的是", subject, level, "题目")
运行结果:
当前生成的是 英语 初级 题目
若想自定义分隔符或取消自动换行,可使用sep(分隔符)和end(结尾字符)参数:
# 用短横线分隔内容,结尾用感叹号代替换行
print("语文", "中级", sep="-", end="!\n")
print("生成完成") # \n是换行符,强制换行
运行结果:
语文-中级!
生成完成
3. 格式化输出:让内容更整齐
在输出包含变量的文本时(如 “生成了 20 道题”),可以用格式化字符串让内容更易读。推荐使用f - 字符串(Python 3.6 + 支持),在引号前加f,并将变量放在{}中:
count = 20
difficulty = "高级"
print(f"已生成{count}道{difficulty}题目") # 变量直接嵌入文本
运行结果:
已生成20道高级题目
二、输入函数:input ()—— 让程序 “倾听”
input()函数用于获取用户从键盘输入的信息,程序会暂停等待,直到用户输入内容并按下回车键。
1. 基本用法:获取用户输入
调用input()时,可传入一个提示文本(放在括号中),告知用户需要输入什么。函数返回用户输入的内容,通常需要用变量保存。例如:
# 获取用户姓名并保存到变量中
name = input("请输入你的姓名:")
print(f"你好,{name}!") # 输出欢迎语
运行程序后,屏幕会显示提示文字,等待用户输入:
请输入你的姓名:(此时可输入内容,如“张三”)
你好,张三!
2. 注意事项:输入内容的类型
input()获取的内容默认是字符串类型,即使用户输入的是数字,也会被当作文本处理。例如:
# 尝试获取数字并计算
num = input("请输入一个数字:")
print(num + 10) # 会报错,因为字符串不能直接和数字相加
若需要用输入的内容进行数学计算(如 “题目数据生成器” 中设定题目数量),需用int()或float()转换类型:
# 正确做法:将输入的字符串转为整数
count = int(input("请输入题目数量:"))
total = count * 2 # 可正常进行数学运算
print(f"两倍题目数量是:{total}")
运行示例:
请输入题目数量:5
两倍题目数量是:10
三、输入输出的实际应用场景
结合 “题目数据生成器”“密码管理器” 等项目,我们来看输入输出的具体用法:
1. 在 “题目数据生成器” 中
# 获取用户设置的题目参数
subject = input("请选择科目(数学/英语):")
level = input("请选择难度(简单/中等/困难):")
quantity = int(input("请输入题目数量:"))
# 输出生成结果
print(f"\n已为你生成{quantity}道{subject}{level}题目,内容如下:")
# (后续会添加题目生成代码)
运行时,程序会引导用户一步步输入设置,再清晰反馈结果。
2. 在 “密码管理器” 中
# 模拟从存储中读取账号信息
account = "example@mail.com"
password = "******" # 实际项目中会加密显示
# 输出账号信息(隐藏真实密码)
print("账号信息:")
print(f"邮箱:{account}")
print(f"密码:{password}")
通过输出控制,既能展示必要信息,又能保护敏感内容。
四、常见问题解决
- 输入数字时出错:若用户输入的不是数字(如字母),用int()转换会报错。可先判断输入是否合法(后续章节会学习条件判断),或使用try-except捕获错误:
try:
age = int(input("请输入年龄:"))
except ValueError:
print("输入错误,请输入数字!")
2. 输出内容过长:可用\n手动换行,或用三引号"""包裹多行文本:
print("""这是一段
多行文本
的输出示例""")
3. 中文显示乱码:在代码开头添加# -*- coding: utf-8 -*-(部分编辑器可能需要),确保中文正常显示。
掌握了print()和input(),你就拥有了程序与用户对话的基本能力。下一节,我们将学习变量与数据类型,让程序能更灵活地存储和处理用户输入的信息。现在,不妨试着编写一个简单的交互程序:让用户输入姓名和年龄,然后输出 “XXX,你好!你今年 XX 岁了”,感受输入输出的配合效果。