1 什么是python
是什么?为什么学?
程序(program)就是写给电脑的一组指令——告诉电脑先做什么、再做什么。Python是其中一种「编程语言」,就像英语、中文是人与人交流的语言一样,Python 是人和电脑交流的语言。
为什么零基础要先懂这个?因为如果你连「代码是怎么被执行的」都没概念,后面遇到报错会完全懵掉。先建立这幅地图,之后每一步都能知道自己在哪。
底层原理
电脑本身只认识一种语言:机器语言(一串 0 和 1)。人直接写 0 和 1 又慢又容易错,所以人类发明了 Python 这种「人类友好」的语言。你写的 Python 代码会被一个叫解释器(interpreter)的程序逐行翻译成电脑能执行的指令。
术语小词典:解释器就是一个「翻译官」,它坐在你的代码和电脑之间,把 Python 代码一句一句翻译给电脑听。
# 我的第一个程序:hello.py
print("你好,世界!") # ① 让程序开口说话
print("我在学 Python") # ② 再说第二句话
运行结果:
你好,世界!
我在学 Python
逐行讲解:
- 第 1 行:
#开头是注释,写给人类看的,电脑完全忽略。 - 第 2 行:
print(...)让程序在屏幕上显示内容,括号里是「要显示的话」。 - 第 3 行:和上一行一样,程序会从上往下依次执行每一行。
易错点
- 错误写法:把代码随便写在记事本里,扩展名存成
.txt→ 问题:解释器找不到、运行不了 → 正确写法:文件名必须以.py结尾,如hello.py。 - 错误写法:只写一行代码就去运行 → 问题:体会不到程序「按顺序执行」的特点 → 正确写法:至少写两三行再运行,感受从上到下的执行顺序。
- 错误写法:以为报错是电脑「坏了」 → 问题:不敢动手 → 正确写法:报错是常态,Python 会告诉你错在哪一行,照着提示改就行。
记忆口诀:程序是指令,Python 是语言,解释器是翻译官,从上往下照着干。
2 print()
print() 是 Python 内置的输出函数,作用是「把内容显示到屏幕上」。它是你学的第一个「动作」,也是之后调试程序的必备技能——程序出问题时,用 print() 打印中间结果,就能看到程序内部发生了什么。
底层原理
print() 本质是把括号里的内容送到一个叫标准输出(standard output)的地方——通常就是你的终端窗口。print 后面那对括号是「调用函数」的标志:print 是函数名,括号里是参数(要打印的内容)。
术语小词典:函数(function)就是「一段提前写好的、有名字的代码」,你喊它的名字它就去干活。参数(argument)就是「递给函数的材料」。
生活类比
print() 就像对着对讲机喊话:你按下按钮(运行到这行代码),说的话(括号里的内容)就会传到喇叭(屏幕)上被大家听到。喊几句话,喇叭就播几句话,顺序就是你喊的顺序。
注意事项总结
1 引号:打印文字和数字时 引号只属于「字符串」这种类型,数字不需要引号。
2 逗号:逗号把多个内容分开,Python 会在每个内容之间自动加一个空格再打印。
3 单引号、双引号:单引号、双引号都能包字符串,但不能「单引号开头、双引号结尾」混着用
4 转义字符:\n 和 \t 都是转义字符——以反斜杠 \ 开头、有特殊含义的字符组合。转义字符虽然写在引号里,但输出时不会显示成 \n 这两个字符,而是真的换行、跳格。 \n 换行(newline),\t 制表符(Tab)表示跳一个 Tab 位
术语小词典:转义字符(escape character)就是「披着普通外衣、干着特殊事」的字符组合。
易错点
- 错误写法:
print("你好)→ 问题:引号没成对,报SyntaxError(语法错误) → 正确写法:print("你好"),引号必须配对。 - 错误写法:
print(hello)想打印 hello 这个词 → 问题:Python 以为 hello 是变量,报NameError→ 正确写法:print("hello"),文本必须加引号。 - 错误写法:
print("他说:"你好"")→ 问题:引号嵌套导致语法错误 → 正确写法:外层用单引号:print('他说:"你好"')。 - 错误写法:
print("5")却想拿它做计算 → 问题:"5"是文本不是数字,不能参与数学运算 → 正确写法:print(5)不带引号才是数字。
记忆口诀:print 带括号,内容往里放;文本要引号,数字不用装;逗号分开打,空格自动加。
3 注释
是什么?为什么学
注释(comment)是以 # 开头的说明文字,电脑不会执行它,纯粹写给人类看。为什么学?因为代码既是写给电脑的,也是写给人的——三个月后的你(以及你的队友)要靠注释快速看懂代码在干嘛。会写注释,是从「能跑的代码」走向「好代码」的第一步。
底层原理
Python 解释器读到 # 时,会跳过这一行中 # 之后的所有内容,直接看下一行。所以注释想写多长、写什么都可以,完全不影响程序运行。注释不是「功能」,而是「说明书」。
生活类比
注释就像课本上的批注:正文(代码)是要考核的内容,批注(注释)是你写来帮助自己理解的。考试(运行程序)只看正文,批注不会额外加分;但没有批注,复习(读代码)时你会抓狂。
如何注释
单行注释用# 多行注释用"""(三引号)
易错点
- 错误写法:把注释写在引号里面:
print("# 这不是注释")→ 问题:#在字符串里就是普通字符,会被原样打印出来 → 正确写法:#必须写在引号外面。 - 错误写法:注释和代码挤在一行且
#前没有空格:print("hi")#注释→ 问题:能运行,但可读性差 → 正确写法:print("hi") # 注释,#前至少留一个空格。 - 错误写法:整个文件不写任何注释 → 问题:一个月后自己都看不懂 → 正确写法:关键步骤、难懂的地方随手加注释。
记忆口诀:井号开头是注释,机器跳过你别忘;写给未来的自己,关键地方留一行。
4 变量
这是什么?为什么学
变量(variable)就是给数据起的「名字」。程序里数据很多,每次都写一遍太麻烦,而且后面还要反复用——给数据起个名字,之后喊名字就能用数据。为什么零基础必学?因为几乎所有的程序都在做同一件事:存数据 → 算数据 → 用数据,变量就是「存数据」的基础设施。
底层原理
当你写 age = 18 时,Python 在内存(电脑的临时仓库)里找一块地方存下 18,然后让名字 age 指向它。之后你写 age,Python 就去内存里找 18 来用。变量可以重新赋值:age = 19 之后,age 就指向新的 19,旧数据被「替换」掉。
术语小词典:内存(memory)是电脑运行时临时存放数据的地方,程序结束后数据就清空了(所以程序重启后变量会「失忆」)。
生活类比
变量像宿舍楼的储物柜:每个柜子有编号(变量名),柜子里放着你的东西(数据)。你要拿东西不用把柜子搬走,只需要报编号。换东西(重新赋值)也简单——打开柜子,把旧东西拿出来、放新东西进去,编号不变。
注意事项总结
1 定义变量并打印: age = 18 术语叫 赋值 用 = 把=右边的数据交给左边的名字, print(age)「喊名字拿数据」,print 打印的是变量里存的值,不是变量名本身。
2 变量可以参与计算:
a = 1
b = 2
total = a * b
total = a * b 这行会先算出 1 * 2 = 2,再把结果 2 存进 total。赋值 = 的规则是:先算右边,再存左边。
3 变量可以重新赋值:
a = 1
print(a)
a = 2
print(a)
a = 2 把旧值 1 覆盖掉,此后 a 代表的就是 2。注意打印时不带引号——如果写 print("a"),打印出来的是字母 a 本身,而不是它的值。
4 变量合法与不合法:
合法变量 1.只能由字母(a-z A-Z)、数字(0-9)、下划线(_)组成 2.不能以数字开头 3.不能是 Python 关键字 4.区分大小写(Age 和 age 是两个不同变量)
不合法变量
1var = 5 # 以数字开头 → SyntaxError: invalid decimal literal
my-var = 5 # 连字符 - 不允许
my var = 5 # 空格不允许
class = 5 # class 是关键字
if = 5 # if 是关键字
python全部关键字
False None True and as assert async await break
class continue def del elif else except finally for
from global if import in is lambda nonlocal not or
pass raise return try while with yield
补充:match、case 是 3.10+ 的软关键字,可以当变量名用(但建议也别用,容易混淆)。
快速记忆口诀
字母下划线开头,数字不能放最前;中间只能字母数线(数字/下划线),关键字名不能占。
易错点
- 错误写法:
1name = "小明"→ 问题:数字开头,报SyntaxError→ 正确写法:name1 = "小明",名字只能以字母或下划线开头。 - 错误写法:
my-name = "小明"→ 问题:减号被当成运算符,报语法错误 → 正确写法:my_name = "小明",用下划线连接单词。 - 错误写法:
if = 10→ 问题:if是 Python 关键字,被系统占用 → 正确写法:换个名字,如if_score = 10。 - 错误写法:
print(score)但前面从没定义过 score → 问题:报NameError: name 'score' is not defined→ 正确写法:先执行score = 80赋值,再打印。
记忆口诀:变量像柜子,名字贴标签;先算右边值,再存左边名;打印不带引号,否则打出的是名字本身。
5 布尔类型
这是什么?为什么学
布尔类型(bool)只有两个值:True(真)和 False(假),用来表达「是/否、对/错」这样的判断结果。为什么现在就要懂?因为程序里到处都在做判断——「年龄够不够 18」「分数及不及格」,这些判断的结果都是布尔值。它虽然简单,却是后面学 if 条件判断的地基。
底层原理
Python 里的 True 和 False 是两个特殊值,分别对应「真」和「假」。用 bool() 可以把其他数据转成布尔值:数字 0 是 False,非 0 是 True;空字符串 "" 是 False,非空是 True。比较运算(如 >、<、==)的结果也是布尔值。
术语小词典:比较运算就是「比大小、判相等」,结果只会是
True或False。
生活类比
布尔类型就像灯的开关:只有开(True)和关(False)两种状态,没有第三种。程序里需要「是或否」的时候,就会用到这个开关。
注意事项总结
1 布尔值只有 True 和 False:布尔值 True / False 首字母必须大写,不能写成 true 或 false,否则 Python 会把它当成变量名,报 NameError。
2 比较运算的结果是布尔值:
age = 18
print(age > 16) # 18 大于 16,是 → True
print(age < 16) # 18 小于 16,否 → False
print(age == 18) # 相等用两个等号 ==
> 大于、< 小于、== 判断是否相等,结果都是布尔值。注意判断相等是**两个等号 ==**,一个等号 = 是赋值,两者千万别混。
3 用 bool() 把其他数据转成布尔值:
print(bool(0)) # 0 → False
print(bool(1)) # 非 0 → True
print(bool("")) # 空字符串 → False
print(bool("你好")) # 非空字符串 → True
转换规则一句话记:「空」是 False,「不空」是 True。数字 0、空字符串等都是 False,其余基本都是 True。
易错点
- 错误写法:
is_student = true→ 问题:true首字母没大写,被当成变量名,报NameError→ 正确写法:is_student = True,True/False首字母必须大写。 - 错误写法:
print(age = 18)想判断 age 是否等于 18 → 问题:=是赋值不是比较,会报语法错误 → 正确写法:print(age == 18),判断相等用两个等号。 - 错误写法:
print(bool(" "))以为空格是 False → 问题:空格算「非空」,结果是True→ 正确写法:只有真正的空字符串""才是False。 - 错误写法:用 1 和 0 代替 True 和 False → 问题:能运行但不直观,可读性差 → 正确写法:判断类变量直接用
True/False。
记忆口诀:布尔只有两个值,True 真来 False 假;首字母要大写,比较运算出真假;判断相等双等号,赋值单等别搞混。
今日总结
程序是写给电脑的指令,Python 是编程语言,解释器负责翻译执行
print() 能打印文字和数字,多个内容用逗号分隔会自动加空格
字符串必须加引号且成对出现;\n 换行、\t 制表符
注释用 # 开头,不会执行,是写给未来自己看的
变量 = 给数据起名字,命名要规范(字母/数字/下划线,不能数字开头)
赋值规则:先算右边,再存左边;变量可以随时重新赋值
布尔只有两个值,True 真来 False 假;首字母要大写
比较运算出真假;判断相等双等号,赋值单等别搞混。
| 报错 | 原因 | 修复 |
|---|---|---|
SyntaxError | 语法错误,括号/引号/缩进不配对 | 检查配对 |
NameError | 变量名拼写错误或没定义 | 检查名字 |
TypeError | 类型不匹配(Day 2 细讲) | 先了解即可 |