1751 字
9 分钟
Python入门#2:变量、数据类型、基本运算

Python入门#2:变量、数据类型、基本运算#

变量是什么?#

我们需要让计算机完成一些事情对吧?那么计算机是不是需要记住一些什么呢?例如,我想让他向你问好,首先得知道并记住(哪怕只是暂时的)你的名字,对吧?这部分内容学会后,你将收获:

类型内容
语法变量的概念与使用
函数input
语法语句
语法赋值操作与基本运算符
语法数据类型

变量#

变量(Variables),顾名思义,就是一个可以变化的量。你可以把变量理解成一个盒子,你需要的话就创建它,不需要的时候就销毁它(当然,销毁的操作是Python自动完成的。)

变量的创建:赋值时自动创建#

赋值#

在Python中,**赋值(assignment)**是一个重要的操作。赋值的意思就是,把箱子里的东西倒掉,在放进新的去。在Python中,赋值使用=来完成。这里的等于号你可以这样理解:我要让左边的变量存储的东西和右边的一样。例如:

>>> a = 1
>>> print(a)
1
>>> 某变量 = "hello, world"
>>> print(某变量)
hello, world

在交互式解释器中,直接输入变量名等,会返回其值。例如接着操作:

>>> a
1
>>> 某变量
'hello, world'

变量的类型#

就像你认识现实生活中的各种事物,有吃的有看的,有概念上的(如数字)有具象的(如课本)等,变量也具有他们的类型。这里我将介绍Python内置的数据类型。

