第3章 Python基础知识:从零开始写第一行代码

好,咱们正式开始写Python代码了。这一章我会带你过一遍Python最基础的东西——注释、变量、数据类型这些。别小看这些基础,我见过太多项目出bug,最后发现都是基础没打牢。

3.1 注释:给代码加个说明书

注释这东西,说白了就是写给人类看的说明。Python解释器会直接忽略它。我个人习惯在写复杂逻辑前,先写注释理清思路。

Python里注释有两种写法:

# 这是单行注释,我常用它来解释某一行代码
print("Hello")  # 也可以写在代码后面

"""
这是多行注释
用三个引号包起来
适合写大段的说明
"""

我的经验:在团队项目里,注释比代码本身还重要。我曾经接手过一个项目,代码写得贼漂亮,但一句注释都没有。嗯,那两周我过得相当痛苦。

3.2 变量与数据类型

变量就是给数据起个名字。Python里不需要声明类型,直接赋值就行。你想想看,这比C语言省了多少事。

name = "小明"      # 字符串
age = 25           # 整数
height = 1.75      # 浮点数
is_student = True  # 布尔值

Python常用的数据类型就这几种:

类型 例子 说明
int 10, -5, 0 整数,没有小数点
float 3.14, -0.5 浮点数,带小数点
str "Hello", 'Python' 字符串,用引号包着
bool True, False 布尔值,注意首字母大写
list [1, 2, 3] 列表,用方括号
dict {"key": "value"} 字典,键值对

注意:Python是动态类型语言,变量的类型可以随时改变。但我不建议你这么做——我在项目中遇到过有人把变量从数字改成字符串,结果后面代码全崩了。

3.3 标识符和关键字

标识符就是你给变量、函数起的名字。规则很简单:字母、数字、下划线,但不能以数字开头。也不能用Python保留的关键字。

Python的关键字有哪些?我常用的就这几个:

# 这些名字你不能用
# False, True, None, if, else, for, while, def, class, return, import

# 正确的命名方式
my_name = "张三"      # 下划线命名法
userAge = 25          # 驼峰命名法
name2 = "李四"        # 可以带数字

避坑指南:我曾经犯过一个低级错误——用type做变量名。结果后面想用type()函数检查数据类型时,发现它已经被我覆盖了。嗯,调试了半小时才找到原因。

3.4 输入和输出函数

写程序总要和人交互吧?input()print()就是干这个的。

# 输出
print("Hello World")           # 打印字符串
print("年龄:", 25)             # 可以打印多个值
print("数字是", 10, sep="")    # 用sep去掉空格

# 输入
name = input("请输入你的名字: ")  # 输入的内容永远是字符串
age = int(input("请输入年龄: "))  # 需要手动转成整数

为什么会这样?因为input()返回的一律是字符串。你要做数学运算,就得自己转类型。我刚开始学的时候,经常忘记这茬,结果字符串和数字相加报错。

3.5 运算符

运算符就是做各种运算的符号。Python的运算符挺全的:

# 算术运算符
a = 10 + 5    # 加法
b = 10 - 5    # 减法
c = 10 * 5    # 乘法
d = 10 / 3    # 除法,结果是3.333...
e = 10 // 3   # 整除,结果是3
f = 10 % 3    # 取余,结果是1
g = 2 ** 3    # 幂运算,结果是8

# 比较运算符
print(10 > 5)   # True
print(10 == 5)  # False
print(10 != 5)  # True

# 逻辑运算符
print(True and False)  # False
print(True or False)   # True
print(not True)        # False

我的习惯:写条件判断时,我总喜欢加括号明确优先级。比如(a > 5) and (b < 10),这样别人看代码也清楚。

3.6 类型转换

类型转换就是把一种数据类型变成另一种。说白了,就是让Python按你想要的方式理解数据。

# 字符串转数字
num_str = "123"
num_int = int(num_str)      # 变成整数123
num_float = float(num_str)  # 变成浮点数123.0

# 数字转字符串
age = 25
age_str = str(age)          # 变成"25"

# 转布尔值
print(bool(0))     # False
print(bool(1))     # True
print(bool(""))    # False
print(bool("abc")) # True

注意:不是所有字符串都能转数字。int("abc")会直接报错。我在项目中处理用户输入时,都会先做校验再转换。

3.7 避坑总结

这一章的内容看着简单,但坑不少。我总结几个常见的:

  • 变量命名:别用关键字,别用中文(虽然Python3支持,但团队规范一般不允许)
  • 类型转换:字符串转数字前,先确认它是不是合法的数字格式
  • 除法结果:Python3里/永远是浮点数,想要整数用//
  • 布尔值:首字母大写,TrueFalse,不是truefalse

好了,这一章就到这。下一章咱们会讲流程控制——if判断和循环。到时候我会教你如何用这些基础知识写出真正的逻辑判断代码。