输入输出功能是Python中最基础也最常用的。不管是做简单的脚本调试,还是开发小型应用,输入输出都是绕不开的核心环节。这篇文章会从print()函数的多参数用法、格式化输出,到input()函数的使用技巧和类型转换,一步步带大家吃透这些知识点,文中会穿插大量实例,新手也能跟着动手实践。

一、Python输出核心:print()函数详解

print()应该是大家刚学Python时接触的第一个函数,它的作用是将内容输出到控制台(也就是我们看到的终端窗口)。它不知有print("hello world")这种简单用法,其实它还有很多实用功能,尤其是多参数和格式化输出,能大幅提升代码效率。

1.1 print()的多参数特性:一次输出多个内容

print()函数支持同时传入多个参数,参数之间用逗号分隔,输出时会自动用空格将这些参数隔开,最后默认换行。这个特性在需要拼接不同类型内容时特别方便,不用手动做字符串转换。

语法格式:

print(参数1, 参数2, 参数3, ..., sep='分隔符', end='结束符')

sep:可选参数,指定多个参数之间的分隔符,默认是空格(' ')end:可选参数,指定输出结束时的字符,默认是换行符('\n')

实例演示:

# 1. 多参数默认输出(分隔符是空格,结束是换行)

name = "张三"

age = 25

print("姓名:", name, "年龄:", age) # 输出:姓名: 张三 年龄: 25

# 2. 自定义分隔符(用逗号分隔)

print("姓名:", name, "年龄:", age, sep=',') # 输出:姓名:,张三,年龄:,25

# 3. 自定义结束符(不换行,用分号结尾)

print("第一行内容", end=';')

print("第二行内容") # 输出:第一行内容;第二行内容

这里要注意:多参数中的不同类型数据(比如上面的字符串"姓名:"和整数age)不需要手动转换为字符串,print()会自动处理,这比手动用+拼接字符串更方便(用+拼接时,整数必须先转成字符串,否则会报错)。

1.2 print()的格式化输出:让输出更规整

当需要输出固定格式的内容(比如报表、用户信息)时,多参数的方式可能不够灵活,这时候就需要格式化输出。Python中常用的格式化方式有3种:f-string(推荐,Python 3.6+)、%格式化、str.format(),其中f-string最简洁高效,也是日常开发中用得最多的。

1.2.1 推荐用法:f-string(格式化字符串字面值)

f-string的用法非常简单:在字符串前面加字母f或F,然后在字符串中用{变量名/表达式}包裹需要替换的内容,Python会自动将{}中的内容计算并替换成对应的值。

实例演示:

# 1. 基本用法:替换变量

name = "李四"

age = 30

height = 1.75

print(f"姓名:{name},年龄:{age}岁,身高:{height}m") # 输出:姓名:李四,年龄:30岁,身高:1.75m

# 2. 进阶用法:在{}中写表达式(支持运算、函数调用等)

print(f"明年{name}的年龄是:{age + 1}岁") # 输出:明年李四的年龄是:31岁

print(f"身高的2倍是:{height * 2:.1f}m") # 输出:身高的2倍是:3.5m(.1f表示保留1位小数)

# 3. 格式化日期(结合datetime模块)

from datetime import datetime

now = datetime.now()

print(f"当前时间:{now:%Y-%m-%d %H:%M:%S}") # 输出:当前时间:2024-05-20 14:30:00(%Y是4位年份,%H是24小时制)

f-string的优势在于:简洁、直观、效率高,而且支持对数值进行格式化(比如保留小数位数、指定宽度),这在处理数字类输出时非常实用。

1.2.2 其他格式化方式(了解即可)

虽然f-string是首选,但有时候会遇到旧代码用%或str.format(),所以简单提一下:

%格式化:类似C语言的printf,用%s(字符串)、%d(整数)、%f(浮点数)作为占位符print("姓名:%s,年龄:%d岁" % (name, age)) # 输出:姓名:李四,年龄:30岁

str.format():用{}作为占位符,通过参数传递值,支持位置参数和关键字参数print("姓名:{},年龄:{}岁".format(name, age)) # 输出:姓名:李四,年龄:30岁

二、Python输入核心:input()函数详解

如果说print()是“输出”,那input()就是“输入”——它的作用是接收用户从控制台输入的内容,并将其作为字符串返回。这里有个关键知识点:不管用户输入的是数字、布尔值还是其他类型,input()返回的都是字符串,如果需要其他类型,必须手动转换。

2.1 input()的基本用法:接收用户输入

语法格式:

变量名 = input("提示信息:")

