h3

php程序员学习python3学习第三天

1,学习字符串操作

# -*- coding:utf-8 -*-
#字符串常用操作方法
name = "my \tname is ren and age is {age}"
print(name.capitalize()) #将字符串的第一个字母大写
print(name.count("e")) #统计指定字符在字符串中出现的次数   count('e',0,10)  表示在位置0到10之间出现了几次
print(name.center(50,"-")) #使用指定字符将字符串左右填充到指定长度
print(name.expandtabs(tabsize = 30)) #将字符串中的tab转换为指定长度的空格
print(name.endwith('e')) #查看是否是以e结尾的,也可以指定区间查看   startswith() 判断是否以某个字符开始
print(name.find("is")) #查找指定字符的位置 若没有找到返回-1 print(name.format(age = 20)) #格式输出值 print(name.format_map({"age":23})) #格式输出字典中的值 不常用 print('ab12.23'.isalnum()) #字符串中只有字母和数字才返回true,不能包含特殊字符 print('abcd'.isalpha()) #检测字符是否是纯英文字符 print('1'.isdecimal()) #是否是十进制数数字 print('1a'.isdigit()) #是否是一个整数 print('1a'.isidentifier()) #是否是一个合法的变量名 print('1'.isnumeric()) # 判断是否只有数字 print(' '.isspace()) #判断是否是空格 print('My Name'.istitle()) #判断是否是标题 print('asaaa'.islower()) #判断是否都是小写 print('ASFa'.isupper()) #判断是否都是大写 print('-'.join(['a','b','c'])) #将列表使用指定字符转换为字符串 print(name.ljust(50,'-')) #字符串长度不够50的话在末尾用指定字符填充 print(name.rjust(50,'-')) #字符长度不够50的话在开头使用指定字符进行填充 print('ABC'.lower()) #将大写转换为小写 print('abc'.upper()) #将小写转换为大写 print('\nabcd'.lstrip()) #将字符组边的空格或者换行去除 print('\nabcd\n'.rstrip()) #将字符串右边的空格或者换行去除 print('\nabc\n'.strip()) #将字符串两端的空格或者换行去除 等同于php trim # maketrans 将字符串转换位对应的值,使用transalte将值对照转换表转换,不常用 p = str.maketrans("abcd","1234") print('abcdef'.translate(p)) print('abcda'.replace('a','A')) #将字符串中的指定字符使用其他字符进行替换 print('abadea'.replace('a','A',2)) #第三个参数为指定替换字符串中的几个 print('abcdeadfg'.rfind('a')) #查找指定字符最后一次出现的位置 print('a+b+c+d'.split('+')) #将字符串根据指定字符拆为列表 print('1+2+\n+3+4'.splitlines()) #根据换行符将字符串拆为列表 print('My Name'.swapcase()) #将字符串的大小写反转 print('my name'.title()) #将字符串转换为标题,单词首字母大写

 2,字典  dict 字典是无序的,键不可以重复,所以天生去重

# -*- coding: utf-8 -*-
info = {
    "stau1": "rcl",
    "stu2": "yrh",
    "styu3": "wy"
}
print(info)
#
print(info["stau1"]) #在确定有这个值的时候使用此方法
#当键不确定是否有的时候
print(info.get("stu22")) #没有时返回none,不报错

#改与增 有则修改,无则新增
info["stu2"] = "haha"
print(info)
info["sttuas"] = "hehe"
print(info)

#
del info["stu2"]
print(info)
info.pop("sttuas")
print(info)
info.popitem() #随机删除一个单元
print(info)

#判断某个键是否在字典中,如果在则取出,若不在就创建
if 'stu2' in info:     #此时python3的语法,在python2中为info.has_key("stu2")
    print(info["stu2"])
else:
    info["stu2"] = 'ws'
print(info)

print(info.values()) #打印所有的值
print(info.keys()) #打印所有的键
ms = info.setdefault("stu2","kkk") #在字典中查找键为stu2的,若找到则返回找到的这个值,若没找到则将后边的值赋给他
print(ms)
print(info)

msg1 = {
    "name":"rcl",
    "age":24,
    "sex":"man"
}

msg2 = {
    "name":"wtl",
    "area":"bj",
    1:3
}
msg1.update(msg2) #将两个字典进行合并,如果有重复的键的话进行替代,若无则进行新增
print(msg1)

print(msg1.items()) #把一个字典转为列表

c = dict.fromkeys([6,7,8],"aaa") #初始化一个新的字典,同时key按照给定的key生成,值按照参数填充
#此处有一个坑,使用fromkeys初始化字典的时候,生成key都指向内存中的一个地址,因此注意当值有多层的时候,修改一个值就全部修改了

print(c)

#字典的循环
for i in info:
    print(i,info[i]) #建议使用此种方式对字典进行循环

for k,v in info.items(): #info.items()为将字典转为一个列表  但不如上一种方式高效
    print(k,v)

 

3,集合是一个无序的,不重复的数据组合,集合的重要作用,去重,关系测试   把一个列表变成集合,那么他就自动去重了,关系测试时测试两组数据之前的交集,差集合并集等关系

# -*-coding: utf-8 -*-
list1 = [1,2,4,5,2,0,1]

list2 = set(list1) #{0, 1, 2, 4, 5} 将列表转换为集合
print(list2)
list3 = {2,7,0,33,22,67}
#取交集
list_inter = list2.intersection(list3)
print(list_inter)
#取并集
list_union = list2.union(list3)
print(list_union)
#取差集
list_diff = list2.difference(list3) #保存list2中有的list3没有的
difference_update() 找到list3中不存在的,同时更新list2
print(list_diff) #取子集 print(list2.issubset(list3)) #False #取父集 print(list2.issuperset(list3)) #False list4 = {1,2,4} print(list2.issuperset(list4)) #判断list2是不是list4的父集 #对称差集 print(list2.symmetric_difference(list3)) #取出两个集合去除交集后的集合 #判断两个集合是否有交集 print(list2.isdisjoint(list3)) #False 表示具有交集 #----------使用运算符运算----------- #交集 print(list2 & list3) #并集 print(list2 | list3) #求差集 print(list2 - list3) #求对称差集 print(list2 ^ list3) #---------------集合的增删改查------------- #集合没有插入,只有新增,集合是无序的 list2.add("xx") print(list2) #添加多项 list2.update([10,20,30]) print(list2) # list2.remove(0) print(list2) #len 计算集合的长度 print(len(list2)) #判断某个值是否在集合中 #x in list1 #判断字符串,列表,集合,字典都是使用此种语法 #任意删除一个值,同时将该值返回 print(list2.pop()) #删除 print(list2.discard(33333)) #与remove的区别是如果删除一个不存在的数据的话,remove会报错,discard不会报错

 

posted @ 2017-05-16 13:48  码上平天下  阅读(122)  评论(0编辑  收藏  举报