Python基础(一)基本类型
创始人
2024-03-03 10:40:04
0

一、Number数字

1.1 注意事项

Python支持intfloatboolcomplex类型。

complex是复数类型a+bj(或complex(a,b)),a表示实部,b表示虚部,a b本身是float类型。

Python使用变量时,无需声明变量。

a=3 # 自动声明为int
b=3.4 # 自动声明为float
a=3/4 # a的数据类型从int改成了float

Python除法/总是返回一个浮点数,如果你想只返回整数部分,请使用//

7//2 # 返回3
7.0//2 # 返回3.0

Python支持幂运算:

5**2 # 5^2

Tips:在交互模式,和matlab一样的ans用下划线代替_

1.2 数学函数

内置函数含义
abs(x)绝对值
max(x1,x2,…xn)最大值
min(x1,x2,…xn)最小值
round(x,[n=0])四舍五入小数点n位
math扩展含义
ceil(x)不小于x的最小整数
floor(x)不大于x的最小整数
fabs(x)绝对值
log(x[, base=e])base为底的对数
log2(x)2为底的x对数
log10(x)10为底的x对数
sqrt(x)平方根
(小数,整数)=modf(x)整数和小数部分
acos(x)反余弦
asin(x)反正弦
atan(x)反正切
atan2(y,x)反正切
cos(x)余弦
sin(x)正弦
tan(x)正切
degrees(x)弧度转角度
radians(x)角度转弧度
pi圆周率
e自然数e

1

math库中还有其他的函数,需要时可以查阅:https://docs.python.org/3/library/math.html

random扩展含义
choice(seq)从序列中随机选择一个元素
randrang([start] stop [,step=1])生成的range中选择一个元素
random()随机生成一个实数,范围[0,1)
seed([x])随机种子
shuffle(lst)打乱序列
uniform(x,y)[x,y]随机实数

二、字符串

2.1 注意事项

Python有字符串型但是没有字符型。定义也和大多数语言一样:

var1 = "Hello"
var2 = 'Hello'
var3 = """
这是一个可以
换行的
字符串
"""

上面有三种类型表示字符串内容,分别是单引号、双引号和三引号。如果没有转义单引号双引号都可以,如果有双引号特殊字符,那你用单引号可以不用多双引号进行转义,同理,如果你用单引号,双引号就无需转义[1]。

2.2 运算

操作符含义
+连接符号左右字符串
*重复左字符串
[n]从0开始数第n个
[a:b]区间[a,b)的所有有序字符串
in左字符是真的在右字符串里面吗?
not in左字符是真的不在右字符串里面吗?

重点来看中括号的切片操作:对于字符串,我们用中括号就可以选取:
在这里插入图片描述
和C语言一样下标从0开始。你可以选择某个元素:

str[2] # 结果是n
str[-5] # 结果是u

也可以按范围选取:

str[:] # 全部
str[0:5] # [0,5)部分即Runnoo
str[0:] # 从零开始到最后一个元素下表(也就是6)
str[:6] # [0,5]所有字符

2.3 格式化字符串

格式如下:

"   %格式化符号   %格式化符号" % (数据,数据)

看个具体的例子:

name="Fred"
"Hello %s!"%(name)

复杂一点的有:

name="Fred"
age=2
"Hello %s I am %d year old !"%(name,age)

格式化符号与C语言一致。

2.4

方法含义
capitalize首字母大写
center(width)长度width居中字符串
count(str,beg=0,end=len(string))str在范围内出现的次数
endwith(obj,beg=0,end=len(string))检查字符串是否以obj结尾
expandtabs(tabsize=8)字符串tab符号转为空格
find(str,beg=0,end=len(string))str是否在指定范围内,如果在返回引索,否则-1
format()%[(name)][flags][width].[precision]typecode
index(str,beg=0,end=len(string))str是否在指定范围内,如果在返回引索,否则返回一异常
isalnum()是否为字母后者数字
isalpha()是否为字母或者中文
isdigit()是否为数字
isupper是否全部大写
islower()字母是否都为小写
isnumeric()是否只包含数字
isspace()是否为空格
istitle()是否为标题化的
s1.join(seq)以s1作为分隔的序列合并成一个
#!/usr/bin/python3s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))

三、序列(List)

序列里面,你可以随意放置任何你想要的类型,Python会帮你处理好这些数据的存放。

