Python基础知识3

位运算符

按位与(&)

1.表达式:a & b

2.功能:对于每一位,如果a和b的相应位都是1,则结果位为1,否则为0。

a=12 # 二进制为1100
b=25 # 二进制位11001
c=a&b 
print(c) # 输出结果为8,二进制为01000(1000)

按位或(|)

1.表达式:a | b

2.功能:对于每一位,只要a和b中至少有一位是1,则结果位为1,否则为0。

x=3 #二进制为11
y=2 #二进制为10
z=x|y #任何进制数都会按照二进制的数去位运算
print(z) #二进制为11,十进制为3,打印输出结果为3

按位异或(^)

1.表达式:a^b

2.功能:对于每一位,如果a和b的相应位不同(一个为1,另一个为0),则结果位为1,否则为0。

# 位运算异或
x=3 #二进制为11
y=2 #二进制为10
z=x^y #任何进制数都会按照二进制的数去位运算
print(z) #二进制为1,十进制为1,打印输出结果为1

3.两个变量之间进行数值的对换(三种方法)

x=100
y=200
temp=x
x=y
y=temp
print(x)#200
print(y)#100

x=100
y=200
x=x^y
y=x^y
x=x^y
print(x)#200
print(y)#100

x=100
y=200
x,y=y,x 
print(x)#200
print(y)#100

赋值运算符

