一、字符串
双引号或者单引号中的数据,就是字符串
字符串的输入输出
输出
print("我是字符串")
输入
在python3中输入
str = input("请输入字符串")
在Python2中,也有input,但是使用的是
str =raw_input("请输入字符串")
input输入的值会直接进行数据类型转换计算,但是我们接收到的不一定会计算,并且输入的值直接进行计算不安全所以在python3舍弃了原始的input
1、下标切片
所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间。我们字符串的小标起始位置为0
比如有一个字符串str = "abc"
str[0] 'a'
str[1] 'b'
str[2] 'c'
我们可以同过下标直接进行取值,如果下标位置大于长度,那么会报错,无法取值。
切片的语法:[起始:结束:步长]
包含起始位置,不包含结束位置。步长如果为复数那么为倒序
起始位置和结束位置以及步长都可以为空,如果为空 起始位置为首位、结束位置为最后全选、步长默认为1
切片不会出现错误,如果切片的时候索引超出会切不到字符串为空
name ='abcdef'
print(name[0:3])
结果
abc
a ="abcdef"
a[:3] 'abc'
a[::2] 'ace'
a[5:1:2] ''
a[1:5:2] 'bd'
a[::-2] 'fdb'
a[5:1:-2] 'fd'
2、循环遍历
为了更有效率的输出列表的每个数据,可以使用循环来完成,一般我们对列表的循环都是for循环进行遍历。在for循环中会介绍遍历字符串的原理。
name = "abcdef"
for i in name:
pring(i)
会把每一个字符进行打印
3、常见操作
<1>find
检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1
mystr.find(str, start, end)
<2>index
跟find()方法一样,只不过如果str不在 mystr中会报一个异常.
mystr.index(str, start, end)
<3>count
返回 str在start和end之间 在 mystr里面出现的次数
mystr.count(str, start, end)
<4>replace
把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.
mystr.replace(str1, str2, count)
<5>split
以 str 为分隔符切片 mystr,str为要拆分的子串,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串
mystr.split(str=" ", maxsplit)
<6>capitalize
把字符串的第一个字符大写
mystr.capitalize()
<7>title
把字符串的每个单词首字母大写
mystr.title()
<8>startswith
检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False
mystr.startswith(“hello”)
<9>endswith
检查字符串是否以obj结束,如果是返回True,否则返回 False.
mystr.endswith(obj)
<10>lower
转换 mystr 中所有大写字符为小写
mystr.lower()
<11>upper
转换 mystr 中的小写字母为大写
mystr.upper()
<12>ljust
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
mystr.ljust(width)
<13>rjust
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
mystr.rjust(width)
<14>center
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
mystr.center(width)
<15>lstrip
删除 mystr 左边的空白字符
mystr.lstrip()
<16>rstrip
删除 mystr 字符串末尾的空白字符
mystr.rstrip()
<17>strip
删除mystr字符串两端的空白字符
mystr.strip()
<18>rfind
类似于 find()函数,不过是从右边开始查找.
mystr.rfind(str, start=0,end=len(mystr) )
<19>rindex
类似于 index(),不过是从右边开始.
mystr.rindex( str, start=0,end=len(mystr))
<20>partition
把mystr以str分割成三部分,str前,str和str后
mystr.partition(str)
<21>rpartition
类似于 partition()函数,不过是从右边开始.
mystr.rpartition(str)
<22>splitlines
按照行分隔,返回一个包含各行作为元素的列表
mystr.splitlines()
<23>isalpha
如果 mystr 所有字符都是字母 则返回 True,否则返回 False
mystr.isalpha()
<24>isdigit
如果 mystr 只包含数字则返回 True 否则返回 False.
mystr.isdigit()
<25>isalnum
如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False
mystr.isalnum()
<26>isspace
如果 mystr 中只包含空格,则返回 True,否则返回 False.
mystr.isspace()
<27>join
mystr 中每个元素后面插入str,构造出一个新的字符串
mystr.join(str)
二、列表
字符串可以存储一串字符,那么一组数据该如何存储呢?那么我们就要用到列表了
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
在python中,列表可以存储不同的数据类型
列表也可以进行切片操作,和字符串的操作一致
1、增
append
通过append可以向列表添加元素.增加的元素默认增加到原列表的尾部
myList.append("rookie") 将“rookie”增加到myList的最后位置
extend
通过extend可以将另一个集合中的元素逐一添加到列表中。我们可以使用 + 来代替extend
insert
myList.insert(index, object) 在指定位置index前插入元素object
2、删
del:根据下标进行删除 如果不加人索引那么会直接进行删除
pop:默认删除最后一个元素,也可以传入要删除的索引
remove:根据元素的值进行删除
clear 清空列表数据
3、改
修改元素的时候,要通过下标来确定要修改的是哪个元素,然后才能进行修改
namelist = ['xiaoWang','xiaoZhang','xiaoHua']
namelist[0] = 'rookie'
最后结果就是将xiaoWang修改为 rookie
4、查
所谓的查找,就是看看指定的元素是否存在
in(存在),如果存在那么结果为true,否则为false
not in(不存在),如果不存在那么结果为true,否则false
index 获取某个元素在当前列表中所在的索引位置
count 计算某个元素出现的次数
5、循环遍历
为了更有效率的输出列表的每个数据,可以使用循环来完成
namesList = ['xiaoWang','xiaoZhang','xiaoHua']
length = len(namesList)
i =0
while i<length:
print(namesList[i])
i+=1
一般循环我们用for
for i in namesList:
print(i)
列表嵌套
类似while循环的嵌套,列表也是支持嵌套的
一个列表中的元素又是一个列表,那么这就是列表的嵌套,多层列表的嵌套需要用多次循环来把整个列表数据遍历出来
三、字典
变量info为字典类型:
info = {'name':'rookie','id':one,'sex':'18','address':'地球亚洲中国'}
字典和列表一样,也能够存储多个数据
列表中找某个元素时,是根据下标进行的
字典中找某个元素时,是根据'名字'(就是冒号:前面的那个值,例如上面代码中的'name'、'id'、'sex')
字典的每个元素由2部分组成,键:值。例如 'name':'rookie' ,'name'为键,'rookie'为值
有一个{} 里面用键值对形式存储的,这种形式的就是一个字典。
字典的定义除了上面那种方式也可以
info = dict() 定义一个空字典
注意:字典的key只能为不可变类型,不能是可变类型。常见的key是字符串,有时有可能是一个元组
1、增
想要给字典增加值,首先要有一个字典对象,可以使用 字典对象['键'] = 值 的形式来进行赋值
info['newName'] = "yuge"
2、删
del
可以删除指定元素,也可以删除整个字典
del info["name"] 那么这个字典的name键值对就不存在了
del info 会直接将整个字典删除
clear()
info.clear() 就是将整个字典清空,但是字典对象还存在
3、改
和增加的方法一样,只不过key如果字典中存在那么就会修改,不存在那么增加。
注:
d = dict()
d[1] = "rookie"
d[1.0] = "yuge"
最终结果字典中只存在{1:"yuge"}
在存储时 虽然1 是整数 1.0 是浮点数 但是两个数的值一样。进行了数据的修改。
4、查
可以直接用字典的对象["键"] 来进行取值,但是如果不存在那么会报错
我们可以用get
info.get("name") 就可以取到name对应的值 如果不存在那么为空
我们还可以在使用get的时候增加默认值,即如果不存在那么会使用默认值
info.get("name","rookie") 如果没有name的键值对 ,那么返回“rookie”
5、循环遍历
info = {'name':'rookie','id':one,'sex':'18','address':'地球亚洲中国'}
info.keys() #获取包含字典所有key的列表 在python3中是一个 dict_keys的可迭代对象,我们可以进行遍历
info.values() #使用方法和keys()一样,返回的是字典所有值的可迭代对象
info.items() #使用方法和keys()一样,返回的是字典所有键值对的可迭代对象,默认是一个 键值元组
dict.has_key(key)如果key在字典中,返回True,否则返回False
四、元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
1、查
in 和 not in 和列表中使用方法一样
index和count与字符串和列表中的用法相同
2、循环遍历
使用方法和列表一致,也是一般使用for循环
五、集合
集合和列表使用类似,不同之处在于集合中不存在重复元素。集合使用{}
六、数据类型之间的转换
字符串转列表 list(str) str为所需要转的字符串 我们也可以使用 split 指定某一个字符进行切割返回的也是一个列表
列表转元组 tuple(myList) myList 是要转换的列表
列表转集合 set(myList) myList 是要转换的列表
集合转元组 tuple(mySet) mySet 是要转换的集合
元组转集合 set(mytuple) mytuple 是要转换的元组
列表转字符串 "".join(myList) myList 是要转换的列表
网友评论