python_04 基本数据类型、数字、字符串、列表、元组、字典
基本数据类型
所有的方法(函数)都带括号,且括号内没带等号的参数需传给它一个值,带等号的参数相当于有默认值
1.数字 int
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
a=""
b=int(a)
print(type(a),a)
print(type(b),b) 》》<class 'str'> 123
》》<class 'int'> 123 ################################
num="a"
v=int(num,base=16)#base=16代表转换为16进制,16进制中a=10,b=11
print(v) 》》10
#####################
age=3
r=age.bit_length()#该方法表示当前数字的二进制,至少用n位表示
print(r) 》》2
2.字符串 str
“hello world”
a=""
b=int(a)
print(type(a),a)
print(type(b),b) 》》<class 'str'> 123
》》<class 'int'> 123 #####################
num="a"
v=int(num,base=16)#base=16代表转换为16进制,16进制中a=10,b=11
print(v) 》》10 #####################
age=3
r=age.bit_length()#该方法表示当前数字的二进制,至少用n位表示
print(r) 》》2 #####################
test="alex"
v=test.capitalize()#该方法表示将首字母大写
print(v) 》》Alex ####################
#这两个方法都是将字符串所有变小写,casefold()更牛逼
test1="ALEX"
v1=test.casefold()
v2=test.lower()
print(v1,v2) >>alex alex ###################
#这个方法相当于设置宽度,并将内容居中,20代表总长,‘%’代表填充物
v3=test.center(20,'%')
print(v3) >>%%%%%%%%alex%%%%%%%% ##################
#这个方法是计算当前字符串中寻找子序列个数
test4="dasdfgrtert"
v4=test4.count('d',2,60)#‘d’为寻找目标,2和60表示从第2位开始,第60位结束
print(v4) >>1 #############################
#以什么结尾
#以什么开头
test5="alex"
v5=test5.endswith('s')
v6=test5.startswith('a')
print(v5) 》》False
》》True ################################
#这个方法表示从开始往后找,找到第一个之后,获取其位置
test6="alexalex"
v6=test6.find('ex',5,7)#返回-1则没找到,5,7表示[5,7)的前开后闭的区间中找
print(v6) 》》6 ##############################
#格式化,将字符串中的占位符替换为指定的值
test7='i am {name},{age}'
print(test7)
v7=test7.format(name='alex',age=13)
print(v7) 》》i am {name},{age}
》》i am alex,13
test8='i am {0},{1}'
print(test8)
v8=test8.format('alex',13)
print(v8)
》》i am {0},{1}
》》i am alex,13
#格式化,传入的值{"name":'alsss',"age":19},相当于字典,"name"和"age"为键
v9=test7.format_map({"name":'alsss',"age":19})
print(v9)
》》i am alsss,19
########################
#判断字符串中是否只包含字母和数字
test10="asfer454r"
v10=test10.isalnum()
print(v10) 》》True
#expandtabs()相当于断句,
test="12345678\t9"
v=test.expandtabs(6)#6表示6个字符串为一句,\t表示空格,若出现\t则用空格补齐6个字符串
print(v,len(v))#len()表示字符串长度 》》12345678 9 13 test1="name\tage\tgender\nManuel\t25\tmale\nApril\t25\tfemale\n"
v1=test1.expandtabs(10)
print(v1) 》》
name age gender
Manuel 25 male
April 25 female ####################################
#isalpha()判断当前字符串是否是字母
#isdecimal()和isdigit()(更牛)和isnumeric()(最牛)判断当前字符串是否是数字
test2="rggds"
v2=test2.isalpha()
v3=test2.isdecimal()
v4=test2.isdigit()
v5=test2.isnumeric()
print(v2,v3,v4) 》》True False False False ############################### #是否存在不可显示的字符
#\t 制表符
#\n 换行
test6="wertwet\twe"
v6=test6.isprintable()
print(v6) 》》False
isspace()#判断字符串内是否全是空格
istitle()#判断字符串是否是标题(所有单词首字母大写)
title()将输入转换为标题的格式
#jion()将字符串中的每一个元素按照指定分隔符进行拼接
test7="你是风儿我是沙"
t='_'
v7=t.join(test7)
print(v7) 》》你_是_风_儿_我_是_沙
ljust()、rjust()与center()类似,区别是将字符串放左边(右边),填充字符串放右边(左边)
islower()、isupper()判断字符串是否为小写、大写
lower()、upper()将字符串变成小写、大写
strip()、lstrip()、rstrip()去掉字符串所有、左边、右边的空格或换行符,括号内为去掉的参数(且参数子序列也可),默认为空格
#maketrans()建立对应关系,translate()利用对应关系替换
v8="sssdawrwq"
m=str.maketrans("sda","")
v9=v8.translate(m)
print(v9) 》》11123wrwq
#以下方法都是分割
test10="twqedafsdwsewq"
m1=test10.partition('e')#只能将字符串分割成3份,遇到的第一个‘e’就分割,且保留‘e’
m2=test10.rpartition('e')#同上,但是是从右往左
m3=test10.split('e')#不保留‘e’,默认全部分割,再传个参数可以指定分割次数
m4=test10.rsplit('e',1)#同上,从右往左
print(m1)
print(m2)
print(m3)
print(m4) 》》('twq', 'e', 'dafsdwsewq')
》》('twqedafsdws', 'e', 'wq')
》》['twq', 'dafsdws', 'wq']
》》['twqedafsdws', 'wq']
#正则表达式中可以设置是否想要分割的元素,相当于上面两种方法的合集 #这个方法是根据换行符分割,True,False:指定是否保留换行符
test11='qwerer\nqweqw\nwafaef'
m5=test11.splitlines(True)
print(m5) 》》['qwerer\n', 'qweqw\n', 'wafaef']
startswith()、endswith()判断字符串是否以括号内参数开头或结尾
swapcace()大小写转换
replace()将字符串中指定字符或字符串用指定字符或字符串代替
test1="alexalexalexalexalex"
v1=test1.replace("ex","bbb",2)#2代表替换次数
print(v1) 》》albbbalbbbalexalexalex
6个基本方法:
jion()、spilt()、find()、strip()、upper()、lower()、replace()
黑科技:
1.索引,下标,获取字符串中的某一个字符
test='alex'
v0=test[0]
v1=test[1]
v2=test[2]
v3=test[3]
print(v0,v1,v2,v3) 》》a
》》l
》》e
》》x #切片
v4=test[0:2]#表示从0到2,【0,2)前闭后开区间
print(v4) 》》al ############################
v5=len(test5)#获取当前字符串由几个字符组成
print(v5) 》》4
2.注:len()可用于其他数据类型,
li=[11,22,33,33] print(len(li))#返回列表长度,用逗号分割 》》4
3.for i in 循环结构
test="python真的好简单"
i=0
while i<len(test):
v=test[i]
print(v)
i+=1
print("#############")
》》p
y
t
h
o
n
真
的
好
简
单
############# for i in test:
print(i) 》》p
y
t
h
o
n
真
的
好
简
单
字符串一旦创建不可修改,一旦修改和拼接会在内存中重新创建新的字符串
3.布尔值 bool
4.列表 list
# list #类,列表
li = [1, 2, 9, "age", ["是正文", [19, 10]], 'wetrwe', True] # 通过list类创建的对象,li
# 1.列表的格式:中括号括起来
# 用“,”分割每个元素
# 2.列表中可嵌套任何类型:列表中的元素可以是数字,字符串,列表,布尔值...所有的都能放进去
# "集合",内部放任何东西 # 3.索引取值
print(li[3])
# 4.切片取值,结果也是列表
print(li[0:-1]) # 5.for循环
for item in li:
print(item)
列表在内存中是按链表的方式存储的,列表中元素存储不连续,但每个元素所占内存都存储了下一个元素的坐标。所以列表元素与字符串元素不同,可以被修改
#链表,
li = [1, 2, 9, "age", ["是正文", [19, 10]], 'wetrwe', True]
# 6.列表元素修改
# 索引方式修改
li[1]=15649
print(li) >>>[1, 15649, 9, 'age', ['是正文', [19, 10]], 'wetrwe', True]
# 切片方式修改
li[1:3]=[120,90]
print(li) ################
#删除列表元素
del li[1]
print(li)
# 7.切片方式删除
del li[2:5]
print(li) ################
# 8.in 操作
li = [1, 2, 9, "age", ["是正文", [19, 10]], 'wetrwe', True]
v=120 in li
print(v) v1="是正文" in li[4]
print(v1)
>>>False
>>>True
9.利用索引取值
li = [1, 2, 9, "age", ["是正文", [19, 10]], 'wetrwe', True]
#取出"19"
v=li[4][1][0]
print(v)
10.字符串转换为列表
#将字符串转换成列表,本质上去字符串中每一个元素进行for循环添加到列表中
s="wqrksldkfl"
new_s=list(s)
print(new_s) >>>['w', 'q', 'r', 'k', 's', 'l', 'd', 'k', 'f', 'l']
#数字无法参与循环迭代,所以数字无法转换成列
11.将列表元素转换成字符串
#将列表元素转换成字符串
li=[11,22,33,"ww","rerd"] v1=str(li)#将整个列表转换成字符串,相当于'[11,22,33,"ww","rerd"]'
print(v1) >>>[11, 22, 33, 'ww', 'rerd'] v2=""
for i in li:
v2+=str(i)
print(v2) >>>112233wwrerd #若列表中元素只有字符串,则可以用jion()方法
li_01=["fffwe","wqrewqr"]
v3="".join(li_01)
print(v3) >>>fffwewqrewqr
基本方法:
1.append()
#1.追加append(),在原来值后面追加
li=[11,22,1315,4]
v=li.append(5)#相当于什么都不是
print(v)
print(li) >>>None
>>>[11, 22, 1315, 4, 5] li.append("saf")
li.append(['wqeqw',12346])
print(li) >>>[11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346]]
2.clear()清空列表
3.复制,拷贝copy()
4.count(value)计算元素出现的次数
#2.清空列表clear()li.clear()print(li)
>>>[]
#3.拷贝,浅拷贝,copy()
s=li.copy()
print(s)
>>>[11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346]]
#4.计算元素在列表中的个数count(Value)
c=li.count(11)
print(c) >>>1
5.extend(iterable)扩展原来的列表,扩展元素必须是可迭代对象(字符串,列表等)
#5.extend(iterable)扩展原来的列表,扩展元素必须是可迭代对象(字符串,列表等)
li.extend(["wqewqe",657])
print(li) >>>[11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346], 'wqewqe', 657] 与append()的区别:
li.append(["wqewqe",657])
print(li) >>>[11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346], ['wqewqe', 657]] ###################
li.extend("不得了")
print(li)
>>>[11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346], '不', '得', '了']
li.append("不得了")
print(li)
>>>[11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346], '不得了']
6.index(Value,Start=None,End=None)
#6.index(Value,Start=None,End=None),根据值找索引
ind=li.index(22)
print(ind) >>>1
7.insert(index,p_object)在指定索引位置插入指定元素
#7.insert(index,p_object)在指定索引位置插入指定元素
li.insert(0,'rrr4')
print(li) >>>['rrr4', 11, 22, 1315, 4, 5, 'saf', ['wqeqw', 12346]]
8.pop(index)删除列表某个值(1.指定索引,2.默认是最后一个)并获取这个值
remove(Value)删除列表中的指定值,从左往右
ps:pop() 、 remove() 、 del list[0] 、del list[0:4] 、clear()
9.reverse()将当前列表反转
10.sort(key=None,reverse=False),列表的排序,cmp,key 欠
li=[11,66,55,55,2,44]
li.sort()
print(li) >>>[2, 11, 44, 55, 55, 66] li.sort(reverse=True)
print(li) >>>[66, 55, 55, 44, 11, 2]
对象.方法,# li对象调用append方法
补充:列表创建后可以通过索引取值和修改值,字符串创建后可以通过索引取值但不可修改值
li=[11,22,33,44] li[0]=999 print(li) >>>[999,22,33,44] s="alexs" print(s[0]) >>>a
列表是有序的,元素可以被修改
5.元组 tuple
#相当于对列表的二次加工,元组元素不可被修改,不能增加或删除
#tuple 类
tu=(111,222,"alex",(11,22,33),[0,1,2,3],True,5s5)
书写格式#一般写元组的时候,推荐在最后加入“,”,便于与方法区分
s="asf32 5we"
li=["y5rty",""]
tu=("sgsdrrrt",['fff',456],526,) v0=list(s)
print(v0) v1=tuple(s)
print(v1) v2=tuple(li)
print(v2) v3=list(tu)
print(v3) v4=str(li)
print(v4) v5=str(tu)
print(v5) #列表转换为字符串,当列表中只含有字符串时
l=["wrerewr","ewrewr","esadsad"]
v6="".join(l)
print(v6) #元组转换为字符串,当元组中只含有字符串时
t=("ewrsgf","tryrty","",)
v7="_".join(t)
print(v7) >>>['a', 's', 'f', '3', '2', ' ', '5', 'w', 'e']
 >>>('a', 's', 'f', '3', '2', ' ', '5', 'w', 'e')
  >>>('y5rty', '52')
  >>>['sgsdrrrt', ['fff', 456], 526]
  >>>['y5rty', '52']
  >>>('sgsdrrrt', ['fff', 456], 526)
  >>>wrerewrewrewresadsad
  >>>ewrsgf_tryrty_241
