自学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,结果报错了:
image

原因: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个问题]
posted @ 2026-06-25 09:28  qqzsq  阅读(71)  评论(0)    收藏  举报