Python:第3天:输入与输出 —— 让程序和用户对话

🎯 今日目标

  • 使用 input() 函数接收用户输入

  • 理解输入的内容默认是字符串,学会类型转换

  • 掌握 print() 的多种用法(分隔符、结束符、格式化输出)

  • 学会使用转义字符(换行、制表符等)


⌨️ 一、接收用户输入:input() 函数

1.1 基本用法

input() 会让程序暂停,等待用户输入一些文字,按回车后继续执行。

python

# 最简单的用法
name = input()
print("你输入的是:", name)

运行过程:

text

(光标闪烁,等待输入)
张三
你输入的是: 张三

1.2 带提示文字的输入

通常会给用户一个提示,告诉他要输入什么。直接在 input() 的括号里放字符串即可。

python

name = input("请输入你的名字: ")
print("你好," + name)

运行结果(假设用户输入“李四”):

text

请输入你的名字: 李四
你好,李四

💡 input() 里的提示文字末尾建议加一个空格或冒号,这样光标不会紧贴着文字,看起来更舒服。


🔢 二、输入的内容默认是字符串

这一点非常重要:无论用户输入的是数字还是汉字,input() 返回的都是字符串(str)类型。

python

age = input("请输入你的年龄: ")
print(type(age))   # <class 'str'>

如果用户输入 18age 存储的是字符串 "18",而不是整数 18

2.1 将输入转换为数字

如果你需要把输入当成数字进行计算,必须用 int() 或 float() 转换。

python

age_str = input("请输入你的年龄: ")
age_int = int(age_str)          # 转换为整数
print("明年你将是", age_int + 1, "岁")

运行结果(输入 25):

text

请输入你的年龄: 25
明年你将是 26 岁

⚠️ 如果用户输入的不是数字(比如“abc”),int() 会报错 ValueError。如何避免程序崩溃?我们到第11天“异常处理”时会学。现在你可以先假设用户会乖乖输入数字。

2.2 一行代码完成输入和转换

python

age = int(input("请输入你的年龄: "))
print("明年你将是", age + 1, "岁")

💡 这是Python中非常常见的写法:把 input() 直接放在 int() 里面。


🖨️ 三、print() 的进阶用法

昨天我们简单用了 print(),今天来学它更强大的功能。

3.1 打印多个内容:用逗号分隔

python

name = "王小明"
score = 95
print("姓名:", name, "分数:", score)

运行结果:

text

姓名: 王小明 分数: 95

print() 会自动在多个内容之间加一个空格。

3.2 修改分隔符:sep

如果不想用空格分隔,可以通过 sep 参数指定分隔符。

python

print("苹果", "香蕉", "橘子", sep=", ")   # 用逗号和空格分隔
print("2025", "06", "11", sep="-")       # 用横杠分隔

运行结果:

text

苹果, 香蕉, 橘子
2025-06-11

3.3 修改结束符:end

print() 默认在末尾打印一个换行符(\n),所以下一个 print() 会从新的一行开始。你可以用 end改变结尾。

python

print("Hello", end=" ")
print("World")
print("!")

运行结果:

text

Hello World !

第一个 print 以空格结束,所以第二个输出跟在了同一行。

3.4 实际应用:制作简单进度条效果

python

import time   # 导入时间模块(后面会详细讲模块)

print("加载中", end="")
for i in range(3):
    print(".", end="")
    time.sleep(0.5)   # 暂停0.5秒
print(" 完成!")

这段代码会逐个输出点,模拟加载动画。运行一下试试效果!


🧹 四、格式化输出:让输出更整洁

当你要输出多个变量时,用逗号和 + 拼接可能会很乱。Python提供了几种更好的格式化方式。

4.1 方法一:百分号格式化(老式,但常见)

python

name = "李华"
age = 18
print("我叫%s,今年%d岁。" % (name, age))
  • %s 代表字符串占位符

  • %d 代表整数占位符

  • %f 代表浮点数占位符

运行结果:

text

我叫李华,今年18岁。

4.2 方法二:format() 方法(推荐)

python

name = "李华"
age = 18
print("我叫{},今年{}岁。".format(name, age))

花括号 {} 是占位符,format() 里的参数会按顺序填充进去。

还可以指定位置:

python

print("{1}的年龄是{0}岁。".format(18, "李华"))  # 0代表第一个参数18,1代表第二个参数“李华”

运行结果:

text

李华的年龄是18岁。

4.3 方法三:f-string(Python 3.6+,最简洁)

python

name = "李华"
age = 18
print(f"我叫{name},今年{age}岁。")

在字符串前面加上 f,就可以直接在花括号里写变量名,甚至简单表达式。

python

price = 49
quantity = 3
print(f"总价: {price * quantity} 元")

运行结果:

text

总价: 147 元

💡 推荐新手使用 f-string,因为它最直观、最不容易出错。后面所有例子我都会优先使用f-string。

4.4 控制浮点数的小数位数

python

pi = 3.1415926
print(f"圆周率约等于 {pi:.2f}")   # 保留两位小数

运行结果:

text

圆周率约等于 3.14

.2f 表示浮点数保留2位小数。


📐 五、转义字符

有些字符无法直接输入或显示,需要用反斜杠 \ 加特定字母来表示。

转义字符含义
\n换行(Line Feed)
\t制表符(Tab,相当于几个空格)
\\反斜杠本身
\'单引号(在单引号字符串里使用)
\"双引号(在双引号字符串里使用)

5.1 示例:换行和制表符

python

print("第一行\n第二行\n第三行")
print("姓名:\t张三\n年龄:\t18")

运行结果:

text

第一行
第二行
第三行
姓名:    张三
年龄:    18

5.2 示例:在字符串里输出引号

python

print('她说:"你好"')
print("It's a nice day")
print("她说:\"你好\"")        # 转义双引号
print('It\'s a nice day')    # 转义单引号

运行结果:

text

她说:"你好"
It's a nice day
她说:"你好"
It's a nice day

💡 实际上,如果你的外层用了双引号,内层可以直接用单引号,不需要转义。反之亦然。转义主要用于外层和内层引号相同的情况。

5.3 取消转义:原始字符串 r"..."

如果你想让字符串里的反斜杠不作转义,可以在字符串前面加 r

python

print(r"C:\Users\name\Desktop")   # 文件路径常用

运行结果:

text

C:\Users\name\Desktop

如果不加 r\U 等会被当成转义,可能会报错或出错。


🧪 六、综合示例:一个简单的对话程序

把今天学的内容结合起来,写一个完整的程序。

python

# 第3天综合练习:个人信息收集器

print("=" * 30)
print("    欢迎使用个人信息收集器")
print("=" * 30)

name = input("请输入你的姓名: ")
age = int(input("请输入你的年龄: "))
height = float(input("请输入你的身高(米): "))
hobby = input("请输入你的爱好: ")

# 使用f-string输出
print("\n--- 你的信息 ---")
print(f"姓名: {name}")
print(f"年龄: {age}")
print(f"身高: {height:.2f}米")
print(f"爱好: {hobby}")
print(f"明年你将 {age + 1} 岁")

# 计算并输出BMI(身体质量指数),假设用户也输入了体重
weight = float(input("\n请输入你的体重(公斤): "))
bmi = weight / (height ** 2)
print(f"你的BMI指数是: {bmi:.1f}")

运行示例(用户输入内容):

text

==============================
    欢迎使用个人信息收集器
==============================
请输入你的姓名: 张晓彤
请输入你的年龄: 22
请输入你的身高(米): 1.65
请输入你的爱好: 阅读

--- 你的信息 ---
姓名: 张晓彤
年龄: 22
身高: 1.65米
爱好: 阅读
明年你将 23 岁

请输入你的体重(公斤): 55
你的BMI指数是: 20.2

🐛 七、新手常见错误及解决

错误现象可能原因解决方法
TypeError: can only concatenate str (not "int") to str用 + 拼接字符串和数字使用逗号 , 或者用 f-string / str()转换
ValueError: invalid literal for int()用户输入了非数字内容给 int()暂时告诉用户必须输入数字,后面学异常处理可以更优雅
SyntaxError: EOL while scanning string literal字符串缺少结束的引号检查引号是否成对出现
NameError: name 'xxx' is not defined变量名写错或未定义检查变量名拼写和赋值
输入中文显示乱码终端编码问题在文件开头加 # -*- coding: utf-8 -*-(Python3默认UTF-8,通常不需要)

错误示例:忘记转换类型

python

age = input("年龄: ")
print("明年你" + age + 1 + "岁")   # 错误

报错:

text

TypeError: can only concatenate str (not "int") to str

修正:

python

age = int(input("年龄: "))
print(f"明年你{age + 1}岁")

📚 八、今日练习

  1. 问候程序:编写一个程序,要求用户输入姓名和所在城市,然后输出 “你好,[姓名]!欢迎来自[城市]的朋友。”(使用f-string)。

  2. 加法计算器:让用户输入两个数字,计算它们的和、差、积、商(除法结果用浮点数),并输出。

  3. 转义练习:用 print() 输出如下图形(提示:用 \n 和 \t):

text

*
* *
* * *
  1. 格式化练习:定义变量 price = 99.9discount = 0.7,计算打折后的价格,输出时保留两位小数,例如 “原价99.9元,打7折后是69.93元”(使用f-string)。

💡 建议亲手敲一遍代码,不要直接复制。遇到错误就对照错误表找原因。


🎯 今日总结

今天你学会了:

  • 用 input() 获取用户输入

  • 输入内容默认是字符串,需要时用 int()/float() 转换

  • print() 的进阶用法:sepend

  • 三种格式化输出方式,推荐使用 f-string

  • 转义字符(\n\t\\ 等)

  • 编写简单的交互式程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值