1.赋值运算:赋值(=)、加法赋值(+=)、减法赋值(-=)、乘法赋值(*=)、除法赋值(/=)、取模赋值(%=)、幂运算赋值(**=)、整除赋值(//=)

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

x=100
x=x+20 #"+="是一种运算符,相当于先取值x+20 然后再赋值x=x+20
print(x) #120 100+20
x+=20 #恒等于x=x+20 120+20
print(x) #140
x+=x+20 #恒等于x=x+(x+20)
print(x) #300  140+140+20

数学函数

abs(x)

1.定义:返回数字的绝对值,如abs(-10) 返回 10

2.返回值为一个整型

x=-10
y=abs(x)#返回这个数据的绝对值
print(x)#-10
print(y)#10 

math.ceil(x)

1.定义:返回数字的上入整数,如math.ceil(4.1) 返回 5。

x=3.00001
y=math.ceil(x)
print(y)#向上取整 4,只要整数后面有有效的小数,那么就会向上取整

cmp(x, y)

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

x=100
y=12
print((x>y)-(x<y)) #0 -1 1

math.exp(x)

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

math.fabs(x)

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

math.floor(x)

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

x=3.90001
y=math.floor(x)
print(y) # 向下取整 3 不管后面的小数部分数据多大,都舍去

math.log(x)

1.定义:如math.log(math.e)返回1.0,math.log(100,10)返回2.0

x=math.log(100,10) #2.0 log10**100等价于10的多少次方等于100
x=math.log(10000,10) #4.0 可能有时不是一个整数,但是十分接近答案的数,因为Python二进制计算的误差
x=math.log(1000,10) #2.9999999999999996(误差所致) 结果本应该为3.0

y=math.log(10) #2.302585092994046 等价于loge**10 e的多少次方等于10

y=math.log(2.71828)# e的多少次方等于2.71828

print(math.e)# 数学中对数中的e
z=math.log(math.e) #1.0 代表loge**e 结果表示的是e的多少次方等于e

math.log10(x)

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

print(math.log10(1000)) #3.0 相比于math.log(1000,10)误差更小,结果表示的是10的多少次方等于1000

max(x1, x2,...)和min(x1, x2,...)

1.定义:返回给定参数的最大值(最小值),参数可以为序列。

math.modf(x)

1.定义:返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

y=math.modf(3.14)
print(y)# (0.14000000000000012, 3.0) 返回整数部分和小数部分

x,y=math.modf(3.14)
print(y) # 3.0
print(x) # 0.14000000000000012

math.pow(x, y)

1.定义:x**y 运算后的值。

print(math.pow(2,8)) #256.0
print(2**8) #256

round(x ,n)

1.定义:返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 

 a=4.50
     x=round(a)# 4 四舍五入,奇进偶不进
     print(x) #4
     
     a=4.51
     x=round(a)
     print(x) #5
     
     b=3.5
     y=round(b)
     print(y) #4 四舍五入,奇进偶不进
     
     d=3.51
     e=round(d)
     print(e) #4

(2)保留整数或小数超过一个小数时:看保留位的下下位是否存在

a=3.51234
x=round(a,3)# 保留3位小数
print(x) #3.512
     
b=3.5250
y=round(b,2)
print(y) #3.52 第四位小数位0,所有第三位小数不进位
     
c=3.5251
z=round(c,2)
print(z)# 3.53
     
d=3.5260
y=round(d,2)
print(y) #3.53 第四位小数位0,所有第三位小数大于了5,所有进位

math.sqrt(x)

1.定义:返回数字x的平方根。

随机数(使用随机数之前先导入random基础库:import random)

random.choice(seq)

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

arr=[10,20,30,89]
y=random.choice(arr)#具有返回值 
print(y) #arr中的随机一个数

random.randrange (start, stop,step)

1.定义:从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1

 # SGD:优化思想,在一推数据中随机挑选数据,研究数据规律
    arr=[10,20,30,89,22,44,55,23,44,55,12,44,66,33,66,33]
    # y=random.randrange(10,80,2)#包含10不取80,步长为2[10,30,22……中选择]
    y=random.randrange(2,5)#取出的随机数在此处用作对于的arr的索引
    print(y)
    print(arr[y])#y的范围不能超过arr的长度-1,y为arr的下标

random.random()

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

x=random.random() #0 1
print(x)

#给定一个范围,写出x的表达式,x*(max-min)+min,如:范围[2,30],x*(30-2)+2
#随机生成一个0-1的数赋值给一个变量,将变量带入表达式中,这样就随机生成了一个范围内地数
x=random.random() #0 1
y=x*(18+15)-15
print(y)
print(round(y)) #对随机生成地数取整

random.shuffle(list)

1.定义:将序列的所有元素随机排序,修改原list(无返回值)

 arr=[10,20,30,89]
 # y=random.shuffle(arr)y打印出来是None,不能返回值赋值给变量(无返回值),因为他是一个容器
 random.shuffle(arr) #改变arr的本身顺序
 print(arr) #[30, 20, 89, 10]

uniform(x, y)

1.定义:随机生成实数,它在[x,y]范围内.

y=random.uniform(20,80)
print(y) #68.0353863879441

三角函数(使用三角函数之前先导入math基础库:import math)

math.acos(x)、math.asin(x)、math.atan(x)

1.定义:返回x的反余弦弧度值、正弦弧度值、正切弧度值。

 r=180/math.pi #math.pi为圆周率Π,r表示一弧度等于多少度,π,即圆周率,其在弧度制中的数值等于180度。
 x=math.acos(0.5)
 print(x) #1.0471975511965979(弧度)
 print(x*r) #60.00000000000001 结果为0.5地cosx地x为60度

math.atan2(y, x)

1.定义:返回给定的 X 及 Y 坐标值的反正切值。

print(math.atan2(4,4)) #0.7853981633974483 就是一个点(x,y)的正切值度数,恒等于tans=x/y,求s的弧度值
print(math.atan2(4,4)*r) #45.0 这是一个四五度的直接

math.cos(x)、math.sins(x)、math.tan(x)

1.定义:返回x的弧度的余弦值、正弦值、正切值。

deg=math.pi/180#一度等于多少弧度
print(math.cos(60*deg)) #0.5000000000000001 60弧度的cos(60*beg)的结果为0.5

math.degrees(x)

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

math.radians(x)

1.定义:将角度转换为弧度

数学常量(使用数学常量之前先导入math基础库:import math)

math.pi数学常量 pi(圆周率,一般以π来表示)
math.e数学常量 e,e即自然常数(自然常数)。

字符串表达式

1.定义:引号引起来的单引号、双引号、三引号(三个三引号或双引号)

x='hello' 
y="hqyj"
z="""python""" 
a='''人工智能''' 

2.引号不是字符串,引号是标明(定义)这个变量值是字符串类型,所以打印字符出时无引号

3.str=智能 #智能被Python.exe认为了一种标识符,出现报错

4.如果没有变量来接收字符串,相当于一个注释

5.三单(双)引号标注的字符串可以换行书写

x='''
hello'''
print(x)
x="""
hello"""

转义字符串(使用反斜杠\对字符进行转义)

1.\n 换行

str="hello\n666"
print(str) #hello
           #666

2.\r 回车

str="hello\r666" #回车相当于删除\r前的内容
print(str) #666

3.\t 缩进

tr="hello\t666"
print(str)#hello    666

4.\\ 表示 \

str="http://www.baidu.com"#http://www.baidu.com
print(str)
str="www\\read\\news" # www\read\news \声明后面的\不是转义字符\,而是单纯的\
print(str)
    
str=r"hello\read\news" #hello\read\news r声明字符出中不存在转义字符
print(str)

字符串运算

1.字符串连接:+

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

x='Py' 'thon'
print(x)#Python

str1="90.87"
str2="%"
str3=str1+str2
str4=str1+"m"
print(str3)
print(str4)
print(type(str3))
print(type(str4))

3.字符串多次重复

print(str*3) #abcabcabc
print(str*0) #空字符串

str=123 
print(str*3) #369
print(str*0) #0

x=3*('a' + 'b')
print(x)#ababab

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

x='abc'[1]
print(x)#b

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

x='huaqyj'[0:2]
print(x)#hu
y='huaqingyunajian'[6:]
print(y)#gyunajian

str="文\nab c心一言知识增强大语言模型 百度全新一代知识增强大语言模型"
print(str[2]) #第三个字 索引从0开始
print(str[-2]) #倒数第二个字 索引从-1开始
print(222,str[4],111) #222   111 空字符串也站位
print(222,str[1],111) # 111\n转义字符占一个字符位
print(str[5:8]) #取索引为5开始的字符,取到索引为7的字符
print(str[:8]) #取索引为0开始的字符,取到索引为7的字符
print(str[5:]) #取索引为5开始的字符,取到结束的字符
print(str[2:-2]) #取索引为1开始的字符,取到索引为-3的字符
print(str[3:8:2]) #取索引为3开始的字符,取到索引为7的字符,跳格取数,步长为2(3,5,7)

6.字符串不能和数字相加

# str1=10# 报错
str1=format(10) #早期版本可以用str()强转,后更改为format强转为字符串
str2="cm"
str3=str1+str2
print(str3) #10cm
print(type(str3))#<class 'str'>

f-string

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

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

name = 'hqyj'
print('Hello %s' % name)#Hello hqyj %s代表字符出

x=10
y="cm"
z="%dcm"%x
print(z) #10cm %d代表数字

3.f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

x=10
re=f"hello,{x}cm" #{}内的变量表示插入进来的变量,可多个变量插入
print(re) #hello,10cm

import random
r=int(random.uniform(0,255))
g=int(random.uniform(0,255))
b=int(random.uniform(0,255))
str=f"rgb({r},{g},{b})"
print(str) #随机rgb(155,70,238)

x=10
y=20
print(f"{x+y=}") #变量取值表达式,将{}中的x+y=作为一个字符串,再在=后面插入x+y的结果

字符串的常用函数API(Python 的字符串常用内建函数)

capitalize()

1.定义:将字符串的第一个字符转换为大写

str="alibaba is very nice"
str1=str.capitalize() # 首字母大写,不会改变原值,而是返回一个新值
print(str) # alibaba is very nice 
print(str1) # Alibaba is very nice

upper()

1.定义:转换字符串中的小写字母为大写

str="aBc"
str1=str.upper() #字母全部大写 变量名调用函数
print(str1) # ABC

lower()

1.定义:转换字符串中所有大写字符为小写.

str="aBc"
str1=str.lower() #字母全部小写
print(str1) #abc

len(string)

1.定义:返回字符串长度

str="文心一言知识增强大语言模型 百度全新一代知识增强大语言模型"
print(len(str)) #29

split(sep="", maxsplit=string.count(str))

1.定义:以 sep为分隔符截取字符串,如果 maxsplit有指定值,则仅截取 maxsplit+1 个子字符串

str="https://www.baidu.com/s?wd=马爸爸&rsv_spt=1&rsv_iqid=123456&issp=1"
arr=str.split("&")
print(arr) #['https://www.baidu.com/s?wd=马爸爸', 'rsv_spt=1', 'rsv_iqid=123456', 'issp=1']
arr=str.split("?")[1]
print(arr)#wd=马爸爸&rsv_spt=1&rsv_iqid=123456&issp=1
print(arr.split("&"))#['wd=马爸爸', 'rsv_spt=1', 'rsv_iqid=123456', 'issp=1']
print(arr)#wd=马爸爸&rsv_spt=1&rsv_iqid=123456&issp=1
arr=str.split("?")[1].split("&")
print(arr)#['wd=马爸爸', 'rsv_spt=1', 'rsv_iqid=123456', 'issp=1']

find(str, beg=0, end=len(string))

str="abcdeb"
index=str.find("b")
print(index) #打印b的索引 没有b打印-1 有多个b时返回第一个b的下表
#查找下一个b
index=str.find("b",index+1)
print(index) #打印b的索引 没有b打印-1 有多个b时返回第一个b的下表

回文

str="abc上海自来水来自海上"
str1=str[::-1] #反转 倒序
print(str1)
str1=str[::3] #反转 正序每个两个字符取第三个字符
print(str1)

str="asdasd"
re=str[::-1]==str and len(str)==len("上海自来水来自海上")
print(re)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值