随着人工智能的发展越来越迅速,在生活中应用的越来越广泛,作为其常用的语言,python也越来越火了。
# 学习目标:
掌握python的变量、运算符、数据类型和位运算的定义和基本操作。
学习内容:
- 变量、运算符和数据类型
注释
运算符
变量和赋值
数据类型与转换
print()函数 - 位运算
原码、反码与补码
与或非操作
按位左右移操作
利用位运算实现快速计算
利用位运算实现整数集合
变量位运算和数据类型:
- 注释
在python中用 # 作为注释
# 這是注释
print('hello world')
同时若是想写多行注释的话可以多使用几个#
#这是注释
#这还是注释
#这依然是注释
print('你猜不到这是啥的代码')
但是这样写起来会麻烦很多,写三行还好,若是写100行的话,那写100个# 就太麻烦了,这时我们我们可以尝试使用""" “”"或者’’’ ‘’’(三个单引号或者三个双引号)。
"""
这
是
多
行
注
释
"""
print('使用多行注释')
'''
这
也
是
多
行
注
释
'''
print('多行注释')
2.运算符
算术运算符
操作符 名称 示例
- 加 1 + 1
- 减 2 - 1
- 乘 3 * 4
/ 除 3 / 4
// 整除 3 // 4
% 取余 3 % 4
** 幂 2 ** 3
比较运算符
操作符 名称 示例
大于 2 > 1
= 大于等于 2 >= 4
< 小于 1 < 2
<= 小于等于 5 <= 2
== 等于 3 == 4
!= 不等于 3 != 5
逻辑运算符
操作符 名称 示例
and 与 (3 > 2) and (3 < 5)
or 或 (1 > 3) or (9 < 2)
not 非 not (2 > 1)
位运算符
-
操作符 名称 示例
-
按位取反 ~4
& 按位与 4 & 5
按位或
^ 按位异或 4 ^ 5
<< 左移 4 << 2
右移 4 >> 2
- 变量与赋值
变量就是指开辟出一片地址,用来存储数据
而复制就是把数据放进地址中
在使用变量前需要先对其赋值
变量可以由数字、字母、下划线组成,但不能以数字开头
abc = 15
print(abc)
- 数据类型与转换
基本类型:整型、浮点型、布尔型
容器类型:字符串、元组、列表、字典和集合
a=1
print(type(a))
b=1.0
print(type(b))
# 布尔 (boolean) 型变量只能取两个值,True 和 False。当把布尔型变量用在数字运算中,用 1 和 0 代表 True 和 False。
print(True + True) # 2
print(True + False) # 1
print(True * False) # 0
类型转换可是使用相对应的函数执行
整数 int()
浮点数 float()
字符串 str()
- print()函数
可以使用help函数查看print的所有参数
help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
位运算:
二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用补码来表示。
原码:就是其二进制表示(注意,有一位符号位)。
00 00 00 11 -> 3
10 00 00 11 -> -3
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
00 00 00 11 -> 3
11 11 11 00 -> -3
补码:正数的补码就是原码,负数的补码是反码+1。
00 00 00 11 -> 3
11 11 11 01 -> -3
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。
利用位运算实现整数集合
一个数的二进制表示可以看作是一个集合(0 表示不在集合中,1 表示在集合中)。
比如集合 {1, 3, 4, 8},可以表示成 01 00 01 10 10 而对应的位运算也就可以看作是对集合进行的操作。
元素与集合的操作:
a | (1<<i) -> 把 i 插入到集合中
a & ~(1<<i) -> 把 i 从集合中删除
a & (1<<i) -> 判断 i 是否属于该集合(零不属于,非零属于)
集合之间的操作:
a 补 -> ~a
a 交 b -> a & b
a 并 b -> a | b
a 差 b -> a & (~b)
注意:整数在内存中是以补码的形式存在的,输出自然也是按照补码输出。