02.变量起名别用拼音!Python 数据类型这篇给你整明白
变量起名别用拼音!Python 数据类型这篇给你整明白
带过几个学编程的朋友,我发现一件事:变量命名是判断一个人代码水平的"照妖镜"。
a1、b2、data1、x……这种变量名,三个月后你自己回来看都认不出来。
还有用拼音的:shuzi、liebiao、yonghuming。代码一多,满屏拼音,看的人脑袋疼。
今天把这些基础概念讲清楚。看完这篇,你的代码至少看起来像个正经程序员写的。
变量是什么?
变量就是一个带名字的"盒子",用来存数据。
name = "小明"
age = 25
height = 1.75
is_student = True
等号 = 不是数学里的"等于",而是赋值——把右边的值装进左边的盒子里。
你可以随时换盒子里的东西:
age = 25
age = 26 # 改成 26 了
age = "二十五" # Python 允许,但别这么干
Python 是动态类型语言,变量不用提前声明类型。好处是写起来快,坏处是——类型乱飘,bug 难找。
变量命名:三条铁律
1. 只能由字母、数字、下划线组成,不能以数字开头
user_name = "张三" # ✅
_name = "张三" # ✅(但别随便用,下划线开头有特殊含义)
1name = "张三" # ❌ 语法错误
2. 区分大小写
age = 25
Age = 26
AGE = 27
print(age) # 25,三个是不同的变量
3. 不能用 Python 关键字
if、for、while、class、def、import……这些是 Python 自己用的词,别拿来当变量名。
想知道完整列表?终端里敲:
import keyword
print(keyword.kwlist)
命名风格:下划线命名法
Python 社区的规矩:多个单词用下划线连接,全小写。
user_name = "张三" # ✅ 标准 Python 风格
userName = "张三" # ⚠️ Java/C++ 风格,Python 里不太用
UserName = "张三" # ⚠️ 一般是类名才这么写
USER_NAME = "张三" # ✅ 常量才全大写
一句话:普通变量用 snake_case,全小写+下划线。
Python 的四种基本数据类型
1. 整数(int)
age = 25
count = -3
big_number = 10_000_000 # Python 3.6+ 可以用下划线分隔,好看
整数没大小限制,内存多大就能装多大。Java 程序员羡慕哭了。
2. 浮点数(float)
pi = 3.14159
height = 1.75
e = 1.5e10 # 科学计数法,等于 15000000000.0
⚠️ 浮点数有个著名的坑:精度问题。
print(0.1 + 0.2) # 输出 0.30000000000000004
不是 Python 的锅,是所有语言都有这个问题。精确计算用 decimal 模块,后面会讲。
3. 字符串(str)
s1 = 'hello'
s2 = "world"
s3 = '''多行
字符串'''
s4 = "It's a nice day" # 里面有单引号就用双引号包
字符串的玩法很多,下一篇专门讲。
4. 布尔值(bool)
is_logged_in = True
has_permission = False
只有 True 和 False 两个值,首字母大写。
布尔值通常来自比较运算:
print(5 > 3) # True
print(10 == 20) # False
print("a" == "b") # False
type() 函数:查户口
不知道变量是什么类型?用 type():
print(type(25)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("hello")) # <class 'str'>
print(type(True)) # <class 'bool'>
这个函数调试时巨有用,变量类型乱了的时候一查就知道。
类型转换:强制"变身"
# 字符串 → 整数
num = int("123") # 123
# num = int("abc") # ❌ 报错,不能转
# 整数 → 字符串
text = str(456) # "456"
# 整数 → 浮点数
f = float(10) # 10.0
# 任意类型 → 布尔
print(bool(1)) # True
print(bool(0)) # False
print(bool("")) # False(空字符串)
print(bool("hello")) # True(非空字符串)
print(bool([])) # False(空列表)
实际开发中,类型转换经常用在"从用户输入拿到字符串,转成数字计算"这种场景。
新手常见的 4 个坑
坑 1:把赋值当等于
age = 25
age == 25 # True,两个等号才是"判断相等"
age = 30 # 赋值为 30
= 是赋值,== 是比较。搞混了逻辑就全乱了。
坑 2:字符串和数字不能直接拼接
age = 25
# print("我今年" + age + "岁") # ❌ TypeError
print("我今年" + str(age) + "岁") # ✅ 先转字符串
print(f"我今年{age}岁") # ✅ f-string 更好用
坑 3:布尔值的大写
True 和 False 必须首字母大写。写 true 或 false 会报错,这是 Python 不是 JavaScript。
坑 4:变量没定义就用
print(username) # NameError: name 'username' is not defined
这行报错的意思是:你用了 username 这个变量,但它还没被创建。补上一行 username = "admin" 就行了。
动手试试
- 创建几个变量存你的个人信息(姓名、年龄、身高、是否在职)
- 用
type()查每个变量的类型 - 尝试把年龄从整数转成字符串,再转成浮点数
参考答案:
name = "张三"
age = 28
height = 1.78
employed = True
print(type(name)) # <class 'str'>
print(type(age)) # <class 'int'>
print(type(height)) # <class 'float'>
print(type(employed)) # <class 'bool'>
# 类型转换
age_str = str(age)
age_float = float(age)
print(age_str, type(age_str))
print(age_float, type(age_float))
写在最后
变量和数据类型是整个编程世界的地基。这些东西看起来简单,但基础不牢后面写什么都磕磕绊绊。
一个建议:从现在开始,每个变量名都认真起。把 a1 改成 user_count,把 shuzi 改成 number_list。习惯养好了,后面省很多事。
下一篇讲字符串的十八般武艺——切片、格式化、常用方法,以及那个让无数新手抓狂的编码问题。
更多推荐
所有评论(0)