【Python编程】三、Python变量与运算符
欢迎加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。
1. 变量
程序中,数据都是临时存储在内存中,为了更快速的查找或使用这个数据,通常我们把这个数据在内存中存储之后定义一个名称,这个名称就是变量。
变量就是一个存储数据的的时候当前数据所在的内存地址的名字。换句话说,变量是一块内存的门牌号。变量存在的意义就是记录状态的变化。
变量在定义的时候,直接指定变量名与变量值即可,不需要指定类型。
变量名 = 值
与之区别的是,在C/C++中,定义变量的时候要指定其类型,并且最后要加分号
变量类型 变量名 = 值; //int a = 10;
变量名可以自己按照喜好定义,但是要满足标识符命名规则,并且一般要遵守一些命名习惯,以便于更规范的定义变量名。
需要特殊指出的是字符串变量,在python中用引号引起来的都是字符串(单引号、双引号、三引号)
“hello”
’hello’
”””hello”””
’’’hello’’’
在python中,字符串可以直接进行加法(追加)、乘法运算
var = “hello”
var2 = var * 10 #相当于让hello出现10次
☞标识符
标识符命名规则是Python中定义各种名字的统一规范,具体如下:
- 由数字、字母、下划线组成
- 不能数字开头
- 不能使用内置关键字
- 严格区分大小写
python提供的内置关键字有
False None True and as assert 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
☞命名习惯
- 见名知义。
- 大驼峰:即每个单词首字母都大写,例如:
MyName
。 - 小驼峰:第二个(含)以后的单词首字母大写,例如:
myName
。 - 下划线:例如:
my_name
。
2. 数据类型
☞数据类型分类
和C/C++一样,python中也把数据分为各种类型
在python中,可以使用 type() 函数来查看一个数据的类型
a = 11
print(type(a)) # <class 'int'> -- 整型
b = 11.11
print(type(b)) # <class 'float'> -- 浮点型
c = True
print(type(c)) # <class 'bool'> -- 布尔型
d = '1ab23'
print(type(d)) # <class 'str'> -- 字符串
e = [1, 2, 3]
print(type(e)) # <class 'list'> -- 列表
f = (1, 2, 3)
print(type(f)) # <class 'tuple'> -- 元组
h = {1, 2, 3}
print(type(h)) # <class 'set'> -- 集合
g = {'name': 'lily', 'age': 18}
print(type(g)) # <class 'dict'> -- 字典
关于数据类型,后面会更新一篇详细介绍的文章
☞Python类型转换
Python提供了很多内置方法,可以非常方便的进行类型转换
函数 | 说明 |
---|---|
int(x [,base ]) | 将x转换为一个整数 |
float(x ) | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
str(x ) | 将对象 x 转换为字符串 |
repr(x ) | 将对象 x 转换为表达式字符串 |
eval(str ) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s ) | 将序列 s 转换为一个元组 |
list(s ) | 将序列 s 转换为一个列表 |
chr(x ) | 将一个整数转换为一个Unicode字符 |
ord(x ) | 将一个字符转换为它的ASCII整数值 |
hex(x ) | 将一个整数转换为一个十六进制字符串 |
oct(x ) | 将一个整数转换为一个八进制字符串 |
bin(x ) | 将一个整数转换为一个二进制字符串 |
3. 运算符
☞算数运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | 1 + 1 输出结果为 2 |
- | 减 | 1-1 输出结果为 0 |
* | 乘 | 2 * 2 输出结果为 4 |
/ | 除 | 10 / 2 输出结果为 5 |
// | 整除 | 9 // 4 输出结果为2 |
% | 取余 | 9 % 4 输出结果为 1 |
** | 指数 | 2 ** 4 输出结果为 16,即 2 * 2 * 2 * 2 |
() | 小括号 | 小括号用来提高运算优先级,即 (1 + 2) * 3 输出结果为 9 |
混合运算优先级顺序:()
高于 **
高于 *
/
//
%
高于 +
-
☞赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值 | 将= 右侧的结果赋值给等号左侧的变量 |
在python中可以同时给单个或多个变量赋值
#单个变量赋值
num = 1
#多个变量赋值
um1, float1, str1 = 10, 0.5, 'hello world'
#多变量赋相同值
a = b = 10
☞复合赋值运算符
运算符 | 描述 | 实例 |
---|---|---|
+= | 加法赋值运算符 | c += a 等价于 c = c + a |
-= | 减法赋值运算符 | c -= a 等价于 c = c- a |
*= | 乘法赋值运算符 | c *= a 等价于 c = c * a |
/= | 除法赋值运算符 | c /= a 等价于 c = c / a |
//= | 整除赋值运算符 | c //= a 等价于 c = c // a |
%= | 取余赋值运算符 | c %= a 等价于 c = c % a |
**= | 幂赋值运算符 | c ** = a 等价于 c = c ** a |
复合赋值运算符的优先级
- 先算复合赋值运算符右侧的表达式
- 再算复合赋值运算的算数运算
- 最后算赋值运算
☞比较运算符
比较运算符也叫关系运算符, 通常用来判断,运算结果为布尔。
运算符 | 描述 | 实例 |
---|---|---|
== | 判断相等。如果两个操作数的结果相等,则条件结果为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True |
!= | 不等于 。如果两个操作数的结果不相等,则条件为真(True),否则条件结果为假(False) | 如a=3,b=3,则(a == b) 为 True如a=1,b=3,则(a != b) 为 True |
> | 运算符左侧操作数结果是否大于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a > b) 为 True |
< | 运算符左侧操作数结果是否小于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False |
>= | 运算符左侧操作数结果是否大于等于右侧操作数结果,如果大于,则条件为真,否则为假 | 如a=7,b=3,则(a < b) 为 False如a=3,b=3,则(a >= b) 为 True |
<= | 运算符左侧操作数结果是否小于等于右侧操作数结果,如果小于,则条件为真,否则为假 | 如a=3,b=3,则(a <= b) 为 True |
☞逻辑运算符
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
and | x and y | 布尔"与":如果 x 为 False,x and y 返回 False,否则它返回 y 的值。 | True and False, 返回 False。 |
or | x or y | 布尔"或":如果 x 是 True,它返回 True,否则它返回 y 的值。 | False or True, 返回 True。 |
not | not x | 布尔"非":如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not True 返回 False, not False 返回 True |
数字之间的逻辑运算
a = 0
b = 1
c = 2
# and运算符,只要有一个值为0,则结果为0,否则结果为最后一个非0数字
print(a and b) # 0
print(b and a) # 0
print(a and c) # 0
print(c and a) # 0
print(b and c) # 2
print(c and b) # 1
# or运算符,只有所有值为0结果才为0,否则结果为第一个非0数字
print(a or b) # 1
print(a or c) # 2
print(b or c) # 1
当有逻辑运算时,执行顺序遵循下面的规则:
- 有括号先执行括号内的;(最好通过括号限制执行顺序)
- 没有括号,则从左往右执行,并遵循下面的规则:
- 如果遇到and且前面时False,整个结果为False;
- 如果遇到and且前面为True,继续往下执行;
- 如果遇到or且前面是True,则整个结果为True;
- 如果遇到or且前面是False,则继续往下执行;
☞成员运算符
运算符 | 描述 |
---|---|
in | 在 |
not in | 不在 |
in和not in的返回值是布尔值True或False
4. Python的输入输出
☞获取输入
input:接收输入,接收到的内容都是以字符串类型接收的,即使你输入的是数字1,var = input(),变量var的值最终是’1’字符串,而不是数字1。
input("提示信息")
- 当程序执行到
input
,等待用户输入,输入完成之后才继续向下执行。 - 在Python中,
input
接收用户输入后,一般存储到变量,方便使用。 - 在Python中,
input
会把接收到的任意用户输入的数据都当做字符串处理。
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
# <class 'str'>
print(type(password))
控制台输出结果如下:
☞输出以及格式化输出
python中输出函数为print(),所谓的格式化输出即按照一定的格式输出内容。
格式化符号
格式符号 | 转换 |
---|---|
%s | 字符串,格式化字符串除了%s,还可以写为f'{表达式}' |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写’e’) |
%E | 科学计数法(大写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
技巧
- %06d,表示输出的整数显示位数,不足以0补全,超出当前位数则原样输出
- %.2f,表示小数点后显示的小数位数
转义字符
\n
:换行。\t
:制表符,一个tab键(4个空格)的距离。
结束符
print('输出的内容', end="\n")
在Python中,print(), 默认自带
end="\n"
这个换行结束符,所以导致每两个