Python变量、运算符、数据类型及位运算

时间:2020-07-22 23:31:23   收藏:0   阅读:92

 

1.注释

 

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 ^ 5
<< 左移 4 << 2
>> 右移 4 >> 2

  

其他运算符
操作符名称示例
in 存在 ‘A‘ in [‘A‘, ‘B‘, ‘C‘]
not in 不存在 ‘h‘ not in [‘A‘, ‘B‘, ‘C‘]
is "hello" is "hello"
is not 不是 "hello" is not "hello"

3.数据类型与转换

类型名称示例
int 整型 <class ‘int‘> -876, 10
float 浮点型<class ‘float‘> 3.149, 11.11
bool 布尔型<class ‘bool‘> True, False

 1 a = 1031 2 print(a, type(a)) 3 # 1031 <class ‘int‘> 

5.位运算  

二进制有三种不同的表示形式:原码、反码和补码,计算机内部使用补码来表示。

原码:就是其二进制表示(注意,最高位是符号位)。

反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。

补码:正数的补码就是原码,负数的补码是反码+1。

符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。

按位非操作 ~

~ 把num的补码中的 0 和 1 全部取反(0 变为 1,1 变为 0)有符号整数的符号位在 ~ 运算中同样会取反。

按位与操作 &

只有两个对应位都为 1 时才为 1

按位或操作 |

只要两个对应位中有一个 1 时就为 1

按位异或操作 ^

只有两个对应位不同时才为 1、异或操作的性质:满足交换律和结合律

按位左移操作 <<

num << i 将num的二进制表示向左移动i位所得的值。

 按位右移操作 >>

num >> i 将num的二进制表示向右移动i位所得的值。

leetcode 习题 136. 只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

尝试使用位运算解决此题。

"""
Input file
example1: [2,2,1]
example2: [4,1,2,1,2]

Output file
result1: 1
result2: 4
"""



class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        
     # your code here
    def singleNumber(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        c = 0
        for x in nums:
            c ^= x
        print(c)
l1 = [1, 2, 2]
l2 = [4, 1, 2, 1, 2]
s = Solution()
s.singleNumber(l1)
# 1
s.singleNumber(l2)
# 4

只需将数组里面的整数一起按位异或即可。

 

原文:https://www.cnblogs.com/titaniumwu/p/13363494.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!