提示信息:可选参数,用于告诉用户需要输入什么内容(比如“请输入你的年龄:”),会先在控制台显示该提示,再等待用户输入。用户输入完成后,按回车键,input()就会将输入的内容作为字符串赋值给前面的变量。

实例演示:

# 1. 基本用法:带提示信息

name = input("请输入你的姓名:")

print(f"你好,{name}!") # 假设用户输入“王五”,输出:你好,王五!

# 2. 不带提示信息(不推荐,用户不知道要输入什么)

age_str = input()

print(f"你输入的内容是:{age_str},类型是:{type(age_str)}") # 不管输入什么,类型都是

2.2 关键操作:input()的类型转换

前面提到,input()返回的是字符串,所以如果用户输入的是数字(比如年龄、成绩),直接用字符串进行运算会报错。这时候就需要用int()(转整数)、float()(转浮点数)等函数手动转换类型。

实例演示:

# 错误示例:直接用字符串做运算

age_str = input("请输入你的年龄:")

print(f"明年你的年龄是:{age_str + 1}") # 报错!字符串不能和整数相加

# 正确示例:先转换为整数,再运算

age_str = input("请输入你的年龄:")

age = int(age_str) # 将字符串转换为整数

print(f"明年你的年龄是:{age + 1}") # 假设输入“22”,输出:明年你的年龄是:23

# 转换为浮点数(处理小数输入)

score_str = input("请输入你的成绩:")

score = float(score_str) # 比如输入“95.5”,转换为浮点数95.5

print(f"你的成绩是:{score},类型是:{type(score)}") # 类型是

注意事项:

类型转换时,要确保用户输入的内容能被正确转换,否则会报错。比如用户输入“abc”,用int()转换就会报ValueError。实际开发中,为了避免报错,通常会结合try-except语句处理输入异常(比如用户输入非数字内容时,提示“请输入正确的数字”),示例如下:try:

age = int(input("请输入你的年龄:"))

print(f"明年你的年龄是:{age + 1}")

except ValueError:

print("输入错误!请输入整数类型的年龄。")

三、综合案例:结合输入输出实现小功能

为了让大家更好地掌握print()和input()的用法,我们来做一个简单的综合案例:编写一个“个人信息录入与展示”脚本,功能如下:

接收用户输入的姓名、年龄、身高;对年龄(转整数)、身高(转浮点数)进行类型转换;用格式化输出展示完整的个人信息。

完整代码:

# 个人信息录入与展示

print("=== 个人信息录入 ===")

# 接收输入并转换类型

name = input("1. 请输入你的姓名:")

# 年龄:确保输入是整数

while True:

try:

age = int(input("2. 请输入你的年龄:"))

break

except ValueError:

print("输入错误!年龄必须是整数,请重新输入。")

# 身高:确保输入是浮点数(支持整数输入,比如“175”会转成175.0)

while True:

try:

height = float(input("3. 请输入你的身高(单位:cm):"))

break

except ValueError:

print("输入错误!身高必须是数字,请重新输入。")

# 格式化输出结果

print("\n=== 你的个人信息 ===")

print(f"姓名:{name}")

print(f"年龄:{age}岁(明年{age + 1}岁)")

print(f"身高:{height}cm = {height / 100:.2f}m") # 转换为米并保留2位小数

运行效果:

=== 个人信息录入 ===

1. 请输入你的姓名:赵六

2. 请输入你的年龄:abc

输入错误!年龄必须是整数,请重新输入。

2. 请输入你的年龄:28

3. 请输入你的身高(单位:cm):180

=== 你的个人信息 ===

姓名:赵六

年龄:28岁(明年29岁)

身高:180.0cm = 1.80m

四、常见问题与注意事项

print()换行问题:默认print()会换行,如果想让多个print()在同一行输出,记得设置end参数(比如end='')。input()阻塞问题:input()会阻塞程序运行,直到用户输入并按回车,所以在需要非阻塞输入的场景(比如GUI程序),需要用其他方法(比如tkinter的输入框)。类型转换异常:用户输入不可控,一定要处理类型转换的异常(用try-except),否则程序容易崩溃。f-string的细节:f-string中{}里不能有反斜杠(\),如果需要换行,可在{}外用\n,比如print(f"姓名:{name}\n年龄:{age}")。

总结

今天详细讲解了Python的输入输出:print()函数的多参数和格式化输出(重点掌握f-string),input()函数的基本用法和类型转换,最后通过综合案例演示了如何结合两者实现实用功能。这些都是Python基础中的基础,掌握好它们,能让你在写脚本、调试代码时更高效。