☰
Python基础语法学习:从变量到运算符
2026/10/3 7:21:39 网站建设 项目流程

一、常量和表达式

Python 可以直接当成一个计算器来使用。

例如:

print(1+2-3)print(1+2*3)print(1+2/3)

这里的:

1、2、3

属于字面值常量。

而:

+-*/

属于运算符。

像:

1+2-3

这种完整的算式,在编程语言中称为表达式,计算之后得到的结果可以理解为表达式的返回值。Python 中算术运算的优先级和数学中比较接近,先算乘除,再算加减,也可以使用括号改变运算顺序。

有一个和 C++ 特别容易搞混的地方:

print(2/3)

Python 得到的是小数,而不是像整数除法那样直接截掉小数部分。


二、变量到底是什么

刚开始写程序的时候,很多计算都很简单,直接一行算完就行。

但是稍微复杂一点之后,就会出现一个问题:

中间结果需要保存起来。

这时候就需要变量。

比如计算平均数:

avg=(67.5+89.0+12.9+32.2)/4

这里的avg就保存了平均值。

接下来计算方差的时候,就可以继续使用:

total=(67.5-avg)**2\+(89.0-avg)**2\+(12.9-avg)**2\+(32.2-avg)**2result=total/3print(result)

变量可以先简单理解成一个保存数据的空间,程序运行过程中可以不断读取和修改这些数据。


三、Python变量的定义

Python 创建变量特别简单:

a=10

这里的a是变量名,=是赋值运算符,表示把右边的数据赋给左边的变量。

变量名有一些必须遵守的规则:

只能由数字、字母、下划线组成 数字不能放在开头 不能使用关键字作为变量名 大小写敏感

例如:

num=10Num=20

这两个变量并不是一个东西。

因为 Python 区分大小写:

num Num

属于两个不同的变量。


四、变量名最好别乱起

虽然:

a=10b=20c=a+b

这样写完全可以运行,但是程序一复杂,就很难看懂。

例如:

totalCount=100personInfo='Tom'

看到变量名基本就能猜到它是干什么的。

所以写代码时,变量名最好带有一定的描述性。多个单词组成的变量名可以使用驼峰命名法,比如:

totalCount personInfo

这样以后自己回头看代码,也不用重新猜变量的含义。


五、Python最大的特点之一:变量没有固定类型

在 C++ 中,我们通常需要先写:

inta=10;

Python 不需要这样写:

a=10

变量的类型会在赋值的时候确定。

而且同一个变量后面还可以换成其他类型:

a=10print(a)a='hello'print(a)

刚开始a是整数,后面又变成了字符串。

这种特性叫做动态类型。相比之下,C++、Java 这样的语言,一个变量定义之后,其类型通常就是固定的,因此属于静态类型语言。

动态类型确实能让代码少写很多东西,但程序变得很大之后,也可能增加模块之间的理解和协作成本。


六、Python中的几种基础类型

目前主要接触下面几种:

int float str bool

后面还会接触list、tuple、dict以及自定义类型。


1. 整数 int

Python 中的整数类型是:

int

例如:

a=10print(type(a))

一个比较有意思的地方是,Python 的int表示范围没有固定上限,只要内存足够大,理论上就可以表示非常大的整数。


2. 浮点数 float

小数使用:

float

例如:

a=0.5print(type(a))

Python 这里和 C++ 又有一个明显区别。

Python 中主要使用float表示浮点数,没有单独的double类型;这里的float实际上对应双精度浮点数。


3. 字符串 str

使用单引号或者双引号包起来的内容,就是字符串:

a='hello'b="hello"

这两种写法没有区别。

还可以使用:

len(a)

获取字符串长度。

字符串之间可以使用+进行拼接:

a='hello'b='world'print(a+b)

但是字符串不能直接和整数、浮点数进行这种加法。


4. 布尔类型 bool

布尔类型只有两个值:

TrueFalse

后面进行条件判断和逻辑运算时会大量使用。

注意这里的写法是:

TrueFalse

首字母大写,不是 C++ 中的:

truefalse

七、为什么需要类型?

一开始可能会觉得:

“变量反正就是存数据的,为什么还要区分类型?”

其实类型至少有两个重要作用。

第一,类型和数据在内存中的存储方式、空间有关。

第二,类型会影响这个数据可以进行什么操作。

比如:

a=10b=20print(a+b)

整数可以进行:

+ - * /

等算术运算。

但是字符串:

a='hello'b='world'

使用:

a+b

得到的是:

helloworld

这里的+已经不是数学意义上的加法,而是字符串拼接。

所以可以把类型理解成一种分类:相同类型的数据通常有相似的使用方式和规则。


八、注释

注释不会影响程序执行,主要作用是帮助自己和别人理解代码。

例如计算方差的代码,如果完全不写说明,过一段时间再回来看的时候,很容易忘记每个变量是在干什么。

可以这样写:

# 计算 4 个数字的方差avg=(67.5+89.0+12.9+32.2)/4

我觉得注释有一个比较实际的作用:

不是只给别人看的,也是给未来的自己看的。

写代码的时候逻辑可能还记得很清楚,但几个月以后再看,很可能已经忘了。

所以注释最好和代码保持一致,不能代码改了,注释还停留在以前。注释也不要写得过短或者太长,核心就是把关键逻辑说明白。


九、Python的输入和输出

程序不能永远自己算自己的,还需要和用户交互。

用户把数据交给程序叫做输入,程序把结果展示出来叫做输出。

