第三章 Python基础知识:从零开始搭积木
各位同学,欢迎来到Python基础知识的环节。说实话,这一章的内容看起来有点琐碎,但它们是构建一切程序的基石。我个人习惯把这一章比作「搭积木前的认零件」——你得知道每块积木叫什么、能怎么拼,后面才能搭出漂亮的大楼。
3.1 注释:写给未来的自己看
注释这东西,说白了就是代码里的「便签纸」。Python解释器看到注释会直接跳过,不会执行。但你别小看它,我见过太多项目,几个月后连原作者都看不懂自己写的代码。
注释的两种写法:
# 这是单行注释,井号后面都是注释内容
print("Hello, World!") # 也可以写在代码后面
"""
这是多行注释
用三个引号包起来
可以写很多行说明
"""
我的小建议:写注释时别写「废话」。比如 # 打印Hello 这种注释,看代码就知道的事,写了等于没写。要写「为什么这么做」,而不是「做了什么」。
我曾经接手过一个项目,里面全是 # 这里加1 这种注释。你想想看,加1谁不知道?关键是为什么加1?后来我花了整整两天才理清逻辑。嗯,从那以后我写注释都带着「为什么」。
3.2 变量与数据类型:给数据贴标签
变量是什么?就是给数据起个名字。Python里不需要提前声明类型,直接赋值就行。这很灵活,但也容易踩坑。
name = "小明" # 字符串类型
age = 18 # 整数类型
height = 1.75 # 浮点数类型
is_student = True # 布尔类型
Python的数据类型主要有这么几种:
| 类型 | 例子 | 说明 |
|---|---|---|
| int | 10, -5, 0 | 整数,没有小数点 |
| float | 3.14, -0.5 | 浮点数,带小数点 |
| str | "Hello", 'Python' | 字符串,用引号包着 |
| bool | True, False | 布尔值,注意首字母大写 |
| NoneType | None | 空值,表示「什么都没有」 |
注意:Python是动态类型语言,变量可以随时改变类型。比如 x = 10 之后,你还可以写 x = "hello"。这在某些场景下很方便,但也容易让代码变得混乱。我个人建议:一个变量尽量只存一种类型的数据。
3.3 标识符和关键字:起名字的规矩
标识符就是变量名、函数名这些名字。Python对起名字有要求:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能是Python的关键字
- 区分大小写(name和Name是两个变量)
那什么是关键字?就是Python自己保留的词,你不能拿来当变量名。比如 if、for、while 这些。
# 合法的标识符
my_name = "张三"
age_2024 = 25
_temp = 36.5
# 不合法的标识符
# 2name = "李四" # 数字开头,报错
# my-name = "王五" # 有连字符,报错
# if = 10 # 关键字,报错
我的命名习惯:变量名用下划线分隔单词(snake_case),比如 user_name、total_score。类名用大驼峰(CamelCase),比如 StudentInfo。保持统一,团队协作时特别重要。
3.4 输入与输出:和程序对话
输入用 input(),输出用 print()。这两个函数你以后天天都会用。
name = input("请输入你的名字:")
print("你好," + name + "!")
这里有个坑:input() 返回的永远是字符串。哪怕你输入的是数字,它也是字符串类型。我刚开始学的时候就被这个坑过——
我曾经犯过的错:写了一个计算年龄的程序,直接用 input() 拿到的数字去做加法,结果变成了字符串拼接。比如输入18,输出变成了「你明年19岁」?不,输出是「你明年181岁」。因为字符串拼接把18和1拼成了181。
解决办法?用 int() 或 float() 转换一下:
age = int(input("请输入你的年龄:"))
print("明年你" + str(age + 1) + "岁了")
3.5 运算符:做计算的工具
运算符分几大类,我列个表给你看:
| 类型 | 运算符 | 例子 | 结果 |
|---|---|---|---|
| 算术 | + - * / // % ** | 10 // 3 | 3(整除) |
| 比较 | == != > < >= <= | 5 > 3 | True |
| 逻辑 | and or not | True and False | False |
| 赋值 | = += -= *= /= | x += 1 | 等价于 x = x + 1 |
这里有个容易混淆的地方:/ 和 // 的区别。前者是普通除法,结果是浮点数;后者是整除,只保留整数部分。
print(10 / 3) # 输出 3.3333333333333335
print(10 // 3) # 输出 3
print(10 % 3) # 输出 1(取余数)
实际项目中的应用:判断一个数是不是偶数,用 num % 2 == 0。判断年份是不是闰年,用 year % 4 == 0 and year % 100 != 0。这些写法我在项目中用了无数次。
3.6 类型转换:让数据变个样
Python里类型转换分两种:隐式转换和显式转换。
隐式转换是Python自动帮你做的。比如整数和浮点数做运算时,整数会自动转成浮点数:
result = 10 + 3.14 # 10自动转成10.0,结果是13.14
显式转换是你主动用函数去转。常用的有:
int(x):转成整数float(x):转成浮点数str(x):转成字符串bool(x):转成布尔值
# 字符串转数字
price = "19.9"
price_float = float(price) # 变成19.9
# 数字转字符串
count = 100
message = "总共" + str(count) + "个" # 字符串拼接必须转
# 布尔转换的坑
print(bool(0)) # False
print(bool("")) # False
print(bool([])) # False
print(bool(1)) # True
print(bool("abc")) # True
特别注意:不是所有字符串都能转成数字。int("hello") 会报错。所以做转换前最好先确认数据格式。我在项目中常用 try...except 来捕获这种错误,后面章节会详细讲。
3.7 避坑指南:新手最容易犯的错
最后,我总结几个我见过最多的坑:
- 变量名拼写错误——Python区分大小写,
Name和name是两个变量。我曾经调试了半小时,结果发现是大小写写错了。 - 忘记类型转换——
input()返回字符串,直接做数学运算会出问题。 - 除零错误——任何数除以0都会报错,写代码时记得检查除数。
- 布尔值大小写——Python里是
True和False,不是true和false。 - 字符串拼接和数字相加搞混——
"5" + 3会报错,因为类型不同不能直接拼接。
好了,这一章的内容就到这里。说实话,这些基础知识看起来简单,但越是基础的东西越容易出错。你想想看,盖房子地基没打好,后面装修得再漂亮也没用。所以,多动手敲代码,把这些概念变成肌肉记忆,后面学起来就轻松多了。