python基础—基本数据类型—数字,字符串,列表,元组,字典
1、运算符
(1)基本运算符
+ 加法
- 减法
* 乘法
/ 除法
** 幂
// 取整(除法)
% 取余(除法)
(2)判断某个东西是否在某个东西里面包含
in
not in
(3)结果是值
a、算术运算
a=10*10
b、赋值运算
a=a+! a+=1
(4)结果是布尔值
a、比较运算
a=1>5
b、逻辑运算
a=1>6 or 1==1 一方为真则为真
a=1>6 and 1==1 同时为真则为真
c、成员运算
a="小" in "小缠绵"
a="小" not in "小缠绵"
2、基本数据类型
(1)、数字 int
a、int 将字符串转换为数字
a="123"
print(type(a),a) #<class 'str'> 123 b=int(a)
print(type(b),b) #<class 'int'> 123 num="0011"
v=int(num,base=2)
print(v) #以二进制的形式 v=3
b、 bit_length 当前数字的二进制,至少用n位表示
age=2 r=age.bit_lenght() print(r) #2, 2的二进制为11,如果age=5,则输出为3,因为5的二进制为101
(2)、字符串 str
python中字符串有三种表现形式,分别是单引号,双引号,三引号
字符串一旦创建,不可修改
一旦修改或者拼接,都会造成重新生成字符串
a、首字母大写 capitalize()
test="alex"
v=test.capitalize()
print(v)
b、所有的字符变小写 casefold()和lower()
区别:casefold()可以改变很多未知的,lower()只能改变熟知的
test = 'alex'
v1=test.casefold()
print(v1)
v2=test.lower()
print(v2)
c、设置宽度,并将内容居中 center()
test = 'alex'
v3=test.center(20,"*") # 20 代指总长度,*空白位置填充,一个字符,可有可无
d、字符串中寻找子序列出现的次数 count(sub,start=None,end=None)
sub:子序列
start:起始位置,默认为空
end:终止位置,默认为空
test = 'alex'
v4=test.count('l',1,4)
e、判断以什么结尾/开头,endswitch(suffix, start=None, end=None)和startswitch(suffix, start=None, end=None)
suffix:需要判断你的字段
start:起始位置
end:终止位置
返回值为布尔值
test = 'alex'
v5=test.endswith('ex',1,4)
v6=test.startswith('a')
f、从开始往后找,找到第一个后,获取其位置
①find()
test = 'alex'test.find('ex') >>2
②index()
test = "alex"
test.find('ex') >>2 # 说明如果找不到会抛出一个异常
g、格式化,将一个字符串种的占位符替换为指定的值
(1)指定参数
test='I am {name},age {a}'
print(test)
v=test.format(name='Christian',a=26)
print(v)
(2)根据索引
test1='I am {0},age {1}'
print(test1)
v1=test1.format('C',19)
print(v1)
h、字符串中是否只包含 字母和数字 结果为Ture False
v=test.isalpha()
i、当前输入是否是数字
①、只判断数字,对于特殊字符以及汉字不支持
test="二"
v1=test.isdecimal() >> False
②、可以含有特殊字符,比如②,不支持汉字
v2=test.isdigit() >> False
test1 = "②"
test1.isdigit() >> True
③、同时支持数字,汉字,以及特殊字符
test = '二'
test.isnumeric() >>True
test1 = '②'
test1.isnumeric() >>True
test2 = "2"
test2.isnumeric() >>True
j、判断是否存在不可显示的转义字符,若没有,输出ture,否则false
test="ssfsgghh\t"
test.isprintable() >>False # 返回False 表示存在
test = "safaf\\t"
test.isprintable() >>True # 返回True 表示不存在
k、判断是否全是空格,是输出Ture,否则False
test=' '
v=test.isspace() >>True
l、判断是否是标题(标题每个单词的首字母都是大写)并转换为标题
test='dafgg gsgh hfsfs' v1=test.istitle() # 判断是否为标题
print(v1) #输出V1为False
v2=test.title() # 转化为标题
print(v2) #输出v2为Dafgg Gsgh Hfsfs
v3=v2.istitle()
print(v3) #输出v3为 Ture
m、将字符串中的每一个元素按照指定分隔符进行拼接
test="你是风儿我是沙"
print(test) #你是风儿我是沙
t=' '
v1=t.join(test)
v2='_'.join(test)
print(v1) #你 是 风 儿 我 是 沙
print(v2) #你_是_风_儿_我_是_沙
n、设置内容宽度,并将内容居左,居中,居右显示
①、将内容居中
test="alxe"
v=test.center(20,"中") #20代指总长度,空白未知填充一个字符,可有可无
print(v) #中中中中中中中中alxe中中中中中中中中
②、将内容居左
test="alex"
v1=test.ljust(20,"中")
print(v1) #alex中中中中中中中中中中中中中中中中
③、内容居右显示
test="alex"
v2=test.rjust(20,"中")
print(v2) #中中中中中中中中中中中中中中中中alex
O、大小写转换(对整个字符串,要么全是大写,要么全是小写)
①、判断是否全部为小写并转换为小写islower()和lower()
test="Christian"
v1=test.islower()
print(v1) #False
v2=test.lower()
print(v2) #christian
v3=v2.islower()
print(v3) #ture
②、判断是否全部为大写并转换为大写isupper()和upper()
test="Christian"
v1=test.isupper()
print(v1) #False
v2=test.upper()
print(v2) #CHRISTIAN
v3=v2.islower()
print(v3) #ture
p、大小写转换(对字符串中的大写字符转换为小写,小写字符转换为大写)
test="Christian"
v=test.swapcase()
print(v) #cHRISTIAN
q、移除指定字符串
①、strip()
test = " Christian "
test.strip() >>Christian
②、lstrip()
test = " Christian "
test.lstrip() >>"Christian "
③、rstrip()
test = " Christian "
test.rstrip() >>" Christian"
r、按照指定字符分割字符串,返回列表
test = "Christian Negan Alex"
test.split() >>["Christian", "Negan", "Alex"]
s、索引方式获取字符串中的某一个字符
test='ALEX'
test[0:3] >>ALE #区间0<=X<3,包头不包尾
test[0] >>A #第一个字符
test[-1] >>X # 取最后一个字符
t、获取字符串的长度
test = 'Negan'
len(test) >>5
u、字符替换 replace(self, old, new, count=None)
test= “Christian”
test.replace('i', '') >>Chrstan
v、一个一个输出字符串的内容
①、while循环
idex=0
test="我要好好学习Python"
while idex < len(test):
v=test[idex]
print(v)
idex+=1 print('end')
②、for循环
for 变量名 in 字符串:
test="我要好好学习Python"
for idex in test:
print(idex)
w、获取字符串中最大和最小字符
①、最大字符 max()
test = "Christian"
max(test) >>"t"
②、最小字符 min()
test = "Christian"
min(test) >>"t"
(3)、列表 list
中括号括起来,用","分割每个元素,元素可以是数字,字符串,列表,bool值……总之所有的东西都能放进去
索引取值,结果是元素
切片,切片结果是列表
列表元素可以被修改(内存地址不会被改变)
a、修改
①、索引的方式进行修改
li=[234,222,'assx',['sssa','sss',[1]]]
li[1]='age'
li > [234, 'age', 'assx', ['sssa', 'sss', [1]]]
②、切片的方式进行修改
li=[234,222,'assx',['sssa','sss',[1]]]
li[1:3]=[2,'a'] >> [234, 2, 'a', ['sssa', 'sss', [1]]]
b、删除
①、索引方式
li=[234,222,'assx',['sssa','sss',[1]]]
del li[1]
li >> [234,'assx',['sssa','sss',[1]]]
②、切片方式同样适用
li=[234,222,'assx',['sssa','sss',[1]]]
del li[0:2]
li >> ['assx',['sssa','sss',[1]]]
c、在原来的值后面追加
①、append(object)
list.append(object) 向列表中添加一个对象object
使用append的时候,是将new_media看作一个对象,整体打包添加到music_media对象中。
music_media = ['compact disc', '8-track tape', 'long playing record']
new_media = ['DVD Audio disc', 'Super Audio CD']
music_media.append(new_media)
music_media >>['compact disc', '8-track tape', 'long playing record', ['DVD Audio disc', 'Super Audio CD']]
②、extend(sequence)
扩展原来的列表,参数为可迭代对象,内部执行for循环
list.extend(sequence) 把一个序列seq的内容添加到列表中
使用extend的时候,是将new_media看作一个序列,将这个序列和music_media序列合并,并放在其后面。
music_media = ['compact disc', '8-track tape', 'long playing record']
new_media = ['DVD Audio disc', 'Super Audio CD']
music_media.extend(new_media)
music_media >>> ['compact disc', '8-track tape', 'long playing record', 'DVD Audio disc', 'Super Audio CD']
d、清空列表 clear()
li = [1,2,3]
li.clear()
li >> []
e、拷贝(浅拷贝)
li = [1,2,3]
v=li.copy()
v >> [1,2,3]
f、计算元素在列表中出现的次数
li=[1,2,3,4,1]
v=li.count(1)
v >> 2
g、根据值获取当前值索引位置(左边优先)
li=[234,222,'assx',['sssa','sss',[1]]] v=li.index(222) v >>1
h、在指定索引位置插入元素
insert(self, index, p_object)
li=[234,222,'assx',['sssa','sss',[1]]]
li.insert(0,"chen")
li >>['chen', 234, 222, 'assx', ['sssa', 'sss', [1]]]
i、pop删除某个值(指定索引,默认是最后一个),并返回当前的值
pop(self,index=None) 改变原列表,内存地址不会发生改变
li=[234,222,'assx',['sssa','sss',[1]]]
v=li.pop(0)
li >>[222, 'assx', ['sssa', 'sss', [1]]]
v >>234
j、删除列表中的指定值,左边优先
remove(self,value) 改变原列表,内存地址不会发生改变
li=[234,222,'assx',['sssa','sss',[1]]]
li.remove(234)
li >>[222, 'assx', ['sssa', 'sss', [1]]]
k、将当前列表进行反转
reverse(self)
li=[234,222,'assx',['sssa','sss',[1]]]
li.reverse()
li >>[['sssa', 'sss', [1]], 'assx', 222, 234]
l、排序
sort(self,key=None, reverse=False) 默认从小到大
li=[234,222,22345]
li.sort(reverse=1) # 1表示为True,倒序排列
li >>[22345, 234, 222]
扩展:
sort()是应用在list上的方法,对已经存在的列表进行操作 ,无返回值。
sorted()函数对所有可迭代对象进行操作(所有能被for循环的都是可迭代对象),会返回一个新的list
li=[234,222,22345]
sorted(li, reverse=True) >> [22345,234,222]
m、列表转换成字符串
①、既有数字又有字符串需要自己写for循环一个一个处理
li=[11,22,33,'123','Alex']
s=''
for item in li:
s=s+str(item)
s >>112233123Alex
②、如果只有字符串,用join()方法
和字符串中的join方法类似
li=["123",'alex']
v=''.join(li)
v >>123alex
n、列表生成式
l = [i for i in range(10) if i % 2 == 0]
l >> [0,2,4,6,8]
(4)、元祖 tuple
元素不可被修改,不能被增加或者删除(一级元素不可被修改)
tu=(111,222,333)
count 获取指定元素在元组中出现的位置
index 获取指定元素在元组中出现的次数
注意:如果元祖中只有一个元素,元素后面需要加一个“,”。
tu=(111,"alex","Christian",111,34)
v1=tu.count(111)
v2=tu.index(111)
print(v1,v2) >>>>2 ,0
(5)、字典 dict
字典的value可以使任意值
列表,字典不能作为字典的key
字典是无序的
字典支持del
字典可以for循环
a、输出字典的Key值
info={"K1":"V1",
"K2":"V2"}
for item in info.keys():
print(item) >>K1
K2
b、输出字典的value
info={"K1":"V1",
"K2":"V2"}
for item in info.values():
print(item)
>>1
2
c、同时输出字典的键和值
①手动输出
info={"K1":"V1",
"K2":"V2"}
for item in info.keys():
print(item,info[item]) >> K1 V1
K2 V2
②自动循环输出键值对
info = {"K1": "V1","K2": "V2"}
for k,v in info.items():
print(k,v)
>> K1 V1
K2 V2
d、根据序列,创建字典,并指定统一的值
v=dict.fromkeys(['k1','k2','k3'],123)
v >>{'k1': 123, 'k2': 123, 'k3': 123}
e、根据key获取值
①使用get()获取,如果key不存在,则返回None
info = {"K1": "V1","K2": "V2"}
v=info.get('K1')
v >> v1
②、通过索引key获取,如果key不存在,会报错
info = {"K1": "V1","K2": "V2"}
info['K1'] >> V1 info['K3'] >> KeyError # 对于不存在的key,会抛出异常。
f、设置值
①、通过key设置value
如果存在key,则更改对应的value值,如果不存在,则给字典新增key和value
dic = {'a':1, 'b':2}
dic['a'] = 22 # 更改
dic >> {'a':22, 'b':2}
dic['c'] = 33 # 增加
dic >> {'a':22,'b':2,'c':33}
②、setdefault
key已存在,不设置,获取当前key对应的值
key不存在,设置,获取当前key对应的值
info = {"K1": "V1","K2": "V2"}
V=info.setdefault('K1', 22)
info.setdefault('k3',11)
V >> V1
info >> {'K1': 'V1', 'K2': 'V2', 'k3': 11}
g、更新
info = {"K1": "V1","K2": "V2"}
info.update({'K1':11})
#info.update(K1=11) info >>{'K1': 11, 'K2': 'V2'}
python基础—基本数据类型—数字,字符串,列表,元组,字典的更多相关文章
- Python第三天 序列 数据类型 数值 字符串 列表 元组 字典
Python第三天 序列 数据类型 数值 字符串 列表 元组 字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...
- Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式
Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell ...
- Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...
- python数据类型(数字\字符串\列表)
一.基本数据类型——数字 1.布尔型 bool型只有两个值:True和False 之所以将bool值归类为数字,是因为我们也习惯用1表示True,0表示False. (1)布尔值是False的各种情况 ...
- python基础知识-04-字符串列表元组
python其他知识目录 内存,cpu,硬盘,解释器 实时翻译 编译器 :一次性翻译python2,3 除法,2不能得小数,3能得小数 1.字符串操作 1.1字符串操作startswith start ...
- python基础一数据类型之字符串
摘要: python基础一中有字符串,所以这篇主要讲字符串. 一,字符串的注释 二,字符串的索引与切片 三,字符串的方法 一,字符串的注释 单引号 双引号 三引号都可以用户定义字符串.三引号不仅可以定 ...
- python字符串/列表/元组/字典之间的相互转换(5)
一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...
- python字符串 列表 元组 字典相关操作函数总结
1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...
- Python基础->for循环、字符串以及元组
python流程控制>for循环.字符串以及元组 学习有关序列的思想.序列:一组有顺序的东西.所有的序列都是由元素组成的,序列中的元素位置是从0开始编号的,最后一个元素的位置是它长度减一. fo ...
- python 字符串,列表,元组,字典相互转换
1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'n ...
随机推荐
- 修改npm下载地址为淘宝镜像
修改 npm 下载地址 修改为国内淘宝镜像 # 修改为新淘宝镜像(推荐) npm config set registry https://registry.npmmirror.com/ # 旧 npm ...
- Netty基础—6.Netty实现RPC服务
大纲 1.RPC的相关概念 2.RPC服务调用端动态代理实现 3.Netty客户端之RPC远程调用过程分析 4.RPC网络通信中的编码解码器 5.Netty服务端之RPC服务提供端的处理 6.RPC服 ...
- bp靶场业务逻辑漏洞
修改商品价格 目标是修改价格后低价买下这件夹克,再home这个页面的第一个商品就是 点击Add to cart,抓包,发现price的值可以该,改成000发现不行,0.00也不行,改成10后发现购物车 ...
- 利用Windows自带性能计数器分析软件产品的性能瓶颈(转)
利用Windows性能计数器分析软件产品的性能瓶颈转自:http://blog.163.com/jack_test/blog/static/166620663201061594459936/ [摘要] ...
- Win环境下的批处理命令和JScript脚本结合使用笔记
最近工作有接触到.bat 批处理命令,在Win环境下编写的时候基于以前的编码习惯,觉得批处理语法可读性较差,于是学习了解了一下结合JScript的用法,特此记录. 什么是JScript JScript ...
- [源码系列:手写spring] IOC第一节:简单bean容器
本专栏带领大家手写一遍spring的核心代码,包括IOC,AOP,三级缓存... 第一节较为简单,后面的章节会逐渐提升代码量和复杂度,喜欢的同学记得订阅哦  ̄▽ ̄ 定义一个简单的bean容器BeanF ...
- ANSYS 启动窗口过大问题解决
方法总结(省流版):选择兼容性下更改高 DPI 设置 => 勾选高DPI 缩放代替 ,且其下对应应用程序选项 1.环境 系统环境:Windows 11 设备情况:分辨率 1920×1080:缩放 ...
- 【SpringMVC】运行流程
SpringMVC 运行流程 在 Spring 的环境下使用 SpringMVC Bean 被创建两次? Spring 的 IOC 容器不应该扫描 SpringMVC 中的 bean, 对应的 Spr ...
- Redis使用IO多路复用进行事件处理机制
一.epoll多路复用 这里重点要说的就是redis的IO编程模型,首先了解下 为什么要有多路复用呢 ? 案例 引用知乎上一个高赞的回答来解释什么是I/O多路复用.假设你是一个老师,让30个学生解答一 ...
- MySQL 的查询优化器如何选择执行计划?
MySQL 的查询优化器负责决定如何执行 SQL 查询,它会根据多个因素选择最优的执行计划.查询优化器的目标是选择一个成本最低.性能最优的执行计划,以便高效地处理查询.执行计划的选择是基于 MySQL ...