print()和input()区别

本文详细介绍了Python中的输入输出功能,包括print()函数的使用方法,以及input()函数如何获取用户输入,特别强调了input()返回值为字符串类型的特点。

print()是打印

input()是输入,相当于java中Scan()函数

# input()函数
# 该函数用来获取用户的输入
# input()调用后,程序会立即暂停,等待用户输入
#   用户输入完内容以后,点击回车程序才会继续向下执行
#   用户输入完成以后,其所输入的的内容会以返回值得形式返回
#   注意:input()的返回值是一个字符串
#   input()函数中可以设置一个字符串作为参数,这个字符串将会作为提示文字显示
# a = input('请输入任意内容:')
# print('用户输入的内容是:',a)
# input()也可以用于暂时阻止程序结束

# 获取用户输入的用户名
username = input('请输入你的用户名:')
print("请输入你的用户名:")
# 判断用户名是否是admin
if username == 'admin' :
    print('欢迎管理员光临!')

 

<think>嗯,用户现在问的是Python的printinput函数。之前他们问过sum、any、all这些内置函数,看来他们可能是在系统性地学习Python的基础知识。需要详细解释这两个函数的用法,并提供代码示例,然后提出问题。首先,print函数是输出内容到标准输出,而input用于从用户获取输入。我得覆盖基本用法、参数、格式化输出、重定向、性能优化等方面。对于input,要包括类型转换、验证、超时处理、多行输入等。 用户可能想知道如何灵活使用这两个函数,比如格式化字符串的不同方法,处理输入时的常见问题,比如类型错误或者输入验证。此外,高级应用可能涉及文件操作或其他模块结合使用。要注意用户可能的误区,比如print自动换行的处理,或者input获取的是字符串需要转换类型。还有性能方面,比如大量输出时使用生成器表达式可能更高效。需要给出代码示例,比如使用f-string格式化,或者用try-except处理输入错误。同时,要提到Python3.8的海象运算符在输入验证中的应用,以及如何用第三方库实现输入超时。最后,相关问题要围绕这两个函数的扩展应用,可能包括文件操作、安全风险、替代方案、以及其他语言对比等。确保问题能够引导用户进一步深入学习。</think>Python的`print()``input()`是基础但功能强大的I/O函数,以下是深度解析工程实践指南: --- ### 一、print函数全解析 #### 1. 核心参数详解 ```python # 基本输出 print("Hello World") # 自动添加换行符 # 参数控制 print("A", "B", sep="|", end="!\n") # A|B! print(1, 2, 3, file=open('log.txt', 'w')) # 输出到文件 # 格式化输出 name = "Alice" print(f"{name:>10}") # 右对齐:' Alice' print(f"{3.1415:.2f}") # 保留两位:'3.14' ``` #### 2. 高级输出控制 ```python # 彩色输出 print("\033[31mError!\033[0m") # 红色文本 # 进度条模拟 import time for i in range(1, 101): print(f"\rProgress: {i}%", end='', flush=True) time.sleep(0.1) # 二进制数据输出 bytes_data = b'\x48\x65\x6c\x6c\x6f' print(bytes_data.decode('utf-8')) # Hello ``` #### 3. 性能优化方案 ```python # 低效方式(多次IO) for x in range(1000): print(x, end=' ') # 高效方式(单次IO) print(' '.join(map(str, range(1000)))) ``` --- ### 二、input函数工程实践 #### 1. 基础输入处理 ```python # 基本输入 name = input("Enter your name: ") print(f"Hello {name}!") # 类型转换 age = int(input("Age: ")) # 需处理ValueError # 安全输入验证 while True: try: num = float(input("Enter number: ")) break except ValueError: print("Invalid input!") ``` #### 2. 高级输入场景 ```python # 密码隐藏输入 import getpass password = getpass.getpass("Password: ") # 超时输入处理(需第三方库) import signal def timeout_handler(signum, frame): raise TimeoutError signal.signal(signal.SIGALRM, timeout_handler) signal.alarm(5) # 5秒超时 try: data = input("Quick input: ") except TimeoutError: print("\nTime out!") ``` #### 3. 多行输入处理 ```python # 接收多行输入(Ctrl+D结束) print("Enter lines (Ctrl+D to finish):") lines = [] while True: try: line = input() lines.append(line) except EOFError: break print(f"Received {len(lines)} lines") ``` --- ### 三、联合应用案例 #### 1. 交互式菜单系统 ```python def show_menu(): print(""" 1. 查询余额 2. 存款 3. 取款 4. 退出 """) while True: show_menu() choice = input("请选择操作: ") if choice == '4': print("感谢使用!") break # 处理其他选项... ``` #### 2. 数据录入系统 ```python class Employee: def __init__(self): self.name = input("员工姓名: ") self.age = int(input("年龄: ")) self.department = input("部门: ") employees = [] while input("是否继续录入?(y/n) ").lower() == 'y': emp = Employee() employees.append(emp) print(f"{emp.name} 已成功录入!") ``` #### 3. 实时聊天模拟 ```python import threading def receive_messages(): while True: msg = input() print(f"\n[Received] {msg}") threading.Thread(target=receive_messages, daemon=True).start() while True: message = input("Send message: ") print(f"\033[A\033[KYou: {message}") # 覆盖上条输入行 ``` --- ### 四、调试异常处理 | 常见问题 | 解决方案 | |---------|----------| | 编码错误 | 设置环境变量`PYTHONIOENCODING=utf-8` | | 缓冲区问题 | 使用`flush=True`参数强制刷新 | | 输入注入攻击 | 使用`shlex.quote()`处理输入内容 | | 性能瓶颈 | 批量处理输出内容 |
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值