当前位置: 代码迷 >> 综合 >> Task01:变量、运算符、数据类型及位运算(2天)
  详细解决方案

Task01:变量、运算符、数据类型及位运算(2天)

热度:18   发布时间:2024-01-31 02:40:02.0

怎样对python中的代码进行注释?

  1. 单行注释 “#“
    在这里插入图片描述
  2. 多行注释 “ 三个单引号或三个双引号“
    在这里插入图片描述

python有哪些运算符,这些运算符的优先级是怎样的?

运算符

. 算数运算符:加减乘除,整除(除并向下取整: //),取模(%),幂(**),
2. 赋值运算符:=, +=,-=,*=,/=
4. 成员运算符:in, not in
5. 位运算符:与,或,异或,移位
6. 三元运算符: 不是很懂
7. 逻辑运算符:and, or, not
8. 比较运算符:!= 不等于,==等于,其余同算数运算符

优先级

大概原则就是先把自身的运算做完,再去和其他的对象进行运算
2**3 - 1 ,肯定先取幂得到8,再去和1进行运算
运算符优先级

python 中 is, is not 与 ==, != 的区别是什么?

is, is not 对比的是两个变量的内存地址
= = != 对比的是两个变量的值
比较的两个变量,指向的都是地址不可变的类型(str等),那么is,is not 和 ==,!= 是完全等价的。
对比的两个变量,指向的是地址可变的类型(list,dict等),则两者是有区别的。

python 中包含哪些数据类型?这些数据类型之间如何转换?

基本类型

整型 int
浮点型 float
布尔型 bool

容器类型

字符串 str
元组 tuple
列表 list
集合 set
字典 dic

了解数据类型

print(type())
isinsistance()
在这里插入图片描述

转换类型

在这里插入图片描述

其他

Python 里面万物皆对象(object),整型也不例外,只要是对象,就有相应的属性 (attributes) 和方法(methods)
用dir()了解

位运算

原码,反码,补码

在计算机中使用补码,对于正数补码就是原码(即十进制化为二进制后的代码);负数则为反码加1(反码是把原码的1换成1,1换成0,包括最高位代表正负号的1)

位运算符

与:串联,同是1才是1,否则是0
或:并联,一个是1即是1,都是0才是0
或与:相同则为假为0;不同则为真为1(符合交换律和结合律,相同的两个数或与则为0)
反:0变1,1变0(注:显示的是补码,011–>3, (反码100),101–> -3
左移:n<<m, n*(2)^m
右移:n>>m, n/(2)^m
在这里插入图片描述

快速计算

通过异或交换两个整数

a^=b, # a = a 异或b
b^=a, # b = b 异或 a异或b,通过交换律即为a
a^=b, # a = a异或b异或a,通过交换律为b

通过 a & (-a) 快速获取a的最后1位置的整数

注:计算机中显示的是补码,负数的补码是反码+1
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

遗留的问题,待理解

在这里插入图片描述

位运算课后作业

练习题:

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

解题思路

或与:相同的元素返回0
结合:for 循环
代码实现:待后续学习

  相关解决方案