自学Python第3天:数据类型、转换、运算符——我终于搞懂了为什么"1"和1不一样
自学Python第3天:数据类型、转换、运算符——我终于搞懂了为什么"1"和1不一样
新手向 | 2026-06-25
前两篇我装好了环境,写下了第一行print("Hello World"),还学了变量和注释。第二篇结尾我说下一篇要学"数据类型、类型转换、标识符、运算符"。
今天就来填这个坑。
说实话,学之前我以为这些概念会很难,真正接触之后发现,它们其实就藏在我前两天的代码里,只是当时不知道它叫什么名字。
一、一个让我困惑的问题
先看一段代码:
age = 18
print("我今年" + age + "岁")
如果你还记得第二篇的内容,这段代码就会报错:
TypeError: can only concatenate str (not "int") to str
我当时看到这个报错的时候,第一反应是:"age不就是18吗?为什么不能拼在一起?"
后来才知道,问题出在数据类型上。
二、数据类型是什么
数据类型,说白了就是计算机区分不同种类数据的方式。
在Python里,常见的四种数据类型是:
| 类型名 | 中文名 | 例子 | 特点 |
|---|---|---|---|
| int | 整数 | 18、-5、100 | 没有小数点 |
| float | 浮点数 | 3.14、-0.5、2.0 | 有小数点 |
| str | 字符串 | "你好"、'Python' | 用引号包裹 |
| bool | 布尔值 | True、False | 只有两个值 |
如何查看一个数据的类型?
用type()函数:
print(type(18)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("你好")) # <class 'str'>
print(type(True)) # <class 'bool'>
type()是新手调试代码的好帮手,当你拿不准一个变量是什么类型时,用print(type(变量名))看一眼就知道了。
三、一个必踩的坑:input() 返回的是字符串
这是我今天遇到的第二个问题:
age = input("请输入你的年龄: ")
print(age + 1)
我输入18,结果报错了:

