python01字符串位运算_Python 学习Task01 -变量,以运算符,数据类型及位运算

@[Toc]

一些注意事项

python要区分大小写

缩进非常重要

变量、运算符与数据类型

1.注释

为什么使用注释?

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

基本内容

#用于 单行注释

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

2.运算符

算术运算符

操作符

名称

+

-

*

/

//

整除

%

取余

**

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

【例子】

print(11//3) # 3.65656565->3

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

比较运算符

逻辑运算符

and 与

or 或

not 非

成员运算符

in not in

身份运算符

is is not

例子看[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

整型

-876, 10

float

浮点型

3.149, 11.11

bool

布尔型

True, False

str

字符串型

'hello',"hello"

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

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

a = 1031

print(a, type(a))

# 1031

类型转换

通过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.各种按位操作

注意:

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) -> int:

a = 0

for i in nums:

a ^= i

return a

print(singleNumber([2,2,1]))

print(singleNumber([4,1,2,1,2]))

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值