Python入门学习第10课|一秒搞懂!数据类型转换,告别90%新手报错
哈喽!小伙伴👋
在上一节课我们学会了Python控制台输入 input() 用法
但很多同学写完年龄计算代码,一运行就疯狂报错
今天这节课,我们就彻底吃透Python数据类型转换
搞定字符串、整数之间的互相转换,再也不怕代码出错啦
📖 一、先搞懂:你的代码为什么会报错?
我们先来写一个最简单的「年龄计算器」代码
python
# 接收用户输入的出生年份
birth=input("请输入您的出生年份:")
# 用当前年份减去出生年份,算出年龄
age=2019-birth
# 打印最终结果
print("您今年"+age+"岁")
满怀期待运行程序,输入出生年份
控制台直接弹出红色报错:
TypeError: unsupported operand type(s) for -: 'int' and 'str'
核心原因零基础一眼看懂
1. input() 函数拿到的所有内容,天生都是字符串类型str
哪怕你输入数字2010,在Python眼里它也只是一串文字,不是数字
2. 2019 是整数int,Python不允许「数字 - 字符串」做数学减法
就像你没法用数字减去一句话,运算根本无法进行
这就是新手必踩的天坑报错!
📌 二、第一招:字符串 → 整数,int()类型转换
想要做数学加减运算,我们就要把字符串年份,变成真正的整数
只需要在变量前加上 int()
修改后代码:
python
birth=input("请输入您的出生年份:")
# int(birth):把字符串出生年份,转换成整数
age=2019-int(birth)
print("您今年"+age+"岁")
这次减法运算终于正常了!
但是!新的报错又出现了👇
TypeError: can only concatenate str (not "int") to str
📌 三、第二招:整数 → 字符串,str()类型转换
Python还有一条铁规则:
字符串只能和字符串拼接,绝对不能和整数拼接
我们算出的 age 是整数类型
而 "您今年" 、 "岁" 都是字符串
文字和数字,不能用加号连在一起输出
所以我们再用 str() 函数,把整数年龄转回字符串
✅ 最终完美运行完整版代码
python
birth=input("请输入您的出生年份:")
age=2019-int(birth)
# str(age):把整数年龄,转回字符串格式
print("您今年"+str(age)+"岁")
运行输入出生年份2010
控制台完美输出: 您今年9岁
程序顺利跑通啦🎉
💡 零基础必背2个核心转换公式
1. int(内容) :把字符串数字,转换成整数,用来做数学计算
2. str(内容) :把整数、小数,转换成字符串,用来和文字拼接输出
⚠️ 新手避坑重点
1. 全程所有标点符号,必须使用英文半角符号
中文逗号、中文冒号、中文括号,都会直接触发 invalid character in identifier 报错
2. 不要直接复制粘贴网上代码,手动逐行输入,避免隐藏乱码字符
3. 数学运算用整数,文字拼接用字符串,类型不匹配永远会报错
📝 课后小练习
11月一共有30天
请你编写一段Python代码
输入今天的日期,自动计算出11月份还剩下多少天
术?
📝 课后练习题标准答案(Python完整版)
题目:11月共30天,输入当日日期,计算当月剩余天数
python
# 1. 接收用户输入的当天日期(input默认是字符串)
day = input("请输入11月当前日期:")
# 2. 字符串转整数,才能做减法数学运算
day_int = int(day)
# 3. 11月总天数 - 当天日期 = 剩余天数
remain_day = 30 - day_int
# 4. 整数转回字符串,和文字拼接输出
print("11月还剩余"+str(remain_day)+"天")
✅ 对应本节课知识点拆解
1. input() 拿到的数字永远是字符串,不能直接加减
2. 用 int() 把字符串日期 → 整数,才能做减法运算
3. 用 str() 把算出的剩余天数 → 字符串,才能和中文句子拼接打印
4. 全程所有标点 () : "" 都必须是英文半角符号,不会报之前的语法错误
运行示例
输入: 25
输出: 11月还剩余5天