3.1 索引(Indexing)

在序列中每个元素都有编号,索引(Indexing),从下标1开始,可以是正数也可以是负数。0表示第一个,-1表示最后一个。

a=[1,2,3,4,5,6,7,8] # 如果存放同一个类型,那就和C里面的数组没有什么不一样了
b=['zhangsan',1223,'Beijing'] # 如果存放不同类型,这就是C/C++没有的了(外部库除外)

3.2 切片(Slicing)

切片的意思是把序列的一部分“切”出来。最一般的形式就是:

a=[5,4,46,42,45,62,27,8] 
a[0:2]                  #下标0-2(不含右边)的元素组成的序列
a[-3:-1]                #倒数第三个元素到最后一个
a[-3:]                  #直接省略了-1,默认到最后一个元素
a[:]                    #整个序列,所以为啥我不直接用a?不是更加方便
a[0:-1]                 #下标从0到倒数第一个-1小标, 但是a[-1:0]却没有这样的用法,

一个不怎么常用的操作,就是固定步长抽取序列中的元素:

a[0:-1:1]               #从第一个开始,每隔一个抽取一个元素组成序列
a[8:0:-1]               #从第八个元素开始(不含),从左往右开始,此时步长正负等于方向

3.3 序列相加、相乘

Python通过重载加号实现两个元素的拼接,星号后的数字代表重复多少次。

3.4 None 空列表 和初始化

表示一个什么都没有的值None,一个长度为0的列表a=[]

3.5 in 是否存在

a=[1,2,3,4,5,6,7,8]
print(1 in a) #True

3.6 min max len

最大、最小和长度都是内置的

3.7 list类

list('Hello') #返回元素分别是H e l l o的序列

3.7 切片赋值、等效删除、等效插入、方法删除

a=[1,2,3,4,5,6,7,8]
a[2]=4          # 将第三个元素改成了4
a[2:3]=[99,88]  # 第3、4个元素变成了99 88
a[2:3]=[]       # 等效删除,赋值为空不就行了
a[2:3]=[2,3,99] # 偷偷加了一个99进去

3.8 切片方法

此时,list是一个类,调用方法的符号为.

方法名称含义
append添加到末尾
clear清除所有元素
copy深拷贝
count(ele)统计ele出现了多少次
extend扩展序列
index(ele)返回某个元素的第一次出现的下标
insert(a,b,c,d)插入一些元素,注意元素可以不同类型
pop弹出
remove删除某个元素
reverse反序
sort排序
a=[1,2,3]
b=a
b[1]=4
>>>a
[1,4,3]  # 一般的赋值其实是深拷贝,拷贝的是指针,这一点要注意

注意区分+拼接

a=[1,2,3]
b=[4,5,6]
a+b # 

这个比较实用,C++可要进行遍历,写一堆东西

a=[1,2,3,4,5,6,7,8]
print(a.index(8)) # 打印7

注意sort不会改变原来序列

a=[3,4,1,7]
b=a.sort() # 不行,b和a都指向同一个区域,排序会乱掉
d=[3,3,4,5,5,6,8,7,8,99]gt4=[ele for ele in d if ele>4]## 创建
a=[3,4,5,6,7]        # 纯数字
b=['a','b',5,8,'ii'] # 字符和数字混合
c=[a,b,'ddd']        # 嵌套
aa=d[2:5]
aa=[887,888,889]## 切片是针对序列型对象的一种高级引索的方法,普通的引索只能给出一个对应元素
## 切片是利用精湛的刀工选出自己想要的部分并将其拼在一起
## ref:https://blog.csdn.net/Zombie_QP/article/details/125063501
## 基本语法 序列对象[起点:终点:步长],注意是左闭右开,步长默认为1
## 其中大多数东西都可以省略,如
## d[::] 省略起点终点和步长 d[:] 起点终点步长和冒号,你可以只给起点、终点和步长
## 你可以连续切片,虽然感觉没有什么用 a[0:8][2:5][-1]
## 负数表示倒数第几个
## 切片之后操作的是原序列本身,如果不想这么做,可以拷贝到另一个序列中
## 泛型在list上的应用
## list = [i for i in range(5) if i>3]
## list也有很多内置的方法

[1] https://www.zhihu.com/question/59337505
[2] https://www.runoob.com/python3/python3-string.html

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...