Python基础 2 散列类型 运算符等

1. 散列类型

Python中常用的散列类型包括字典(dict)和集合(set),其特点是内容无序且元素唯一。字典是由键值对组成,键必须是可哈希的,而值则可以是任何类型。集合只包含值,且值必须是可哈希的。

可哈希对象的特点是不可变的且具有唯一性,如字符串、元组、数字等。

下面代码示例展示了如何创建字典和集合:

# 创建字典

dict_example = {'apple': 2, 'orange': 3, 'banana': 1}

print(dict_example) # 输出:{'apple': 2, 'orange': 3, 'banana': 1}

# 创建集合

set_example = set([1, 2, 3, 2, 1])

print(set_example) # 输出:{1, 2, 3}

2. 运算符

Python中的运算符包括算术运算符、比较运算符、逻辑运算符、位运算符等。

2.1 算术运算符

算术运算符包括加(+)、减(-)、乘(*)、除(/)、求模(%)等。其中,求模运算符会返回两个数相除的余数。

# 算术运算符示例

a, b = 10, 3

print('a + b =', a + b) # 输出:a + b = 13

print('a - b =', a - b) # 输出:a - b = 7

print('a * b =', a * b) # 输出:a * b = 30

print('a / b =', a / b) # 输出:a / b = 3.33333

print('a % b =', a % b) # 输出:a % b = 1

2.2 比较运算符

比较运算符包括等于(==)、不等于(!=)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)等。

# 比较运算符示例

x, y = 5, 8

print('x == y ?', x == y) # 输出:x == y ? False

print('x != y ?', x != y) # 输出:x != y ? True

print('x > y ?', x > y) # 输出:x > y ? False

print('x < y ?', x < y) # 输出:x < y ? True

print('x >= y ?', x >= y) # 输出:x >= y ? False

print('x <= y ?', x <= y) # 输出:x <= y ? True

2.3 逻辑运算符

逻辑运算符包括与(and)、或(or)、非(not)等。其中,与运算符和或运算符均具有短路特性,即如果第一个操作数已经能够决定整个表达式的值,那么就不会再对第二个操作数进行计算了。

# 逻辑运算符示例

a, b, c = True, False, True

print('a and b ?', a and b) # 输出:a and b ? False

print('a or b ?', a or b) # 输出:a or b ? True

print('not a ?', not a) # 输出:not a ? False

# 短路特性示例

print('a and b and c ?', a and b and c) # 输出:a and b and c ? False

print('a or b or c ?', a or b or c) # 输出:a or b or c ? True

2.4 位运算符

位运算符包括按位与(&)、按位或(|)、按位取反(~)、按位异或(^)、左移位(<<)和右移位(>>)等。其中,左移位和右移位运算符会将一个数的二进制位向左或向右移动指定的位数,其他运算符的含义和其他语言一致。

# 位运算符示例

a, b = 60, 13

print('a & b =', a & b) # 输出:a & b = 12

print('a | b =', a | b) # 输出:a | b = 61

print('~a =', ~a) # 输出:~a = -61

print('a ^ b =', a ^ b) # 输出:a ^ b = 49

print('a << 2 =', a << 2) # 输出:a << 2 = 240

print('a >> 2 =', a >> 2) # 输出:a >> 2 = 15

3. 总结

Python中的散列类型包括字典和集合,其特点是内容无序且元素唯一。可哈希对象必须是不可变的且具有唯一性。Python中常用的运算符包括算术运算符、比较运算符、逻辑运算符、位运算符等。其中,短路特性是与运算符和或运算符的重要特点。

正确的使用散列类型和运算符能够大大提升代码的效率和简洁程度,这对于初学者和职业程序员都非常重要。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签