#元组转换为字符串,当元组中不仅仅含有字符串时
s1=""
for i in tu:
s1=s1+str(i)
print(s1) >>>sgsdrrrt['fff', 456]526
元组也是有序的,元组的一级元素不可修改/删除/增加,但里面嵌套的列表可修改
#元组是有序的
tu=(123,5456,"asldw",[(545,555,)],True,3,4)
#找出555元素
print(tu[3][0][1]) >>>555 #####################
#元组的一级元素不可修改/删除/增加,但里面嵌套的列表可修改
tu[3].append(567)
print(tu) >>>(123, 5456, 'asldw', [(545, 555), 567], True, 3, 4)
基本方法:
1.count()获取指定元素在元组中出现的次数
2.index()获取某个值的索引位置
6.字典 dict
#dict 类
1.字典的value可以是任何值
info={
"k1":"v1",#键值对
"k2":"v2"}
#字典的value可以是任何值
info1={
"k1":23,
"k2":True,
"k3":[11,22,22,{
'kk1':'vv1',
'kk2':'vv2',
'kk3':(44,55,)
}],
"k4":(34,54,6,)
}
print(info) >>>{'k1': 23, 'k2': True, 'k3': [11, 22, 22, {'kk1': 'vv1', 'kk2': 'vv2', 'kk3': (44, 55)}], 'k4': (34, 54, 6)}
2.列表和字典不能作为字典的key
#列表和字典不能作为字典的key
info2={
123:'erwer',
"k1":'rewr',
(33,44,):'ertd',
True:'fgf',
}
print(info2) >>>{123: 'erwer', 'k1': 'rewr', (33, 44): 'ertd', True: 'fgf'}
3.字典是无序的
4.可以根据索引输入字典键值key获取对应的值,不可通过切片查找,因为无序
#获取‘ertd’
v2=info2[(33,44,)]
print(v2) #获取'44'
v1=info1['k3'][3]['kk3'][0]
print(v1)
5.字典元素的删除
del info['k3'][3]['kk1'']
6.字典的for循环
#for循环
for item in info1:#默认获取key值
print(item) for item in info1.keys():
print(item) for item in info1.values():#获取value
print(item) for k,v in info1.items():#获取Key和value
print(k,v)
基本方法
1.clear()删除
2.copy()复制,浅复制
@staticmethod 静态方法,支持直接写类名后带“.”可执行该功能如dict.fromkeys
3.dict.fromkeys()根据序列,创建字典,并指定统一的值
v=dict.fromkeys(["k1",123,""],12345)
print(v) >>>{'k1': 12345, 123: 12345, '': 12345}
4.get()
info={
    "k1":"v1"
}
a=info.get("k1",456478)#45678为默认若取不到相应的键值则返回的值
print(a)
b=info.get("rewrwer","wqerqwr")#若不传入值,则默认返回None
print(b)
>>>v1
>>>wqerqwr
5.pop(k,d=None),删除传入k值,返回当前删除的key值,当k不存在字典中时,返回d,默认为None
6.popitem(),删除字典中的值,返回键值对,默认返回元组类型,若k,v=popitem(),则返回两个值
a1=info.pop("k122",999)
print(a1)
print(info)
a2=info.popitem()
print(a2)
print(info)
a3,b3=info.popitem()
print(a3,b3)
print(info)
>>>999
>>>{'k1': 'v1', 'k2': 'v2'}
>>>('k2', 'v2')
>>>{'k1': 'v1'}
>>>k1 v1
>>>{}
7.setdefalt(k,d=None)在字典中设置值,若已存在,则获取当前key对应的值,若不存在则设置值并获取当前对应的值,
info={
    "k1":"v1",
    "k2":"v2"
}
a1=info.setdefault("k1",123)
print(info,a1)
a2=info.setdefault("rree",123)
print(info,a2)
>>>{'k1': 'v1', 'k2': 'v2'} v1
>>>{'k1': 'v1', 'k2': 'v2', 'rree': 123} 123
8.update(E=None,**F)***kwargs这种参数python将自动转换成相应的格式
info={
    "k1":"v1",
    "k2":"v2"
}
info.update({'k1':454,"k3":48478})
print(info)
info.update(k1=123,k3=48789,k4="erwr")
print(info)
>>>{'k1': 454, 'k2': 'v2', 'k3': 48478}
>>>{'k1': 123, 'k2': 'v2', 'k3': 48789, 'k4': 'erwr'}
总结
一、数字
int()
二、字符串
replace/fin/jion/strip/startwith/spilt/upper/lower/format
例:
template="I am {name},age:{19}"
v=template.formate(**{"name":"alex","age":19})
print(v)
三、列表
append/extend/insert
索引、切片、循环
四、元组
索引、切片、循环
一级元素不能被修改增加删除
五、字典
get/update/keys/values/items
for,索引
例:in在字典的用法
dic={ "k1":"v1"}
v="k1"in dic
print(v)
六、布尔值
0 1
bool()
0,None,“”,(),[ ],{ }都是False,其余都是True
补充:
enumrate(object,),为可迭代对象添加序号
li = [11,22,33]
for k,v in enumerate(li, 1):
print(k,v) >>>1 11
>>>2 22
>>>3 33
python_04 基本数据类型、数字、字符串、列表、元组、字典的更多相关文章
- 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字符串 列表 元组 字典相关操作函数总结
		
1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...
 - python字符串/列表/元组/字典之间的相互转换(5)
		
一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...
 - python 字符串,列表,元组,字典相互转换
		
1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'n ...
 - Python自动化开发 -  字符串, 列表, 元组, 字典和和文件操作
		
一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name = "Jonathan&q ...
 - Python 整数 长整数 浮点数 字符串 列表 元组 字典的各种方法
		
对于Python, 一切事物都是对象,对象基于类创建!! 注:查看对象相关成员var,type, dir 一.整数 如: 18.73.84 每一个整数都具备如下需要知道的功能: def bit_len ...
 - Python笔记【5】_字符串&列表&元组&字典之间转换学习
		
#!/usr/bin/env/python #-*-coding:utf-8-*- #Author:LingChongShi #查看源码Ctrl+左键 #数据类型之间的转换 Str='www.baid ...
 
随机推荐
- 理一下docker在各平台上的运行机制
			
理一下docker在各平台上的运行机制 首先,从内核共享与否 docker在linux上共享内核,无需虚拟化,完全支持native功能(https://docs.docker.com/engine/i ...
 - datetime模块常用功能小结
 - [UE4]Uniform Grid Panel
			
Uniform Grid Panel:统一大小网格 一.如果不设置子控件的Row和Column值,就跟Overlay容器一样的重叠. 二.选中Uniform Grid Panel,可以设置其内的子控件 ...
 - nginx配置location总结及rewrite规则写法 (若配置reload或restart不生效就stop start)
			
location正则写法 一个示例: location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的 ...
 - MySQL架构之keepalived+haproxy+mysql 实现MHA中slave集群负载均衡的高可用(原创)
			
MySQL的高可用方案一般有如下几种:keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. HAProxy是一款 ...
 - 进程间通信IPC (InterProcess Communication)
			
一.进程间通信的概念 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区, ...
 - Kaptcha
			
Kaptcha:google自动生成验证码组件 kaptcha的使用比较方便,只需添加jar包依赖之后简单地配置就可以使用了 kaptcha所有配置都可以通过web.xml来完成,如果你的项目中使用了 ...
 - 在线安装CM集群
			
https://www.cloudera.com/documentation/manager/5-0-x/Cloudera-Manager-Installation-Guide/cm5ig_insta ...
 - vue写后台管理系统问题概述和解决方案
			
一个不错的Demo; http://xmall.exrick.cn/#/home 源码:https://gitee.com/Exrick/xmall-front/blob/master/src/pag ...
 - TP微信扫码支付
			
1.官网下载php扫码支付adk,放在项目引入第三方类库中 2.配置config中相关参数 注意:可能会遇到问题 微信支付错误问题的解决:curl出错,错误码:60 Fatal error: Unca ...