3、Python基础知识:注释、变量以及数据类型、标识符和关键字、输入函数、输出函数、运算符、程序类型转换
各位同学,欢迎来到第三章。
说实话,每次带新人入门,我都觉得这一章是最关键的。为什么?因为这是你写代码的「地基」。地基没打好,后面盖什么楼都晃悠。今天咱们就把这些基础概念一个一个掰扯清楚。
本章核心脉络: 从「怎么跟代码说话」到「怎么让代码跟你说话」,再到「怎么让代码自己算账」。说白了,就是让你和Python之间建立一套顺畅的沟通机制。
3.1 注释:给代码写「说明书」
我刚开始写代码那会儿,有个坏毛病——不爱写注释。总觉得「这代码我写的,我还能看不懂?」结果两周后回来看自己的代码,愣是盯了半天没反应过来当初想干嘛。嗯,从那以后我就老实了。
注释说白了就是代码里的「便签纸」。Python解释器看到注释直接跳过,根本不执行。它只服务于一个对象——人。
Python里注释分两种:
- 单行注释: 用
#开头,后面跟你想说的话 - 多行注释: 用三个单引号
'''或三个双引号"""包裹
# 这是单行注释,我习惯在代码逻辑复杂的地方加一句
print("Hello, World!") # 也可以跟在代码后面
'''
这是多行注释
通常用来写函数说明
或者暂时屏蔽一大段代码
'''
print("这行会执行")
我的小习惯: 每个函数开头都写一段多行注释,说明这个函数干什么、参数是什么、返回什么。相信我,三个月后的你会感谢现在的自己。
3.2 变量与数据类型:给数据贴标签
变量是什么?你可以把它想象成一个「带标签的盒子」。你把数据放进去,然后在盒子上贴个名字。以后想用这个数据,直接喊名字就行。
name = "小明" # 字符串
age = 18 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
Python是动态类型语言——你不需要提前声明「这个变量是整数还是字符串」。解释器自己会判断。但注意,这不代表你可以乱来。
常见的数据类型有这些:
| 类型 | 名称 | 示例 | 说明 |
|---|---|---|---|
| int | 整数 | 10, -5, 0 |
没有小数点的数字 |
| float | 浮点数 | 3.14, -0.5 |
带小数点的数字 |
| str | 字符串 | "你好", 'Python' |
用引号括起来的文本 |
| bool | 布尔值 | True, False |
只有两个值:真或假 |
| list | 列表 | [1, 2, 3] |
有序的可变集合 |
| dict | 字典 | {"name": "小明"} |
键值对存储 |
我曾经踩过的坑: 在Python里,type() 函数可以查看变量类型。我早期调试时经常用它来确认「这个变量到底是什么东西」。比如 print(type(age)) 会输出 <class 'int'>。
3.3 标识符和关键字:起名字的规矩
标识符就是你给变量、函数、类起的名字。Python对起名字有要求,说白了就是「规矩」:
- 只能包含字母、数字、下划线
- 不能以数字开头
- 不能跟Python关键字重名
- 区分大小写(
Name和name是两个东西)
那什么是关键字?就是Python自己「霸占」的词,你不能拿来当变量名。比如 if、for、while、True、False、None 等等。
# 合法的标识符
my_name = "张三"
age2 = 25
_total = 100
# 不合法的标识符
# 2name = "李四" # 数字开头,报错!
# if = 10 # 关键字,报错!
# my-name = "王五" # 有连字符,报错!
我的命名习惯: 变量名用下划线分隔(snake_case),比如 user_name。类名用大驼峰(PascalCase),比如 UserInfo。团队协作时,统一的命名规范比代码本身还重要。
3.4 输入函数 input():让程序「听」你说话
你想想看,如果程序只能输出不能输入,那跟个广播喇叭有什么区别?input() 就是让程序能「听」你说话的函数。
name = input("请输入你的名字:")
print("你好," + name + "!")
运行这段代码,程序会停下来等你打字。你输入的内容会以字符串的形式存到变量里。注意,是字符串!哪怕你输入的是数字,它也是字符串。
我曾经犯过的错: 写计算器程序时,直接用 input() 拿到的数字做加法,结果变成了字符串拼接——"5" + "3" 得到 "53" 而不是 8。所以记住,需要数字的时候,记得用 int() 或 float() 转换一下。
3.5 输出函数 print():让程序「说」给你听
print() 是Python里最常用的函数,没有之一。它的作用就是把内容显示在屏幕上。
print("Hello, World!") # 输出字符串
print(42) # 输出数字
print(3.14) # 输出浮点数
print("年龄:", 18) # 输出多个值,自动加空格
print("Hello", "World", sep="-") # 指定分隔符
print("第一行", end="") # 不换行
print("接着输出")
这里有个小细节——sep 参数控制多个值之间的分隔符,默认是空格。end 参数控制结尾字符,默认是换行符 \n。
3.6 运算符:让数据「动」起来
运算符就是让数据之间产生「关系」的符号。Python的运算符分几大类:
算术运算符
| 运算符 | 含义 | 示例 | 结果 |
|---|---|---|---|
| + | 加 | 5 + 3 | 8 |
| - | 减 | 5 - 3 | 2 |
| * | 乘 | 5 * 3 | 15 |
| / | 除 | 5 / 3 | 1.666... |
| // | 整除 | 5 // 3 | 1 |
| % | 取余 | 5 % 3 | 2 |
| ** | 幂运算 | 5 ** 3 | 125 |
比较运算符
比较的结果是布尔值(True或False)。说白了就是「是或不是」。
print(5 > 3) # True
print(5 == 3) # False(注意是两个等号)
print(5 != 3) # True
print(5 >= 5) # True
逻辑运算符
逻辑运算符用来组合多个条件:
and:两边都真才真(「并且」)or:一边为真就真(「或者」)not:取反(「不是」)
age = 20
print(age > 18 and age < 60) # True(既成年又没退休)
print(age < 18 or age > 60) # False(既不是未成年也不是退休)
print(not age > 18) # False(取反)
我常用的技巧: 写条件判断时,把最可能为False的条件放 and 前面,最可能为True的条件放 or 前面。这叫「短路求值」,能提升一点点性能。
3.7 程序类型转换:让数据「变形」
类型转换,说白了就是把一种数据类型变成另一种。Python里分两种:
- 隐式转换: Python自动帮你转。比如整数和浮点数运算时,整数会自动转成浮点数。
- 显式转换: 你手动调用函数去转。比如
int()、float()、str()。
# 隐式转换
result = 10 + 3.14 # 10自动转成10.0,结果是13.14
# 显式转换
num_str = "123"
num_int = int(num_str) # 字符串转整数
num_float = float(num_str) # 字符串转浮点数
text = str(456) # 整数转字符串
print(num_int + 10) # 133
print(text + "abc") # "456abc"
我曾经踩过的坑: 用 int() 转换 "3.14" 会报错!因为字符串里带小数点,不能直接转整数。得先转 float() 再转 int()。还有,转 "abc" 成整数也会报错——不是所有字符串都能转数字。
好了,这一章的内容就到这里。这些基础概念看着简单,但每一个都是你后面写复杂程序的「砖瓦」。别急,慢慢来,多动手敲几遍代码,比看十遍书都管用。