变量、运算符与数据类型、位运算
怎样对python中的代码进行注释?
可以用#进行单行注释。例如:
#输出 hello Datawhale
print('hello Datawhale')
可以用三个单引号’’’ ‘’'或者三个双引号 “”" “”"进行多行注释,例如:
"""
这是用三个双引号实现多行注释
输出hello Datawhale
"""
print('hello Datawhale')
'''
这是用三个单引号实现多行注释
输出hello Datawhale
'''
python有哪些运算符,这些运算符的优先级是怎样的?
python运算符
1.算数运算符:
名称 | 操作符 |
---|---|
加 | + |
减 | - |
乘 | * |
除 | / |
整除 | // |
取余 | % |
幂 | ** |
2.比较运算符
名称 | 操作符 |
---|---|
大于 | > |
小于 | < |
等于 | == |
大于等于 | >= |
小于等于 | <= |
不等于 | != |
3.逻辑运算符
名称 | 操作符 |
---|---|
与 | and |
或 | or |
非 | not |
4.位运算符
名称 | 操作符 | 描述 |
---|---|---|
按位取反 | ~ | 对数据的每个二进制位取反,即把1变为0,把0变为1 |
按位与 | & | 对应的两个二进位都为1,则该位的结果为1,否则为0 |
按位或 | | | 对应的两个二进位有一个为1时,结果位就为1 |
按位异或 | ^ | 当两对应的二进位相异时,结果为1 |
左移 | << | 运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 |
右移 | >> | 把>>左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 |
6.成员运算符
名称 | 操作符 |
---|---|
存在 | in |
不存在 | not in |
7.身份运算符
名称 | 操作符 |
---|---|
是 | is |
不是 | is not |
python运算符优先级(由高到低)
运算符 | 描述 |
---|---|
** | 指数 |
~、+、- | 按位取反、一元加号、一元减号 |
*、/、%、// | 乘、除、取模、整除 |
>>、<< | 右移、左移 |
& | 与运算 |
^、| | 位运算符 |
<=、<、>、>= | 比较运算符 |
==、 != | 等于运算符 |
= 、%=、 /=、 //=、 -=、 +=、 *= 、**= | 赋值运算符 |
is、is not | 身份运算符 |
in、not in | 成员运算符 |
not、or、and | 逻辑运算符 |
python 中 is, is not 与 ==, != 的区别是什么?
is、is not 对比的是两个变量的内存地址,==、!= 对比的是两个变量的值。
比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
对比的两个变量,指向的是地址可变的类型(list,dict,tuple等),则两者是有区别的。
python 中包含哪些数据类型?
类型 | 名称 |
---|---|
int | 整型 <class ‘int’> |
float | 浮点型<class ‘float’> |
bool | 布尔型<class ‘bool’> |
python 数据类型之间如何转换?
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
ord(x) | 将一个字符转换为它的整数值 |
str(object=’’) | 转换为字符串 |
位运算
leetcode 习题 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
尝试使用位运算解决此题。
题目说明:
“”"
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]
Output file
result1: 1
result2: 4
“”"
解决方法:
使用异或:元素相异为1,相同为零;
0与任何元素异或为其本身。
example1=[2,2,1]
example2=[4,1,2,1,2]
m=0
n=0
for i in range(0, len(example1)):
m=m^example1[i]
i+=1
print(m)
for i in range(0, len(example2)):
n=n^example2[i]
i+=1
print(n)
运行结果: