一.字符串

1,在python中,字符串是最为常见的数据类型,一般情况下用引号来创建字符串。

 >>ch = "wallace"
>>ch1 = 'wallace'
>>ch2 = '''
wallace
wallace
wallace
'''
#以上三种引号都可以定义一字符串,
#三引号定义的字符串可以换行

注意:字符串是不可变的数据类型,关于可变与不可变将会在后文解释。

2,转义字符

在python中有一些字符是有转义功能的,一般情况下是指\加上一些字符,在使用的时候需要注意:

转义字符 描述
\(在行尾时) 续行符
\\ 反斜杠符号
\' 单引号
\" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

例如:

 >>print('a\na')   #这里的\n表示的就是换行
a
a

3.字符串的常用方法:

 >>st = '   Wallace waNg   '
>>st2 = 'wallace 123'
>>st3 = ''
>>print(st.index('w'))#根据提供的元素返回索引位置
11
>>print(st.count('a'))#返回对应元素的个数
3
>>print(st.isdigit()) #只有全部是数字的时候才返回Ture
Flase
>>print(st2.isdigit())#判断是否全为数字组成的字符串
Flase
>>print(st3.isdigit())
True
>>print('{}{}{}'.format(st,st2,st3)) #字符串拼接
Wallace waNg wallace 123123
>>print('{n},{n1},{n2}'.format(n = st,n1 = st3,n2 = st2))
Wallace waNg ,123,wallace 123
>>print(' '.join((st,st2,st3))) #字符串拼接,可以用一些符号进行拼接
Wallace waNg wallace 123 123
>>print(st.ljust(50,'')) #给字符串设置宽度,并且可以在一边添加字符 rjust
Wallace waNg 11111111111111111111111111111111
>>print(st.center(50,'*')) #设置宽度,并对字符串居中
**************** Wallace waNg ****************
>>print(st.replace('a','b',1)) #替换字符,可以选择替换次数
Wbllace waNg
>>print(st.strip()) #去除字符串两边的空格和换行 rstrip(), lstrip()
Wallace waNg
>>print(st.find('a')) # 返回字符的索引位置
4
>>print(st.endswith('a')) #判断是否为该字符结尾 startswith 开头
Flase
>>print(st.split(' ')) #分割字符,返回一个列表
['', '', '', 'Wallace', 'waNg', '', '', '']
>>print(st.capitalize()) #全部变为小写
wallace wang
》》print(st.encode(encoding='gbk')) #转换编码方式
b' Wallace waNg '
>>print(st.expandtabs(tabsize=20)) #将tab符号转换为空格,一个tab有8个空格
Wallace waNg
>>print(st3.isalnum()) #与isdigit 类似
>>print(st.isalpha()) #判断全为字母
>>print('1A'.isdecimal()) #检查字符串是否只包含十进制字符
>>print('2a'.isidentifier()) #判读是不是一个合法的标识符,即变量名
>>print(st2.islower()) #判断是否全为小写
>>print(st2.isupper()) #判断是否全为大写
>>print(st2.isnumeric()) #如果字符串中只包含数字字符
>>print(st.istitle()) #判断是否为标题
>>print(st.title()) #转换为标题
Wallace Wang
>>print(st.lower()) #全部转换为小写
wallace wang
>>print(st.upper()) #全部转换为大写
WALLACE WANG
>>print(st.swapcase()) # 将字符串中大写转换为小写,小写转换为大写
wALLACE WAnG

二.字典

字典是另一种可变容器模型即是一种无序的可变的数据数据类型,且可存储任意类型对象。字典以键值对的形式存储,键(key)和值(value)用:隔开,每个键值对用逗号隔开。

 >>di = {
"username":"wallace"
"passward":"qwe123"
"age":13
"data":[1,3,4]
}

#字典的值可以为任意的数据类型
#字典的键未不可变的数据类型

1.字典的CRUD

