3. Python基础知识:注释、变量以及数据类型
好,咱们正式开始写代码了。这一章我带你过一遍Python最基础的东西。别小看这些,我见过不少老手在变量命名和类型转换上翻车。咱们稳扎稳打,把这些地基打牢。
3.1 注释——给代码加个旁白
注释就是代码里的说明文字。Python解释器会直接忽略它,纯粹写给人看的。
我个人习惯,写代码前先写注释。把思路理清了,再动手敲代码。这样不容易写着写着就跑偏。
Python里注释有两种写法:
# 这是单行注释,用井号开头
print("Hello, World!") # 我习惯把注释写在代码后面,解释这行在干嘛
"""
这是多行注释
用三个引号包起来
可以写好几行说明
"""
我的小建议:注释不是越多越好。好的代码本身就像注释一样清晰。你只需要在「为什么这么写」的地方加注释,而不是「写了什么」的地方。
3.2 变量——给数据贴个标签
变量是什么?说白了就是给数据起个名字。你想想看,你总得有个方式去引用一段数据吧?
Python里定义变量特别简单,连类型声明都不用写:
name = "张三" # 字符串
age = 25 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
嗯,这里要注意:Python是动态类型语言。意思是变量的类型可以随时变。比如:
x = 10 # 现在是整数
x = "hello" # 现在变成字符串了
我在项目中遇到过一个问题:有个同事在循环里反复改变同一个变量的类型,结果后面代码报错了,查了半天才发现是类型变了。所以我的建议是——一个变量最好只存一种类型的数据,别来回换。
3.3 数据类型——Python自带的几种基础类型
Python里常用的基础数据类型,我整理了一张表:
| 类型 | 名称 | 例子 |
|---|---|---|
| int | 整数 | 10, -5, 0 |
| float | 浮点数(小数) | 3.14, -0.5, 1.0 |
| str | 字符串 | "你好", 'Python' |
| bool | 布尔值 | True, False |
| NoneType | 空值 | None |
你可以用 type() 函数查看一个变量的类型:
print(type(10)) # <class 'int'>
print(type("abc")) # <class 'str'>
print(type(True)) # <class 'bool'>
重点:Python里一切皆对象。整数、字符串、甚至函数,都是对象。这个理念贯穿整个Python,你后面会越来越有体会。
3.4 标识符和关键字——起名字的规矩
标识符就是你给变量、函数、类起的名字。Python对起名字有几点要求:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能是Python的关键字
- 区分大小写(name和Name是两个不同的变量)
那什么是关键字?就是Python自己保留的词,你不能拿来当变量名。比如:
# 这些都不能当变量名
# if, else, for, while, class, def, import, True, False, None
你可以用 import keyword; print(keyword.kwlist) 查看所有关键字。
我曾经见过新手把 class 当变量名,结果程序直接报语法错误。嗯,这种坑踩一次就记住了。
3.5 输入函数——让程序跟人对话
input() 函数用来从键盘获取用户输入。它会把输入的内容以字符串形式返回:
name = input("请输入你的名字:")
print("你好," + name)
注意:input() 返回的永远是字符串!哪怕你输入的是数字,它也是字符串。我当年刚学Python时,直接拿input的结果做加法,结果变成了字符串拼接。比如输入10和20,得到的是"1020"而不是30。
所以如果你需要数字,记得做类型转换:
age_str = input("请输入年龄:")
age = int(age_str) # 把字符串转成整数
print("明年你" + str(age + 1) + "岁了")
3.6 输出函数——把结果亮出来
print() 是我们最常用的输出方式。它有几个小技巧:
print("Hello", "World") # 多个参数,默认用空格分隔
print("Hello", "World", sep="-") # 指定分隔符
print("第一行", end="") # 不换行
print("接着第一行")
我个人最常用的是f-string格式化输出,Python 3.6以后引入的,特别方便:
name = "张三"
age = 25
print(f"我叫{name},今年{age}岁") # 输出:我叫张三,今年25岁
3.7 运算符——让数据动起来
Python的运算符分几大类,我挑最常用的说:
算术运算符:
a = 10
b = 3
print(a + b) # 13 加法
print(a - b) # 7 减法
print(a * b) # 30 乘法
print(a / b) # 3.333... 除法(结果是浮点数)
print(a // b) # 3 整除(取整数部分)
print(a % b) # 1 取余
print(a ** b) # 1000 幂运算
比较运算符:
print(10 > 3) # True
print(10 == 3) # False (注意是两个等号)
print(10 != 3) # True
逻辑运算符:
print(True and False) # False 与
print(True or False) # True 或
print(not True) # False 非
避坑指南:我曾经在条件判断里把 == 写成了 =,结果不是比较而是赋值了。Python里不会报错,但逻辑完全错了。这种bug特别难查,我那次花了半小时才找到。所以写条件判断时,一定检查等号个数。
3.8 程序类型转换——让不同类型的数据能合作
有时候你需要把数据从一种类型转成另一种。Python提供了几个内置函数:
# 转整数
int("123") # 123
int(3.14) # 3 (直接截断,不四舍五入)
int(True) # 1
# 转浮点数
float("3.14") # 3.14
float(10) # 10.0
# 转字符串
str(123) # "123"
str(3.14) # "3.14"
str(True) # "True"
# 转布尔值
bool(0) # False
bool(1) # True
bool("") # False
bool("abc") # True
为什么会这样?因为Python里有一个「真值」的概念。数字0、空字符串、空列表、None等,转成布尔值都是False。其他都是True。
嗯,这里要注意:不是所有转换都能成功。比如 int("abc") 就会报错。所以做类型转换时,最好确认数据格式是对的。
总结一下:这一章我们讲了注释怎么写、变量怎么用、Python有哪些基础数据类型、起名字的规矩、怎么输入输出、运算符怎么用、以及类型怎么转换。这些都是最基础的东西,但也是你以后写每一行代码都会用到的。别急,慢慢消化。下一章我们开始讲流程控制——if判断和循环,那才是真正让程序「活」起来的东西。