一、字符串

双引号或者单引号中的数据,就是字符串

字符串的输入输出

输出

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 是要转换的列表


活在当下
32 声望38 粉丝