Create(增加):

 >>di = {
"username":"wallace"
"passward":"qwe123"
"age":13
"data":[1,3,4]
}
>>di["create"] = 'create'
>>di
{
"username":"wallace"
"passward":"qwe123"
"age":13
"data":[1,3,4]
"create":"create"
}
#添加一个键值对

Retrieve(查询)

 >>di
{
"username":"wallace"
"passward":"qwe123"
"age":13
"data":[1,3,4]
"create":"create"
}
>>di["username"] #通过对应的键来找到对应的值
"wallace"

Update(更新):

 >>di
{
"username":"wallace"
"passward":"qwe123"
"age":13
"data":[1,3,4]
"create":"create"
}
>>di['passward'] = "" #根据对应的键来进行修改
#如果不存在对应的键则会创建一个键
>>di
{
"username":"wallace"
"passward":""
"age":13
"data":[1,3,4]
"create":"create"
}

Delete(删除):

 >>di
{
"username":"wallace"
"passward":"qwe123"
"age":13
"data":[1,3,4]
"create":"create"
}
>>del di['age'] #选择对应的键,就可以删除
>>di
{
"username":"wallace"
"passward":"qwe123"
"data":[1,3,4]
"create":"create"
}

2.字典的常用方法

 >>di={'w':123,'l':456,'x':789}
>>di.fromkeys(['a','b','c'],123)#用给定的键建立新的字典,每一个键默认对应值none(自定义)
{'a': 123, 'b': 123, 'c': 123}
>>di.get('r','我不在这里')#取值,存在就返回对应值,不存在默认返回none(可自定义)
'我不在这里'
>>di.setdefault('w',123)#类似get,存在就返回值,不存在就更新到字典,对应值默认none(可以自定义)
123
>>di.items()#list(di.items()) 查看字典的每一项
[('w', 123), ('l', 456), ('x', 789)]
>>di.keys()#查看字典的所有键
['w', 'l', 'x']
>>di.values()#查看字典的值
[123, 456, 789]
>>di.pop('w',123)#指定键,删除对应的值,如果键不存在,可以自定义返回值
123
>>di.popitem()#随机删除某一项
('x', 789)

三.集合

python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并、交、差、对称差等。sets 支持 x in set、 len(set)、和 for x in set。作为一个无序的集合,sets不记录元素位置或者插入点。

1.集合的交并差问题

 >>> x = set("wallace")
>>> y = set(['w', 'a', 'l', 'c', 'e','v'])
>>> x #把字符串转化为set,去重了
('w', 'a', 'l', 'c', 'e','m')
>>> y
('w', 'a', 'l', 'c','e','v')
>>> x & y #交
['w', 'a', 'l','c','e')
>>> x | y #并
('w', 'a', 'l', 'c', 'e', 'v','m')
>>> x - y #差
('m')
>>> y - x
('v')
>>> x ^ y #对称差:x和y的交集减去并集
('m', 'v')

2.集合的图示

其他情况类似。

3.集合的常用方法

 #集合(确定的无序的一组数据)
