9.26

1.1位运算符

按位与:a&b,a和b的对应二进制位数进行与操作

a = 0b1011  # 二进制表示的11

b = 0b1101  # 二进制表示的13

result_and = a & b  # 计算两者之间的按位与

print(bin(result_and))  # 输出:0b1001 (十进制为9)

按位或:a|b,a和b的对应二进制位数进行或操作

a = 0b1011

b = 0b1101

result_or = a | b  # 计算两者之间的按位或

print(bin(result_or))  # 输出:0b1111 (十进制为15)

按位异或:a^b,a和b的对应二进制位数进行或操作

a = 0b1011

b = 0b1101

result_xor = a ^ b  # 计算两者之间的按位异或

print(bin(result_xor))  # 输出:0b110 (十进制为6)

若a^b=c,则必有c^b=a,c^a=b

x=100

y=200

要求交换x,y的值

方法一:

temp=x

x=y

y=temp

方法二:异或操作

x=x^y

y=x^y    //实际上右侧x^y已得到原来x的值,因为要交换x,y的值,所以将原先x的值赋值给y

x=x^y    //实际上右侧x^y已得到原来y的值,因为要交换x,y的值,所以将原先y的值赋值给x

方法三:

x,y=y,x

移位操作:1.首先,我们需要明白,数字在计算机中是以补码保存的。

  1. 正数的原码、反码、补码都是一样的,负数的反码是在保留二进制原码符号位后其余位数取反,负数的补码则是取其反码+1得到,且负数的补码保留二进制符号位后其余位取反再+1可得到其原码。

a=5

print(~a)

其结果为-6

5=0101    正数补码即原码,python取反操作后为1010,即取反数的补码,为负数,保留符号位取反+1得原码为1110,即-6

a=-8

print(~a)结果为7

-8=11000    补码为11000,Python取反操作为00111,为取反数的补码,正数,原、反、补码相同,即7

按位取反:a~b,a和b的对应二进制位数进行或操作

a = 0b1011

result_not = ~a  # 计算a的按位取反

print(bin(result_not))  # 输出:-0b1100

左移位:a<<b,将a的二进制位向左移动b位,左边移出的部分会被丢弃,右边空出的位置补零。

右移位;a>>b,将a的二进制位向右移动b位,对于无符号整数,右边移出的部分会被丢弃,左边空出的位置补零(通常补0);对于有符号整数,右移时取决于具体实现,可能是算术右移(符号位扩展)或者逻辑右移(补0)。

1.2赋值运算符

=:赋值

+=:加赋值,加等于x+=a即x=x+a,以下都同理

-=:减法赋值

*=:乘法赋值

/=:除法赋值

%=:取模赋值

**=:幂运算赋值

//=:整除赋值

没有 a++、 a-- 这种自增自减运算符;

1.3数学函数

部分函数是python环境自带的 部分是math模块带的 部分是公共的

先引入math模块:

import math

函数:

abs(x):返回数字的绝对值,如abs(-10) 返回 10

math.ceil(x):返回数字的上入整数,如math.ceil(4.1) 返回 5

cmp(x,y):如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。

math.exp(x):返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045

math.fabs(x):以浮点数形式返回数字的绝对值,如math.fabs(-10) 返回10.0

math.floor(x):返回数字的下舍整数,如math.floor(4.9)返回 4

math.log(x):如math.log(math.e)返回1.0,math.log(100,10)返回2.0

math.log10(x):返回以10为基数的x的对数,如math.log10(100)返回 2.0

max(x1,x2,....):返回给定参数的最大值,参数可以为序列。

min(x1,x2,.....):返回给定参数的最小值,参数可以为序列。

math.modf(x):返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

math.pow(x,y):x**y 运算后的值。

round(x,n):返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 1.保留整数只有一个小数时:4舍6入5看齐,奇进偶不进 2.保留整数或小数超过一个小数时:看保留位的下下位是否存在

math.sqrt(x):返回数字x的平方根。

1.4随机数

先引入random库基础库:import random

random.choice(seq):从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

random.randrange (start, stop,step):从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1

random.random():随机生成下一个实数,它在[0,1)范围内。

random.shuffle(list):将序列的所有元素随机排序,修改原list

uniform(x, y):随机生成实数,它在[x,y]范围内.

1.5三角函数

import math

math.acos(x):返回x的反余弦弧度值。

math.asin(x):返回x的反正弦弧度值。

math.atan(x):返回x的反正切弧度值。

math.atan2(y, x):返回给定的 X 及 Y 坐标值的反正切值。

math.cos(x):返回x的弧度的余弦值。

math.sin(x):返回的x弧度的正弦值。

math.tan(x):返回x弧度的正切值。

math.degrees(x):将弧度转换为角度,如degrees(math.pi/2) , 返回90.0

math.radians(x):将角度转换为弧度

1.6数学常量

import math

math.pi:数学常量pi,即圆周率

math.e:数学常量e,自然常数

1.7 Python 字符串(String)

1.字符串表达式

引号引起来的单引号、双引号、三引号(三个三引号或双引号);

2.type结果

字符串用type函数检测的结果为str

3.转义字符串

使用反斜杠\对字符进行转义,如\r 回车 \n 换行 \t 缩进 \\ 表示 \

x="hello\nhqyj"

print(x)

"""

打印结果为

hello

hqyj

"""

x="hello\thqyj"

print(x)

"""

打印结果为

hello hqyj

"""

x="hello\\hqyj"

print(x)

"""

打印结果为

hello\hqyj

"""

4.不转义

字符串前加r表示原始字符串:所见即所得,不转义;

x=r'c:\window\user\data'

print(x)

"""

打印结果为

c:\window\user\data

"""

5.字符串运算

字符串连接:+;

相邻的两个或多个 字符串字面值 (引号标注的字符)会自动合并

x='Py' 'thon'

print(x)#Python

字符串多次重复, 如 :

x=3*('a' + 'b')

print(x)#ababab

可以把字符串看成数组,通过下标访问字符,支持负数:

x='abc'[1]

print(x)#b

支持通过下标截取子字符串,第一个参数省略表示0,第二个参数省略表示到最后:

x='huaqyj'[0:2]

print(x)#hu

y='huaqingyunajian'[6:]

print(y)#gyunajian

6.f-string

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法(旧的字符串格式化自行了解)。

之前我们习惯用百分号 (%):

实例

name = 'hqyj'

print('Hello %s' % name)#Hello hqyj

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去

用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

x = 1

print(f'{x+1}')   #2   

x = 1

print(f'{x+1=}')   #x+1=2  

1.8字符串的常用函数API

capitalize()将字符串的第一个字符转换为大写

count(str, beg= 0,end=len(string))返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

find(str, beg=0, end=len(string))检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

len(string)返回字符串长度

lower()转换字符串中所有大写字符为小写.

replace(old, new , max)把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。

split(sep="", maxsplit=string.count(str))以 sep为分隔符截取字符串,如果 maxsplit有指定值,则仅截取 maxsplit+1 个子字符串

upper()转换字符串中的小写字母为大写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值