2. 变量类型、运算符
2.1 变量类型
- python属于弱类型语言,其变量特点如下:
- 变量
无须声明
就可以直接赋值
,对一个不存在的变量赋值就相当于定义了一个新变量。 - 变量的
数据类型可以随时改变
,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。 - 弱类型并不等于没有类型,弱类型是说在书写代码时不用刻意关注类型,
编译会根据赋值自动匹配其变量类型
,pyhton的变量类型如下介绍。
2.1.1 int 型
- 整数就是没有小数部分的数字,Python 中的整数包括
正整数
、0
和负整数
,并且整数的取值范围是无限
的,会自动根据整数范围分配精度和内存。 - 多种进制表示整数:
- 十进制
- 二进制:
0b
或者0B
开头 - 八进制:
0o
或者0O
开头 - 十六进制:
0x
或者0X
开头
- 分隔符:为提高数字的的可读性,Python 允许使用下划线_作为数字(包括整数和小数)的分隔符,通常每隔三个数字添加一个下划线,例如:
1_302_234
、 3.141_593
。
2.1.2 float 型
- pyhton中小数通常以
浮点数
的形式存储。 - 表达格式:
- 十进制:
34.6
- 指数:
aEn
或 aen
,例如2.1E5 = 2.1x10^5
、注意:12E2等价1200
也是小数。
- 小数在内存中是以二进制形式存储的,因此小数存在
精度
问题,为提高精度计算,可使用 decimal, fractions 模块。
2.1.3 complex 型
- python支持
复数
,并支持复数的加、减、乘运算。 - 复数由实部(real)和虚部(imag)构成,复数的虚部以j或者J作为后缀,书写格式:
a+bj
。
2.1.4 字符串
- 若干个字符的集合就是一个字符串,双引号
" "
或者单引号' '
包围。 - 处理字符串中的引号的
- 用转义符:
\
, 例如:'I\'m a great coder!'
表示字符串:I'm a great coder!
- 用不同的引号包围字符串,例如:
"I'm a great coder!"
表示字符串:I'm a great coder!
- 字符串的换行:
\
s2 = "It took me some times to write this Python tutorial. \
Please give me more support. \
I will keep it updated."
- 长字符串:
"""长字符串内容"""
或'''长字符串内容'''
, 长字符串没有赋值给任何变量则默认为注释。 - 原始字符串 : str1 =
r'原始字符串内容'
或 str2 = r"""原始字符串内容"""
s1 = ”D:\\Program Files\\Python\\python.exe“
s2 = r'D:\Program Files\Python\python.exe'
2.1.5 bytes 型
- bytes 是 Python 3.x 新增的类型 , 方便记忆叫做:
字节串
- 字节串由若
干个字节组成
,以字节为单位进行操作 - 字节串和字符串都是
不可变序列
,不能随意增加和删除数据 - 创建方法:
- 通过构造函数创建空 bytes :
b1 = bytes ( 'qwq' )
- 通过b前缀将字符串转换成 bytes :
b2 = b 'qwq'
2.1.6 bool 型
- bool 类型来表示真(对)或假(错)
True
: 真(1)False
: 假(0)
2.2 运算符
2.2.1 转换说明符
- 以
%
开头的转换说明符对各种类型的数据进行格式化输出 - 转换说明符只是一个
占位符
,它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替 - Python 转换说明符如下表所示:
转换说明符 | 解释 |
---|
%d 或 %i | 转换为带符号的十进制整数 |
%o | 转换为带符号的八进制整数 |
%x 或 %X | 转换为带符号的十六进制整数 |
%e 或 %E | 转化为科学计数法表示的浮点数 |
%f 或 %F | 转化为十进制浮点数 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
- 转换说明符的修饰参数:
- 指定最小输出宽度:在
%
号和转换符中加入修饰宽度数字,例如:%10d
、%25s
。 - 指定对齐方式:在最小宽度之前增加一个标志来改变对齐方式:
-
指定左对齐,默认为右对齐; +
表示输出的数字总要带着符号、正数带+
,负数带 -
; 0
表示宽度不足时补充 0,而不是补充空格。 - 指定小数精度:精度值需要放在最小宽度之后,中间用点号
.
隔开,%m.nf
或者 %.nf
- print打印格式化写法:
print("数字num = %d"%num)
2.2.2 转义字符
- 以反斜杠
\
开头的字符 - 使用编码值来间接地表示字符, 以
\0
开头表示后跟八进制形式的编码值,以\x
开头表示后跟十六进制形式的编码值,例如:1 的ASCII码值为 0x31
,则可用\x31
表示字符1
- Python 支持的转义字符:
转义字符 | 说明 |
---|
\n | 换,将光标位置移到下一行开头 |
\r | 回车符,将光标位置移到本行开头 |
\t | 水平制表符,也即 Tab 键,一般相当于四个空格 |
\a | 蜂鸣器响,现在的计算机很多都不带蜂鸣器了,响铃不一定有效 |
\b | 退格(Backspace),将光标位置移到前一列 |
\\ | 反斜线 |
\' | 单引号 |
\" | 双引号 |
\ | 在字符串行尾的续行符,即一行未完,转到下一行继续写 |
2.2.3 算数运算符
运算符 | 说明 | 示例 | 结果 |
---|
+ | 加法,字符串拼接 | 12.45+15 | 27.45 |
- | 减法 | 4-2 | 2 |
* | 乘法,重复字符串 | 5*3.6 | 18 |
/ | 除法 | 7/2 | 3.5 |
// | 整除 | 7//2 | 3 |
% | 取余 | 7%2 | 1 |
** | 幂运算 | 2**4 | 16 |
2.2.4 赋值运算
运算符 | 说 明 | 用法举例 | 等价形式 |
---|
= | 最基本的赋值运算 | x = y | x = y |
+= | 加赋值 | x += y | x = x + y |
-= | 减赋值 | x -= y | x = x - y |
*= | 乘赋值 | x *= y | x = x * y |
/= | 除赋值 | x /= y | x = x / y |
%= | 取余数赋值 | x %= y | x = x % y |
**= | 幂赋值 | x **= y | x = x ** y |
//= | 取整数赋值 | x //= y | x = x // y |
&= | 按位与赋值 | x &= y | x = x & y |
|= | 按位或赋值 | x |= y | x = x | y |
^= | 按位异或赋值 | x ^= y | x = x ^ y |
<<= | 左移赋值 | x <<= y | x = x << y,这里的 y 指的是左移的位数 |
>>= | 右移赋值 | x >>= y | x = x >> y,这里的 y 指的是右移的位数 |
2.2.5 位运算
- 位运算按照数据在内存中的
二进制位
(Bit)进行操作 - Python 位运算符只能用来操作
整数类型
位运算符 | 说明 | 使用形式 | 举 例 |
---|
& | 按位与 | a & b | 4 & 5 |
| | 按位或 | a | b | 4 | 5 |
^ | 按位异或 | a ^ b | 4 ^ 5 |
~ | 按位取反 | ~a | ~4 |
<< | 按位左移 | a << b | 4 << 2,表示整数 4 按位左移 2 位 |
>> | 按位右移 | a >> b | 4 >> 2,表示整数 4 按位右移 2 位 |
2.2.6 比较运算符
- 比较运算符,也称
关系运算符
,用于对常量、变量或表达式的结果进行大小比较。如果这种比较是成立的,则返回 True
(真),反之则返回 False
(假)
比较运算符 | 说明 |
---|
> | 大于,如果>前面的值大于后面的值,则返回 True,否则返回 False |
< | 小于,如果<前面的值小于后面的值,则返回 True,否则返回 False |
== | 等于,如果==两边的值相等,则返回 True,否则返回 False |
>= | 大于等于(等价于数学中的 ≥),如果>=前面的值大于或者等于后面的值,则返回 True,否则返回 False |
<= | 小于等于(等价于数学中的 ≤),如果<=前面的值小于或者等于后面的值,则返回 True,否则返回 False |
!= | 不等于(等价于数学中的 ≠),如果!=两边的值不相等,则返回 True,否则返回 False |
is | 判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False |
is not | 判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False |
2.2.7 逻辑运算符
- 逻辑运算,例如 p 为真命题,q 为假命题,那么“p且q”为假,“p或q”为真,“非q”为真
逻辑运算符 | 含义 | 示例 | 结果 |
---|
and | && | 1 and 0 | False |
or | || | 1 or 0 | True |
not | ! | not 1 | False |
2.2.8 三目运算
- c语言中
? :
来表示三目运算,python中用: if else
来表示 max = a if a>b else b
: 表示,如果a大于b,则取a的值,反之取b的值- 三目运算嵌套:
a if a>b else c if c>d else d
感谢阅读,如有错误,敬请见谅!!!