名称示例
整型 inta = 1
浮点型(小数) floata = 1.5
b = 1.3e10(1.3×10101.3 \times 10^{10})
复数(少用,仅介绍) complexa = 10 + 8j
a=10+8ia = 10 + 8i.注意到使用的是j而不是i
字符串 str(全称string)a = "hello, world"
布尔值(逻辑值,即True or Falseboola = True
等价于
a = 1

a = False
等价于
a = 0
None(或说) NoneTypea = None
数据结构等(后期会专门学习)a = [1,2,3,"hello, world", [12, 2], (12, 23)]
其他内置数据类型

基本运算#

算数运算符#

运算符含义示例
+加法(数值)或串联(序列)3 + 5 == 8'a' + 'b' == 'ab'
-减法10 - 3 == 7
*乘法或序列复制2 * 4 == 8'ha' * 3 == 'hahaha'
/除法(始终返回 float7 / 2 == 3.5
//地板除(返回结果的向下取整,但是数据类型仍为int7 // 2 == 3
10.3 // 2 == 5.0
-10.3 // 2 = -6.0
%取模(余数)7 % 3 == 1
**幂运算2 ** 5 == 32

地板除需注意:结果向下取整,例如10.3 // 1的结果为10, -10.3 // 1的结果为-11

取余得到的余数即小学学的带余除法得到的余数部分。例如:

13÷5=2 余 313 \div 5 = 2 \text{ 余 } 3

在Python中:

>>> print(13 % 5)
3

在数论中,这个叫做模除

313(mod5)3 \equiv 13 \pmod 5

这个式子的意思为,在除以5的情况下3与12同余。\equiv是同余符号。

同余即余数相同。

或者可以这样写:

13mod5=313 \mod 5 = 3

这种写法的意思为,13 除以 5 的余数为 3

逻辑运算符#

运算符含义示例
and与(短路求值)True and False == False
or或(短路求值)True or False == True
notnot True == False

逻辑运算符(Boolean operators),顾名思义(顾英文名),就是针对布尔值的运算。一般用于逻辑判断。

例如,我用我出门骑自行车表示我是否会出门骑自行车,用今天下雨表示今天是否会下雨,用今天刮风表示今天是否刮风,那么如果我只在不刮风也不下雨的时候骑自行车(要求好高啊)可以这样表示:

我出门骑自行车 = (not 今天下雨) and (not 今天刮风)

这里是各个逻辑运算的所有结果(用1|0表示法):

运算结果
1 and 11
1 and 00
0 and 00
1 or 11
1 or 01
0 or 00
not 10
not 01

位运算符#

注意到计算机以2进制(bin)存储数据。因此学习一些关于(二进制)位的运算是有必要的。在一定程度上,恰当地使用位运算可以简化算法。

进制是什么呢?寻常我们数数,是不是数到10就进一位啦?

比如:

9+1=109 + 1 = 10

从一位数变成了两位数。

而其他进制就不一样了。例如

二进制中,是逢2进1:

12+12=102102=210102+12=112112=3101112+112=1010210102=101_2 + 1_2 = 10_2 \\ 10_2 = 2_{10} \\ 10_2 + 1_2 = 11_2 \\ 11_2 = 3_{10} \\ 111_2 + 11_2 = 1010_2 \\ 1010_2 = 10

从1位变成了2位.

八进制同理:

38+78=128128=10103_8 + 7_8 = 12_8 \\ 12_8 = 10_{10}

十进制以上进制则大于十的用字母补齐(因为只有九个数字)。

例如十六进制中:

916+516=e16f16+1=10161516+1416=1d16e16=14101016=16101d16=29109_{16} + 5_{16} = \text{e}_{16} \\ \text{f}_{16} + 1 = 10_{16} \\ 15_{16} + 14_{16} = \text{1d}_{16} \\ \text{e}_{16} = 14_{10} \\ \text{10}_{16} = 16_{10} \\ \text{1d}_{16} = 29_{10}

二进制、八进制数是int的子集,其中:

二进制(bin)用0b开头:

>>> bin(12)
'0b1100'

八进制(oct)用0o开头:

>>> oct(12)
'0o14'

十六进制(hex)使用0x开头:

>>> hex(12)
'0xc'

| 运算符 | 示例 | | ------------- | -------------------------------------------------------- | ------- | ----------------- | | &(按位与) | 0b1100 & 0b1010 == 0b1000 | | |(按位或) | 0b1100 | 0b1010 == 0b1110 | | ~(按位非) | ~0b1100 == -0b1101(注意变成了负数)
~0b-1 == 0 | | ^(按位异或) | 0b1100 ^ 0b1010 == 0b0110 |

异或(XOR)的规律:同则为0, 异则为1:

操作结果
1XOR11 XOR 100
1XOR01 XOR 011
0XOR10 XOR 111
0XOR00 XOR 000

位运算可以理解成按位进行的逻辑运算。

比较运算符#

运算符含义示例
==等于5 == 5
!=不等于5 != 3
<, <=, >, >=大小比较3 < 45 >= 5
is对象身份比较(同一对象)a is b
is not对象身份不等a is not b

为什么等于号是两个等号呢?因为一个等号已经被那个叫做赋值的坏家伙占用了(

身份运算符#

运算符含义示例
is检查两个对象是否是同一实例a is b
is not检查两个对象是否不是同一实例a is not b

例如:

>>> "hello" in "hello, world"
True

测验:#

请在计算一下运算的结果并在交互式解释器中验证:(带*的为选做,进度快的同学可以自行上网查找资料进行完成)

  1. 1 + 89089

  2. "hello" + ", " + "world"

  3. "hello," " world"

  4. a = 6
    b = -7
    print(a + b)
    print(a - b)
    print(a * b)
    print(a / b)
    print(a // b)
    print(a % b % 2)
    print(a ** b)
    print(b ** a)
    print(a and b)
    print((not a) or b)
    print(not b)
    print(a ^ b)
    print(a | b)
    print(~a)
    print(~b)
    print(~a ^ b)
    print(bin(a))
    print(hex(a))
    print(oct(b-a))
    print(type(bin(a)))
    print(type(hex(a)))
    print(type(oct(b-a)))
    print(type(type(12 + 29 ** 23)))
  5. * 编写一个程序,使得你能够告诉它你的名字,然后它向你问好。

项目5示例代码:

# 入门2-5方言版
name = input("泥脚什么名字呀?")
print(name, ', '+name, ', ' "泥豪泥豪")

运行结果示例:

泥脚什么名字呀?ZhX589
ZhX589 , ZhX589 , 泥豪泥豪
Python入门#2:变量、数据类型、基本运算
https://www.zhx-blog.top/posts/2025-11-16-python入门-2变量数据类型基本运算/
作者
ZhX589
发布于
2025-11-17
许可协议
CC BY-NC-SA 4.0