最基础的方式就是控制台输入输出。

Python 中最常用的就是:

print()input()

1. print输出

最简单:

print('hello')

也可以输出变量:

a=10print(a)

字符串和变量一起输出时,可以使用f-string:

num=10print(f'num ={num}')

这里:

f'num ={num}'

就是 f-string,可以在{}里面直接放变量或者表达式。


2. input输入

使用:

input()

从控制台读取输入。

例如:

num=input('请输入一个整数: ')print(f'你输入的整数是{num}')

这里一定要记住:

input()返回的是字符串。

哪怕你输入:

10

得到的也是:

'10'

而不是:

10

所以如果想做真正的数字运算,就需要进行类型转换。


十、类型转换

常见的类型转换函数有:

int()float()bool()str()

例如:

a=input()b=input()a=int(a)b=int(b)print(a+b)

如果没有转换:

a=input()b=input()print(a+b)

那么这里实际上执行的是字符串拼接。

比如输入:

10 20

结果可能是:

1020

而不是:

30

这也是刚学 Python 时非常容易踩的坑。


十一、算术运算符

Python 常见的算术运算符有:

+ 加法 - 减法 * 乘法 / 除法 % 取余 ** 乘方 // 整除

1./除法

Python 中:

print(1/2)

结果是:

0.5

而不是0。

另外,除数不能为0,否则程序运行过程中会出现异常。


2.%取余

%不是百分号,而是求余数。

例如:

print(7%2)

结果:

1

因为:

7 ÷ 2 = 3 余 1

3.**乘方

例如:

print(4**2)

结果:

16

不仅可以计算整数次方,也可以进行小数次方,例如:

print(4**0.5)

4.//整除

//又叫地板除。

例如:

print(7//2)

结果:

3

这里不是四舍五入,而是向下取整。

负数的时候尤其容易注意错:

print(-7//2)

因为是向下取整,所以不能简单理解成“直接把小数部分砍掉”。


十二、关系运算符

关系运算符主要负责比较两个数据:

< <= > >= == !=

结果只有:

TrueFalse

例如:

a=10b=20print(a<b)print(a==b)print(a!=b)

比较成立返回True,否则返回False。


=和==千万别混

这个和 C++ 一样,也是非常基础但容易错的地方。

a=10

表示赋值。

而:

a==10

表示比较是否相等。

这两个符号功能完全不同。


十三、字符串也可以比较

Python 中不仅数字可以使用关系运算符,字符串也可以比较。

例如:

a='hello'b='world'print(a<b)print(a==b)

字符串比较采用的是字典序。

可以把它理解成查英文词典:

先比较第一个字符;

如果第一个字符一样,再比较第二个;

一直比较到出现不同的位置。

哪个单词在字典中更靠前,就认为哪个字符串更小。

另外,Python 中判断两个字符串内容是否相同,直接使用:

==

或者:

!=

即可。


十四、浮点数不要直接用==判断

比如:

print(0.1+0.2==0.3)

很多人第一反应会觉得应该是:

True

实际上可能得到:

False

因为浮点数在计算机中并不能完全精确地表示,计算过程中会出现很小的误差。0.1 + 0.2的结果可能会带有非常小的尾差。

所以实际比较浮点数时,一般不是直接判断:

a==b

而是判断:

abs(a-b)<eps

也就是允许存在一定范围的误差。


十五、逻辑运算符

Python 的逻辑运算符主要有:

and or not

分别对应:

并且 或者 取反

1. and

两边都是真,结果才是真。

print(TrueandTrue)

结果:

True

只要有一边是假:

FalseandTrue

结果就是:

False

也就是:

一假则假。


2. or

只要有一边是真,结果就是真。

TrueorFalse

结果:

True

只有:

FalseorFalse

才是False。

也就是:

一真则真。


3. not

not就是逻辑取反:

notTrue

得到:

False

而:

notFalse

得到:

True

十六、Python比较特别的一个写法

Python 支持连续比较:

a<bandb<c

可以直接写成:

a<b<c

这点和很多其他编程语言不一样。

所以以后看到:

1<x<10

不要觉得奇怪,它就是在判断:

1 < x 并且 x < 10

十七、短路求值

逻辑运算里面还有一个非常重要的概念:

短路求值。

对于and:

如果左边已经是False,那么整个表达式一定是False,右边就没有必要继续执行。

例如:

print(10>20and10/0==1)

左边:

10>20

本身就是False。

所以右边:

10/0

根本不会执行,也就不会因为除零而抛出异常。

对于or则正好相反:

如果左边已经是True,那么整个表达式一定是True,右边也就不需要继续执行。

这个特性以后写条件判断的时候还是挺有用的。


十八、赋值运算符

最基础的赋值:

a=10

除了普通赋值,Python 还支持链式赋值:

a=b=10

也支持多元赋值:

a,b=10,20

这种写法还特别适合交换两个变量:

a,b=b,a

不用像 C++ 一样专门定义一个临时变量。


十九、复合赋值运算符

Python 支持:

+= -= *= /= %=

例如:

a=10a+=1

等价于:

a=a+1

同理:

a-=1

就是:

a=a-1

二十、Python没有++和--

这个地方对于 C++ 程序员来说特别容易下意识写错。

C++ 中:

i++;i--;

Python 不支持这种写法。

需要改成:

i+=1i-=1

Python 在语法设计上直接没有加入++和--这种写法,也避免了前置和后置自增之间的一些区别。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询