学Python,第一件事就是搞懂"变量"和"数据类型"。这两个概念是整个编程的地基,地基不牢,后面学到函数、循环、面向对象的时候就会一头雾水。
今天这篇文章,我用大白话帮你把Python里最核心的4种数据类型讲透:整数(int)、浮点数(float)、字符串(str)、布尔值(bool)。每个类型都配了可以直接复制运行的代码,看完就能上手。
一、什么是变量?别被名字吓到
"变量"这个词听起来很学术,其实你完全可以把它理解成一个"贴了标签的盒子"。
你拿一个盒子,往里面放一个数字10,然后在盒子外面贴个标签写上"age"。以后你只要说"age",Python就知道你在说那个装了10的盒子。就这么简单。
代码长这样:
age = 10# 创建一个变量age,里面放了数字10
name = "小明"# 创建一个变量name,里面放了文字"小明"
print(age)# 输出:10
print(name)# 输出:小明
注意几个要点:等号"="不是数学里的"等于",在Python里它的意思是"把右边的值装进左边的变量里"。变量名可以用英文字母、数字和下划线,但不能用数字开头,也不能用Python的保留字(比如if、for这些)。
二、整数(int):没有小数点的数字
整数就是你日常用的那些数:1、2、100、-5、0,没有小数点。在Python里,整数类型叫int,是integer的缩写。
整数能做加减乘除取余,直接看代码:
a = 10
b = 3
print(a + b)# 加法,输出:13
print(a - b)# 减法,输出:7
print(a * b)# 乘法,输出:30
print(a // b)# 整除(只取整数部分),输出:3
print(a % b)# 取余(10除以3余1),输出:1
print(a ** b)# 幂运算(10的3次方),输出:1000
这里有个新手容易踩的坑:普通除法"/"和整除"//"是不一样的。10 / 3 的结果是3.333...(浮点数),而 10 // 3 的结果是3(整数)。取余运算"%"在判断奇偶数、循环分组的时候特别好用,后面学循环会经常用到。
三、浮点数(float):带小数点的数字
浮点数就是带小数点的数字,比如3.14、0.5、-2.7。为什么叫"浮点"?这是计算机科学里的术语,你不用深究,只要记住:有小数点的就是浮点数。
浮点数最常见的使用场景——算钱、算成绩、算比例:
price = 29.9
discount = 0.85# 打八五折
final_price = price * discount
print(final_price)# 输出:25.415
新手必知的坑:浮点数运算有时候会出现精度问题。比如 0.1 + 0.2 在Python里算出来不是精确的0.3,而是0.30000000000000004。这不是Python的bug,是所有编程语言处理浮点数的通病。如果你需要精确计算(比如财务场景),可以用Python自带的decimal模块,不过初学阶段先不用管这个。
四、字符串(str):用引号包起来的文字
字符串就是一段文字,用单引号或双引号包起来都行。Python里字符串类型叫str,是string的缩写。
基础用法和拼接:
s1 = 'hello'# 单引号
s2 = "world"# 双引号,效果一样
print(s1 + s2)# 字符串拼接,输出:helloworld
print(s1 * 3)# 字符串重复,输出:hellohellohello
字符串有几个超级实用的操作,新手一定要记住:
name = "Python"
print(len(name))# 获取长度,输出:6
print(name.upper())# 全部大写,输出:PYTHON
print(name.lower())# 全部小写,输出:python
print(name[0])# 取第1个字符(从0开始数),输出:P
print(name[-1])# 取最后1个字符,输出:n
print(name[1:4])# 切片(取第2到第4个字符),输出:yth
这里要特别强调一个新手最容易搞混的点:字符串的索引从0开始。name[0]是第1个字符,name[1]是第2个字符,以此类推。负数索引从末尾倒数,name[-1]就是最后一个字符。切片name[1:4]的意思是"从第2个字符取到第4个字符(不包含第5个)",这个"左闭右开"的规则一定要记住。
五、f-string:把变量塞进文字里的神器
实际开发中,你经常需要把变量的值嵌到一段文字里。比如"小明今年10岁了",其中10是一个变量。Python 3.6以后推荐用f-string,写法超级简洁:
name = "小明"
age = 10
print(f"{name}今年{age}岁了")# 输出:小明今年10岁了
score = 95.5
print(f"成绩:{score:.1f}")# 保留1位小数,输出:成绩:95.5
f-string就是在字符串前面加个f,然后用大括号{}把变量包进去。它还能做格式化,比如{score:.1f}表示保留1位小数,{score:.2f}就是保留2位。这个写法比以前的老方法简洁太多了,强烈建议新手直接学f-string。
六、布尔值(bool):只有True和False两种
布尔值是编程里最简单也最强大的数据类型,它只有两个值:True(真)和False(假)。注意,首字母必须大写,这是Python的规矩。
布尔值通常用来做判断,后面学if语句的时候会大量用到:
is_student = True
is_graduated = False
print(10 > 5)# 比较运算,输出:True
print(3 == 5)# 判断是否相等,输出:False
print(10 != 10)# 不等于,输出:False
比较运算符返回的就是布尔值。大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=),这6个比较运算符一定要熟记。注意:判断相等用的是两个等号"==",一个等号"="是赋值,千万别搞混。
七、用type()函数查看数据类型
不确定一个变量是什么类型?用type()函数一查就知道:
print(type(10))# 输出:
print(type(3.14))# 输出:
print(type("hello"))# 输出:
print(type(True))# 输出:
调试的时候,type()是你的好朋友。代码跑出问题了,先print(type(变量名))看看类型对不对,能省下很多排查时间。
八、类型转换:不同类型之间互相切换
有时候你需要把一种类型转成另一种。比如用户输入的年龄是字符串"18",但你要拿它做数学运算,就得先转成整数18。Python的类型转换非常直观:
# 字符串转整数
age_str = "18"
age_int = int(age_str)
print(age_int + 2)# 输出:20
# 整数转字符串
num = 100
num_str = str(num)
print("分数是:" + num_str)# 输出:分数是:100
# 浮点数转整数(会丢失小数部分)
pi = 3.14
print(int(pi))# 输出:3(直接砍掉小数,不是四舍五入)
转换规则很简单:int()把值转成整数,float()转成浮点数,str()转成字符串,bool()转成布尔值。有一点要注意,int()转浮点数的时候是直接截断小数部分,不是四舍五入。想要四舍五入的话,用round()函数。
九、一张表总结今天的内容
类型 | 示例 | 说明 |
int | 10, -5, 0 | 整数,没有小数点,支持加减乘除取余幂运算 |
float | 3.14, 0.5 | 浮点数,带小数点,注意精度问题 |
str | "hello" | 字符串,引号包裹,支持拼接、切片、大小写转换 |
bool | True/False | 布尔值,只有两个值,用于条件判断 |