原因:input()函数接收到的内容,无论你输入的是数字还是文字,它都会当成字符串来处理。也就是说,input()拿到的"18"是字符串,不是整数。
解决方法:用int()转换:
age = int(input("请输入你的年龄:"))
print(age + 1) # 现在可以正常计算了
所以以后写input()的时候,如果要拿数字,记得包一层int()。
四、类型转换:当数据类型不匹配时
在第一篇和第二篇中,我已经用过str(age)将整数转成字符串了。这一节来正式认识它们:
str():转成字符串
age = 18
print("我今年" + str(age) + "岁")
# 输出:我今年18岁
int():转成整数
num_str = "100"
num_int = int(num_str)
print(num_int + 50) # 输出:150
float():转成浮点数
num_int = 10
num_float = float(num_int)
print(num_float) # 输出:10.0
注意:不是所有字符串都能转成数字
int("abc") # 报错!无法转换
int("12.5") # 报错!int() 只能转整数字符串,带小数点的要用 float()
转换不成功会报ValueError。这也是新手常见的坑——确保你转换的内容确实是合法的数字格式。
什么时候需要转换?
·用户输入(input())拿到的是字符串,要用 int() 或 float() 转成数字
·打印数字和字符串拼接时,要用 str() 把数字转成字符串
五、标识符:变量的正式名字
第二篇我讲了变量命名规则,其实在Python里,这些命名规则有一个正式的名字————标识符
标识符命名规则(必须遵守):
1.只能包含字母、数字、下划线(_);
2.不能以数字开头;
3.不能是Python关键字。
关键字就是Python已经占用的名字,比如:if、for、while、print、True、False、int、str、float……
你可以这样理解:关键字是Python的"保留席位",你不能用这些名字给自己的变量命名,否则Python会分不清你在叫哪边。比如你用print做变量名,后面想调用print()函数时,Python会认为你在访问哪个变量,就没办法正常打印了。
命名规范建议(非强制但最好遵守):
1.用小写字母,单词之间用下划线分隔(如 my_name);
2.变量名要能体现含义(name 比 n 更好);
3.常量名用大写(如 MAX_SIZE)。
六、运算符:代码里的"动词"
还记得第二篇我们用 + 拼接字符串吗?其实 + 就是一种运算符。
运算符就是告诉计算机"做什么操作"的符号。
1.算术运算符
| 运算符 | 含义 | 例子 | 结果 |
|---|---|---|---|
| + | 加法 | 3 + 5 | 8 |
| - | 减法 | 10 - 3 | 7 |
| * | 乘法 | 4 * 6 | 24 |
| / | 除法(结果为浮点数) | 10 / 4 | 2.5 |
| // | 整除(取商的整数部分) | 10 // 4 | 2 |
| % | 取余(取余数) | 10 % 4 | 2 |
| ** | 幂运算 | 2 ** 3 | 8 |
注意:
·/结果永远是浮点数(10/2结果是5.0)
·//是向下取整(10//4结果是2,不是2.5)
·%在判断奇偶数时特别有用(num % 2 == 0就是偶数)
2.比较运算符
比较运算符的结果是布尔值(True或False):
| 运算符 | 含义 | 例子 | 结果 |
|---|---|---|---|
| == | 等于 | 5 == 5 | True |
| != | 不等于 | 5 != 3 | True |
| > | 大于 | 5 > 3 | True |
| < | 小于 | 5 < 3 | False |
| >= | 大于等于 | 5 >= 5 | True |
| <= | 小于等于 | 5 <= 3 | False |
注意: = 是赋值,== 是比较。很多新手会把 == 写成 =,导致程序逻辑出错。如果条件判断里写成了 if age = 18,Python会直接报错,因为 if 后面必须是一个布尔值。
3.逻辑运算符
| 运算符 | 含义 | 例子 | 结果 |
|---|---|---|---|
| and | 与(两个都真才真) | True and False | False |
| or | 或(有一个真就真) | True or False | True |
| not | 非(取反) | not True | False |
逻辑运算符在条件判断中非常常用,比如:
age = 20
if age >= 18 and age <= 60:
print("符合条件")
七、综合示例
今天写一个简单的小程序:
# 年龄验证程序
name = input("请输入你的名字:")
age = int(input("请输入你的年龄:")) # 类型转换
# 算术运算
next_year_age = age + 1
# 比较运算 + 逻辑运算
if age >= 18 and age < 60:
status = "成年人"
else:
status = "非成年人"
print("你好," + name + "!") # 字符串拼接
print("明年你就" + str(next_year_age) + "岁了")
print("你的状态是:" + status)
运行结果(假设输入张三和25):
请输入你的名字:张三
请输入你的年龄:25
你好,张三!
明年你就26岁了
你的状态是:成年人
这段代码包含了:
·变量(标识符)
·数据类型(字符串、整数)
·类型转换(int()、str())
·运算符(+、>=、and)
一个程序就把今天所学的东西都用上了。
小结
今天学的东西,总结成一张速查表:
表格一:数据类型与标识符
| 知识点 | 说明 | 示例 |
|---|---|---|
int |
整数类型 | age = 18 |
float |
浮点数类型 | pi = 3.14 |
str |
字符串类型 | name = "张三" |
bool |
布尔类型 | is_student = True |
type() |
查看数据类型 | type(18) → <class 'int'> |
str() |
转字符串 | str(18) → "18" |
int() |
转整数 | int("18") → 18 |
float() |
转浮点数 | float(10) → 10.0 |
| 标识符 | 变量命名规则 | 字母/数字/下划线,不能数字开头 |
表格二:运算符速查
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
/ |
除法(结果为浮点数) | 10 / 4 |
2.5 |
// |
整除(取整数部分) | 10 // 4 |
2 |
% |
取余 | 10 % 4 |
2 |
== |
等于(比较) | 5 == 5 |
True |
and |
逻辑与 | True and False |
False |
下一篇我打算学字符串的多种操作,比如三种定义方式、拼接、格式化及精度控制、对表达式进行格式化。
如果你也在学Python,欢迎在评论区告诉我你今天学到了什么,或者遇到了什么报错,一起交流!
相关文章:
- [自学Python第1天:从下载PyCharm和安装环境开始]
- [自学Python第2天:敲下第一行print("Hello World"),我遇到了3个问题]

浙公网安备 33010602011771号