第3章:Python基础知识——从零开始搭积木
说实话,每次带新人入门Python,我都会先讲这一章。为什么?因为这是地基。地基没打好,后面写再漂亮的代码也容易塌。我自己刚学Python那会儿,就吃过变量命名的亏——用了关键字当变量名,结果程序直接报错,找了半天才发现问题。嗯,咱们今天就把这些基础打扎实。
3.1 注释——给代码写说明书
注释这东西,说白了就是写给人类看的,不是给机器看的。Python解释器会直接忽略它。我个人的习惯是:写代码前先写注释,理清思路再动手。
Python里注释有两种写法:
- 单行注释:用
#开头,后面跟注释内容 - 多行注释:用三个单引号
'''或三个双引号"""包裹
# 这是一个单行注释
print("Hello, World!") # 也可以写在代码后面
'''
这是一个多行注释
可以写好几行
适合写函数说明
"""
我的小技巧:注释不是越多越好。好的代码本身就像注释一样清晰。我一般只在「为什么这么做」的地方加注释,而不是「做了什么」——因为代码自己会告诉你它做了什么。
3.2 变量与数据类型——给数据贴标签
变量是什么?你可以把它想象成一个带标签的盒子。你把数据放进去,贴上名字,以后想用的时候喊这个名字就行。
Python里不需要提前声明类型,直接赋值就完事了。这跟C语言、Java不一样,刚开始可能会不习惯,但用久了你会爱上这种自由。
name = "小明" # 字符串
age = 25 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
Python常见的数据类型有这些:
| 类型 | 名称 | 例子 |
|---|---|---|
| int | 整数 | 10, -5, 0 |
| float | 浮点数 | 3.14, -0.5, 1.0 |
| str | 字符串 | "你好", 'Python' |
| bool | 布尔值 | True, False |
| list | 列表 | [1, 2, 3] |
| dict | 字典 | {"name": "小明"} |
我曾经踩过的坑:Python里变量名区分大小写!name 和 Name 是两个完全不同的变量。有一次我写了个大项目,变量名混用大小写,调试到凌晨三点才找到bug。从那以后,我强制自己全部用小写加下划线。
3.3 标识符与关键字——起名字的规矩
标识符就是你给变量、函数、类起的名字。Python对名字有要求:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能是Python的关键字
- 区分大小写
那什么是关键字?就是Python自己保留的词,你不能拿来当变量名。比如 if、for、while、class 这些。
# 合法的标识符
my_name = "张三"
age_2024 = 30
_temp = 36.5
# 非法的标识符
# 123abc = "错误" # 数字开头
# my-name = "错误" # 不能有连字符
# if = "错误" # 关键字
我建议:变量名要见名知意。别用 a、b、c 这种,三个月后你自己都看不懂。用 user_name、total_price 这种,读代码就像读文章。
3.4 输入与输出——和程序对话
程序不是关起门来自己玩的,它需要跟人交互。输入函数 input() 和输出函数 print() 就是干这个的。
name = input("请输入你的名字:")
print("你好," + name + "!")
这里有个坑要注意:input() 返回的永远是字符串!哪怕你输入的是数字,它也是字符串。我刚开始学的时候就被这个坑过——想算加法,结果变成了字符串拼接。
age = input("请输入年龄:")
print(age + 1) # 报错!字符串不能和数字相加
那怎么办?用类型转换。
3.5 类型转换——让数据变个样
Python提供了几个内置函数来做类型转换:
int()— 转成整数float()— 转成浮点数str()— 转成字符串bool()— 转成布尔值
age_str = "25"
age_int = int(age_str) # 字符串"25"变成整数25
print(age_int + 1) # 输出26,没问题了
price = "19.99"
price_float = float(price) # 转成浮点数
print(price_float * 2) # 39.98
注意:不是所有字符串都能转成数字。int("abc") 会报错。所以做类型转换前,最好先确认数据格式对不对。我在做数据清洗时经常遇到这种问题——用户输入了乱七八糟的内容,程序直接崩了。
3.6 运算符——让数据动起来
运算符就是用来操作数据的符号。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 10的3次方
比较运算符:结果永远是布尔值
print(5 > 3) # True
print(5 == 3) # False 注意是两个等号!
print(5 != 3) # True
逻辑运算符:and、or、not
age = 20
has_id = True
print(age >= 18 and has_id) # True 两个条件都满足
print(age < 18 or has_id) # True 至少一个满足
print(not has_id) # False 取反
我常用的技巧:写条件判断时,把常量放左边。比如 if 18 <= age: 而不是 if age >= 18:。为什么?因为如果你手滑写成 if age = 18:(少写一个等号),Python不会报错,但逻辑就错了。常量放左边的话,if 18 = age: 会直接报语法错误,帮你提前发现bug。
3.7 知识体系总览
下面这张图把本章的知识点串起来了。你看,所有内容都围绕着「数据」这个核心——怎么存(变量)、怎么描述(数据类型)、怎么命名(标识符)、怎么交互(输入输出)、怎么运算(运算符)、怎么转换(类型转换)。
好了,这一章的内容就这些。别看知识点多,其实核心就一句话:数据怎么存、怎么取、怎么算、怎么转。把这些搞明白了,后面写代码就会顺手很多。