#基本操作
#创建集合
#空集合
var = set()
print(var,type(var)) #具有数据的集合
var = {'zhangwang','zhangbo','zhanglang'}
print(var,type(var)) #成员检测
result = 'zhangbo' in var
print(result) result = 'zhangsan' not in var
print(result) #集合推导式
var = {'蚂蚱','螳螂','蝈蝈','蛐蛐'} #基本的集合推导式
result = {'*'+i+'*' for i in var}
print(result) #带有判断条件的集合推导式
result = {i for i in var if i != '蛐蛐'}
print(result) #多循环集合推导式
colors = {'red','blue','pink'}
sizes = {36,37,38,39}
result = {c + str(s) for c in colors for s in sizes}
print(result) #集合函数
'''
#add() 向集合中添加元素
girls = {'mf','sl','yj'}
girls.add('xf')
print(girls) #pop() 随机删除集合中的一个元素
boys = {'bd','zw','jl','zy'}
result = boys.pop()
print(boys)
print(result) #remove() 删除集合中指定的元素 删除不存在的元素会报错
boys = {'bd','zw','jl','zy'}
boys.remove('zy')
print(boys) #discard() 删除集合中指定的元素 删除不存在的元素啥都不做
boys = {'bd','zw','jl','zy'}
boys.discard('zy1')
print(boys) #clear() 清空集合
boys = {'bd','zw','jl','zy'}
boys.clear()
print(boys) #copy() 复制集合
boys = {'bd','zw','jl','zy'}
newboys = boys.copy()
print(newboys)
''' #difference() 计算2个集合的差集
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
result = dreamers.difference(girls)# result = a + b
print(result) #difference_update() 计算2个集合的差集(差集更新操作)
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
dreamers.difference_update(girls)#a = a + b a += b
print(dreamers) #union() 并集操作
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
result = dreamers.union(girls)
print(result) #update() 并集更新操作
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
dreamers.update(girls)
print(dreamers) #intersection() 计算2个集合的交集
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
result = dreamers.intersection(girls)
print(result) #intersection_update 交集更新操作
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
dreamers.intersection_update(girls)
print(dreamers) #超集和子集
boys = {'zzy','yqw','dw','wzc','lyb','wym','chy'}
zoudu = {'wzc','lyb','wym'}
girls = {'lsy','mmf','syj'} #issuperset() 检测当前集合是否是另一个集合的超集
result = boys.issuperset(zoudu)
print(result) #issubset() 检测当前集合是否是另一个集合的子集
result = zoudu.issubset(boys)
print(result) #isdisjoint() 检测2个集合是否不存在交集 存在交集 False
result = boys.isdisjoint(girls)
print(result) #symmetric_difference() 对称差集
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
result = dreamers.symmetric_difference(girls)
print(result) #symmetric_difference_update() 对称更新差集
dreamers = {'ljl','wc','xy','zb','lsy'}
girls = {'mmf','lsy','syj'}
dreamers.symmetric_difference_update(girls)
print(dreamers) #冰冻集合
#冰冻集合是一种特殊的集合类型,也是集合(集合是列表的话,冰冻集合就是元组)
#创建冰冻集合
#一般不会创建空的冰冻集合
var = frozenset()
print(var,type(var)) #带有数据的冰冻集合
var = frozenset(('qs','szx','bjh','acs'))
print(var,type(var)) #成员检测
result = 'szx' in var
print(result) #遍历冰冻集合
for i in var:
print(i) #集合推导式(无法得到冰冻集合,可以得到集合,列表,元组,字典类型)
result = {i for i in var}
print(result,type(result)) #函数
#冰冻集合可以使用集合的函数(不修改集合本身的函数都可以使用)
var = frozenset(('qs','szx','bjh','acs')) #copy()
result = var.copy()
print(result) #集合操作 交集,并集,差集,对称差集等 不修改冰冻集合本身就能使用:冰冻集合的操作结果都是冰冻集合
var1 = frozenset(('qs','szx','bjh','acs'))
var2 = {'szx','bjh','lc','wb'} #冰冻集合操作
result = var1.union(var2)
print(result) #普通集合操作(冰冻集合是参考集合)
result = var2.union(var1)
print(result)

四.数据的可变与不可变

1、什么可变数据类型和不可变数据类型

可变数据类型:value值改变,id值不变;不可变数据类型:value值改变,id值也随之改变。

常见的可变数据类型:列表(list),集合(set),字典(dict) 。

常见不可变数据类型:整数(int),字符串(char),布尔值(bool),元组(tuple)

2、如何确定一种数据类型是可变的还是不可变的

根据可变数据类型与不可变数据类型的概念,只需要在改变value值的同时,使用id()函数查看变量id值是否变化就可以知道这种数据类型是可变的还是不可变的了。

