Task01 -变量,以运算符,数据类型及位运算

一些注意事项

  • python要区分大小写
  • 缩进非常重要

变量、运算符与数据类型

1.注释

为什么使用注释?

阐述代码要做什么以及是如何做的

基本内容

  • #用于单行注释
  • ''' ''',""" """用于多行注释(例子不举了)

2.运算符

算术运算符

操作符名称
+
-
*
/
//整除
%取余
**

算术运算符的操作与数学上的没什么区别,但值得注意的是//不遵循四舍五入原则,运算取整时保留整数的下界,即偏向于较小的整数.

【例子】

print(11//3) # 3.65656565->3
print(11//5) # 2.2->2

比较运算符

查看 Datawhale 01. 变量、运算符与数据类型即可知道

逻辑运算符

and

or

not

例子看Datawhale 01. 变量、运算符与数据类型

成员运算符

in not in

例子看Datawhale 01. 变量、运算符与数据类型

身份运算符

is is not

例子看[Datawhale 01. 变量、运算符与数据类型]

位运算符

Datawhale 01. 变量、运算符与数据类型

三元运算符

【例子】

x, y = 4, 5
if x < y:
    small = x
else:
    small = y

print(small)  # 4

【例子】

x, y = 4, 5
small = x if x < y else y  # 三元运算符
print(small)  # 4

运算符的优先级

下表按照从高到低的顺序列出了所有运算符的优先级

运算符优先级

变量与赋值运算符

  • 为什么有变量?

    python语法基础之一,使用变量保存数据

  • 变量如何定义

    • 变量名可以使用字母,数字,下划线,但只能以字母,下划线开头
    • 不能使用python中的内置函数名或保留字
  • =为赋值运算符

    注意赋值运算符数学中的=慨念不同

    【例子】

    print(x+=2) # ->x = x+2,在数学中不成立
    

3.数据类型与转换

常见的数据类型

类型名称示例
int整型 <class 'int'>-876, 10
float浮点型<class 'float'>3.149, 11.11
bool布尔型<class 'bool'>True, False
str字符串型<class 'str'>'hello',"hello"

在python中可以使用type函数对变量的类型进行检查

【例子】通过 print() 可看出 a 的值,以及类 (class) 是int

a = 1031
print(a, type(a))
# 1031 <class 'int'>

类型转换

通过python的内置函数可实现不同类型之间的强制转换.

  • int():将一个数值或字符串转换成整数,可以指定进制。
  • float():将一个字符串转换成浮点数。
  • str():将指定的对象转换成字符串形式,可以指定编码。

位运算

1.原码,反码,补码(二进制的三种表达形式)

计算机内部使用补码表示

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

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

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表示负数。在位运算中符号位也参与运算。

2.三种进制之间如何相互转换

【例子】

0o1, 0o20, 0o377  -> 1,16,255         
# 八进制常用表示,0o或者0O开头,后面接数字
0x01, 0x10, 0xFF  -> 1,16,255          
# 十六进制常用表示,0x或者0X开头,后面接0-9,A-F
0b1, 0b10000, 0b11111111   -> 1,16,255  
# 二进制常用表示,0b开头,后面接01组成的数字

【强制转换】

oct(64), hex(64), bin(64)
('0o100', '0x40', '0b1000000')

3.各种按位操作

参考Datawhale 02位运算

注意:

  • Python中bin一个负数(十进制表示),输出的是它的原码的二进制表示加上个负号
  • Python中的整型是补码形式存储的。
  • Python中整型是不限制长度的不会超范围溢出。

作业


练习题

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

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

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

题目说明:

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

Output file
result1: 1
result2: 4
"""

解题思路:

  • 0 ^ A = A
  • B ^ B = 0
  • A^ B ^ B = A
  • A^ B ^ B ^ C ^ C = A

代码如下:

class Solution:
  def singleNumber(self,nums):
      a = 0
      for i in nums:
         a ^= i
      return a


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值