运算符和语句

运算符

运算符(Operator,听起来很专业,其实你小学一年级就见过了,用最通俗的话说:运算符就是告诉电脑对数据“做什么动作”的符号。

  • 数据(数字、文字)是“名词”(比如:苹果、我、100 块钱)。
  • 运算符 就是“动词”(比如:加、减、对比、给)。

想象你在玩一个游戏:

  1. 算术运算符:帮你计算打怪掉了多少血(血量 - 攻击力)。
  2. 比较运算符:判断你挂了没(血量 <= 0?)。
  3. 逻辑运算符:判断能不能放必杀技(怒气满了 && 技能没冷却)。
  4. 赋值运算符:当你升级了,系统把你的等级改写(等级 = 等级 + 1)。

为了让你彻底明白,接下来我把最常用的几种运算符拆开来讲,配合生活中的栗子!

算术运算符

数学老师教的,这是最简单的,就是加减乘除,用来算数的。

  • + (加):你需要买两个苹果。1 + 1
  • - (减):你有 10 块钱,花了 3 块。10 - 3
  • * (乘):编程中乘号通常是星号 *2 * 5
  • / (除):编程中除号通常是斜杠 /10 / 2
  • % (取余):也叫“取模”,用于计算除法的余数,如7 % 3 的结果是 1

比较运算符

这个运算符是做裁判用的,这用来比较两个东西,结果只有两种:对(True) 或者 错(False)。就像是在问电脑问题。

  • > (大于)10 > 5 → 电脑回答:
  • < (小于)3 < 1 → 电脑回答:
  • >= (大于等于):想买个价是 200 元游戏,兜里有 200 够吗?我的钱 >= 200
  • == (等于):用来判断两边是否一样。你的密码 == 正确密码 → 若一样就让你登录。
  • != (不等于):感叹号代表“不”。你选的答案 != 正确答案 → 答错了。

赋值运算符

赋值运算符 = 是新手最容易晕的地方,我们把这个运算符的作用比拟为:贴标签/装箱子。

注意,这里的一个等号,不是数学里的“相等”,而是“给”的意思,如下意思是把 100 这个数字,放进 一个叫 score 的盒子里。或者说,把 score 设定为 100

score=100

逻辑运算符

生活中的决定通常不只一个条件,逻辑运算符就是把多个条件连起来,即用于做复杂的决定。

  • and (并且)两个条件都要满足才行。 例子: 找对象要求 长得帅 and 有钱。如果你只有钱但不帅,结果就是
  • or (或者)只要满足其中一个条件就行。例子: 周末去玩,去公园 or 去看电影。 只要干了其中一件事,这就过了。
  • not (非 )唱反调例子: not 下雨 (非下雨 = 没下雨)。

来个示例代码

a_age = 19
b_age = 21

if  a_age>18 and b_age>18 :
   print("两人都已成年,可以开工!")
提示

Python 的逻辑运算符和其它大部分语言都不一样,它们不再是诸如 && ||,而是一个个单词来表示,比如 and or。这样更接近自然语言!

语句

如果在 Python 里写代码是搭积木

  1. 运算符 是积木块上的接口(凸起和凹槽)。
  2. 变量积木块本身。
  3. 语句 就是你搭好的一层积木
    • 简单的语句(赋值、打印)就是铺平的一层。
    • 复杂的语句(判断、循环)就是搭出了特殊的造型(比如门框、楼梯)。

在 编程的世界里 里,语句是电脑能够执行的最小指令单位。换句话说,你写的一行让电脑“干一件具体事”的代码,通常就是一条语句。

Python 官方语法把语句分为两大类:简单语句和复合语句。【没有冒号的是简单语句;有冒号的是复合语句,复合语句至少两行(有头部和缩进身体),且还可以包含其它(子)语句】

简单语句
复合语句

一行就能写完,不带冒号,用换行或分号结束。 例:

x = 10          # 赋值语句
print("hi")     # 表达式语句
pass            # 空语句
break           # 跳转语句
import math     # 导入语句

🌼Python 语句的 3 个重要规则 🌼

很多新手代码报错,不是因逻辑不懂,而是不懂 Python “书写规矩”,类似于写作文要分段、打标点!

  1. 一行就是一句:在其它的语言(像 C、Java)里,必须用分号 ; 来告诉电脑“这句话说完了”。但在 Python 里,换行 就代表一句话讲完了。

    #✅ **正确:** 这种叫清爽
    a = 10
    b = 20
    # ❌ **错误:**虽然可,但丑被嫌弃
    a = 10; b = 20
  2. 缩进是灵魂: 这是 Python 最最最特别的地方!在 if或者 for等语句内的那部分代码,必须在这里面往右缩进, 就像写提纲,下级内容要缩进。

    # 爸爸的命令(主语句)
    if 今天下雨:
        # 缩进的部分是属于“如果下雨”才做的动作
        带雨伞()       # 属于 if
        穿雨衣()       # 属于 if
    
    # 不缩进的部分,跟下不下雨没关系,照常执行
    吃早饭()

    如果你不缩进,或者缩进乱得不一样齐,Python 会直接报错IndentationError,因为它看不懂哪些动作是一组的。

  3. 冒号不能丢:在写 ifelsefordef(定义函数)等复合语句时,第一行末尾必须加个英文冒号 :. 这就像是告诉 Python:“注意听,下面我要列清单了!”


赋值语句

这是最常见的。就是让机器人下定义:“记住,这个东西叫什么,值是多少。代码长这样:

score = 100

导入导出语句

导入导出语句为模块化服务,后边有专门章节讲解

import xx

空语句

空就是为了不报错而存在的“凑数”存在的。 Python 的一个语法铁律: 在冒号 : 后,必须得有东西(语句),不能空着!假设你在写一个游戏,你在架构代码,但具体细节还没想好。

if 分数 > 100:
    pass  # 这里的 pass 就是个“占位符”

只要放个 pass 充数,Python 觉得语法完整了,就不会报错,程序继续运行

表达式语句

表达式

表达式就是“任何能算出一个值”的代码片段。 它本身不依赖等号、不依赖分号,也不依赖放在哪一行; 只要运行它后,它就能吐出一个结果供你继续使用的就都是,如 1+1len()input()1>2a and b都是!

凡是能‘当值用’——能赋值、能传参、能参与运算——的就是表达式;不能当值用的,就是语句或其他结构。最简判断法:代入“等号右边”或“括号里”,把片段放到下面两个位置,不报错就说明它是表达式!

x = ...          # 等号右边
print(...)       # 函数实参
提示

“带返回值的方法调用(实际上任意方法都有返回值 默认为None)”和“任意运算符的使用”都满足“能算出一个值”,因此它们都是表达式。

表达式语句

把表达式单独放一行,也没人要它的值(左右既不等号接,也不被当参数使用,也就是说前面不带关键字,后面不带等号),算完就扔 就是表达式语句。

1 + 1 # 算数运算类型的表达式语句
len([1, 2, 3]) # 方法调用(返回值3)类型的表达式语句
print('hello') # 方法调用(返回值None)类型的表达式语句
x = len([1,2,3]) # 这是赋值语句(整行是语句,右边是表达式)
if len([1,2,3]) > 2:   # 这是流程控制语句(右边是表达式,但整行不是表达式语句)

流程控制语句

这部分是 Python 的精髓!

判断语句

岔路口选择如何走下去的功能,如下代码“如果分数大于等于 60,就喊‘及格了’;否则,喊‘不用补考’。”

if score >= 60:
   print("及格了!")
else:
   print("不用补考!")

注意: 这不仅仅是一行,这是一个代码块,但整体逻辑算一个复合语句。

循环语句

复读机功能,如下代码 “把‘我爱编程’这句话,重复喊 5 遍。”

for i in range(5):
   print("我爱编程")

其它语句

诸如函数、类、以及异常语句,它们的定义以及功能在后续章节有单独的介绍!

def foo():      # 函数定义
    pass
class Dog:
    pass
try:            # 异常处理
    pass

总的来说 复合语句的内容均是由一行或多行简单或复合语句组成(代码段/块),进而构建出强大的功能,比如函数!