Python 全栈开发二 python基础 字符串 字典 集合的更多相关文章

  1. python 全栈开发:python基础

    python具有优美.清晰.简单,是一个优秀并广泛使用的语言.诞生于1991年2.python历史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器.Python这个名字,来自 ...

  2. Python 全栈开发四 python基础 函数

    一.函数的基本语法和特性 函数的定义 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的.函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数 ...

  3. python全栈开发-Day8 函数基础

    python全栈开发-Day8 函数 一 .引子 1. 为何要用函数之不用函数的问题 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需 ...

  4. Python 全栈开发三 python基础 条件与循环

    一. 条件语句 python条件语句是根据一条或多条语句的执行结果的真假(True Or False)来决定代码块的执行. 而执行内容可以多行,以缩进来区分表示同一范围. 1.Python判断条件真假 ...

  5. python全栈开发笔记---基本数据类型--字符串魔法

    字符串: def capitalize(self, *args, **kwargs) test = "aLxs" v = test.capitalize() #capitalize ...

  6. python 全栈开发:str(字符串)常用方法操作 、for 有限循环以及if 循环

    str(字符串)常用方法操作: 首字母大写: s = 'mylovepython' s1 = s.capitalize() print(s1) 输出: Mylovepython 单行多字符串首字母大写 ...

  7. Python 全栈开发:str(字符串)索引和切片

    str(字符串)索引和切片 str(字符串)索引: #计算机中大部分索引以0为开始 s = 'mylovepython' s1 = s[0] s2 = s[4] s3 = s[-1] print(s1 ...

  8. Python 全栈开发一 python初识

    1.Python简介 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  9. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

随机推荐

  1. C# Timer 定时器

    Timer简单介绍 构造函数 通过ILSpy反编译可以看到Timer的内部代码. Timer 的默认构造函数里赋了初值,所以当我们初始化Timer的时候,已经有了默认值. Timer 的带参数的构造函 ...

  2. YAML入门

    概要 YAML(是YAML Ain't Markup Language的缩写,尾音的发音类似Camel)是一种序列化数据的语言(类似json, xml),使用轻量高可读性的语法描述list, dict ...

  3. 美团店铺评价语言处理以及分类(tfidf,SVM,决策树,随机森林,Knn,ensemble)

    第一篇 数据清洗与分析部分 第二篇 可视化部分, 第三篇 朴素贝叶斯文本分类 支持向量机分类 支持向量机 网格搜索 临近法 决策树 随机森林 bagging方法 import pandas as pd ...

  4. day_6.16网络编程

    单线程服务器select版: select ---->最多1024个 poll ----->解决了套接字上限的问题----->轮询检测 关于 sys模块: 通过fd找套接字 协程: ...

  5. day_5.17 飞机大战

    ps:2018-7-24 20:58:11 重新整理这个飞机大战源码,我虽然这个时候没看源码,但是知道思路的话用其他语言还是可以写出来的! ''' 2018-5-13 19:53:46 完善成功 一个 ...

  6. TOP100summit2017:网易测试总监钱蓓蕾——新时代测试正走向精英化、自动化、智能化

    壹佰案例:钱蓓蕾老师您好,很荣幸邀请到您成为第六届壹佰案例峰会测试专场的联席主席.您从事测试工作11年了,您觉得最近几年测试工作有什么趋势上的变化么? 钱蓓蕾:测试行业近几年变化挺大的,正逐渐向精英化 ...

  7. MySQL 聚合函数以及 优先级

    1 from  2 where  3 group by      4 having     5select    6distinct  7 order by  8 limit sum 求和   avg ...

  8. tensorflow模型在实际上线进行预测的时候,使用CPU工作

    最近已经训练好了一版基于DeepLearning的文本分类模型,TextCNN原理.在实际的预测中,如果默认模型会优先选择GPU那么每一次实例调用,都会加载GPU信息,这会造成很大的性能降低. 那么, ...

  9. day3:数据类型 str

    1,int 一个数字占用的bit数目 i = 2 print(i.bit_length()) i = 3 print(i.bit_length()) i = 5 print(i.bit_length( ...

  10. PHP之PSR

    PHP的PSR (PSR 称为PHP Standard Recommendations) PSR参考网址:http://www.php-fig.org/psr 在PHP中,有5个编码标准分类: ①.P ...