找回密码
 立即注册
  • 便民服务
  • 关注我们
  • 社区新手
# 3、python 中字符串函数
# 1)capitalize():首字符大写
# str1 = 'python'
# str2 = 'python_hello'
# print(str1.capitalize())    #结果 Python  capitalize()时函数,首字符大写
# print(str1.title())         #结果 Python 首字符大写
# print(str2.capitalize())     #结果 Python_hello  这个函数只会首字符大写
# print(str2.title())          #结果 Python_Hello  连接再一起的首字符大写

# 2)count():统计具体字符出现的次数
# str1 = 'python_hello'
# print(str1.count('h'))     #结果 2    #统计h字符的个数

# 3)join():把集合中的字符按自定义的分隔符连接在一起
# str1 = 'python'
# print('*'.join(str1))    #结果 p*y*t*h*o*n  用*号分隔符连接python这个字符串


# 4)split():把字符串通过指定标识符进行分割
# str1 = 'python'
# print(str1.split('a'))   #结果 ['python']  指定的字符a 不在str1这个字符里面,则返回一个列表,
#                          # 把整个字符作为这个列表的元素
# print(str1.split('t'))   # 结果 ['py', 'hon']  指定的字符t在str1这个字符里面,则返回一个列表
                         #且把这个分割符去掉,分成两个列表元素

# 练习题
#s = 'py thon'   转化成python
# s = 'py thon'
# s1 = s.split(' ')     #['py','thon']
# # print(s1[0]+s1[1])   #字符串 是可以相加,整型不能相加
# for i in s1:
#     print(i,end='')      #end= 不换行

# 通过所学的知识把python_hello 转为PythonHello
# str1 = 'python_hello'
# str2 = str1.title().split('_')
# print(str2[0]+str2[1])
# for i in str2:
#     print(i,end='')


# 5)strip(ab):删除字符串开头和结尾有a或b的字符
# str1 = 'abcdabcdba'
# print(str1.strip('ab'))   #结果 cdabcd 删除开头和结果有啊或b的字符

# 6)lstrip(ab):删除字符串开头有ab序列字符
# str1 = 'abcdabcdba'
# print(str1.lstrip('ab'))   #结果 cdabcdba   删除开头是a或b的字符
# print(str1.lstrip('ba'))   #结果 cdabcdba

# 7)rstrip(ab):删除字符串结尾有ab序列字符
# str1 = 'abcdabcdba'
# print(str1.rstrip('ab'))    #结果 abcdabcd 删除结尾是a或b的字符

# 8)startswith():判断字符串是否以什么开始
# str1 = 'python'
# print(str1.startswith('p'))   #True 判断字符串以p开始
# print(str1.startswith('1'))   #False 判断字符串以1开始

# 9)endswith():判断字符串是否以什么结束
# str1 = 'python'
# print(str1.endswith('n'))   #True
# name = input('请入您要上传的文件')
# if name.endswith('.txt'):       #这里注意冒号
#     print('上次成功')
# else:
#     print('上传失败')

# 10)find()/rfind():字符串查询find()是左边开始查,rfind()从右边开始查,结果
# 显示下标
# str1 = 'python'
# print(str1.find('p'))    #结果 0 下标就是索引
# print(str1.rfind('n'))   #结果 5 一般是正索引

# 11)replace():replace(substring,newstring,max) substring表示被替换的字
# 符串,newstring要替换字符串,max表示替换的次数
# str1 = 'pythonpython'
# print(str1.replace('p','y',1))   #结果yythonpython 把字符串中p用y只替换一次,
# print(str1.replace('p','y'))    #结果 yythonyython,如果没有max 全部替换

# 12)lower():方法转换字符串中所有大写字符为小写
# str1 = 'PYTHON'
# str2 = 'PYthon'
# print(str1.lower())      #结果 python
# print(str2.lower())      #结果 python

# 13)upper():将字符串中的所有小写字符转换为大写字母输出
# str1 = 'python'
# str2 = 'PYTHON'
# print(str1.upper())     #结果 PYTHON
# print(str1.upper())     #结果 PYTHON

# 14)isdigit():判断字符串中是否全为数字
# str1 = '123ab'
# str2 = '123'
# str3 = 123      #不是字符串
# print(str1.isdigit())    #False
# print(str2.isdigit())   #ture

# 15)isalpha():判断字符串中是否全为字母
# str1 = '123ab'
# str2 = 'abc'
# print(str1.isalpha())    #False
# print(str2.isalpha())     #ture

# 16)isalnum():判断字符串当中是否全都为数字,全为字母,或者数字字母组合
# 返回布尔值:True和False
# str1 = 'python12'
# str2 = 'python'
# str3 = '1234'
# str4 = 'python#'
# print(str1.isalnum())     #ture
# print(str2.isalnum())    #ture
# print(str3.isalnum())    #ture
# print(str4.isalnum())    #False


# 17)istitle():判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否
# str1 = 'Python'
# str2 = 'python'
# str3 = 'PYthon'
# print(str1.istitle())     #True
# print(str2.istitle())    #False
# print(str3.istitle())    #False

# 18)isupper()/islower():is开头的就是判断一个字符串是否展示为都是大写或者都是小写
# str1 = 'PYTH   #TrueON'
# # str2 = 'python'
# # print(str1.isupper())    #True
# # print(str2.islower())


# 4、python 中的列表  []表示 list
# 1)第一种方式定义列表
# list1 = ['dcs','多测试','123',88]
# print(list1)          #打印结果['dcs', '多测试', '123', 88]
# print(type(list1))     #<class 'list'> 数据类型是list

# 2)第二种定义方法
# str1 = 'dcs'
# list1 = list(str1)     #把字符串转化为列表
# list2 = list('test')   #把字符串转化为列表
# print(list1)        #['d', 'c', 's']
# print(list2)        #['t', 'e', 's', 't']

# 3)列表中的函数和方法
# 1、索引取值和赋值
# test = 'duoceshi'
# list1 = list(test)
# print(list1)          #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
# print(list1[2])      # 结果o
# list1[2] = 'dcs'     #索引赋值把dcs这个字符串赋给list1索引为2的值
# print(list1)        #['d', 'u', 'dcs', 'c', 'e', 's', 'h', 'i']

# 2、切片赋值
# test = 'duoceshi'
# list1 = list(test)
# list1[2:] = 'dcs'     #切片赋值,把list1索引为2及后面的元素全部替换成dcs
# print(list1)      #['d', 'u', 'd', 'c', 's']

# 4)append 函数 添加元素
# list1 = ['dcs','多测试','123',88]
# list1.append('test')
# print(list1)    #['dcs', '多测试', '123', 88, 'test'] 往list1这个列表添加一个test元素。默认加在末尾
# list1.append(125)
# print(list1)    #['dcs', '多测试', '123', 88, 'test', 125]

# 5)extend函数:连接两个列表
# list1 = ['dcs','多测试','123',88]
# list2 = [126,'test']
# list3 = '999'      #字符串
# list1.extend(list2)      #拼接list1和list2
# print(list1)          #['dcs', '多测试', '123', 88, 126, 'test']

# list1.extend(list3)     #extend 可以拼接列表和字符串不能拼接整型
# print(list1)         #['dcs', '多测试', '123', 88, '9', '9', '9']

# 注意:
# extend与append方法的相似之处在于都是将新接收到参数放置到已有列表 的后面
# append方法可以接收任意数据类型的参数,并且追加到list尾部
# extend方法一般和列表还有字符串进行拼接,不能拼接整型


# 6)insert(index,value)函数:在指定位置插入一条数据
# list1 = ['dcs','多测试','123',88]
# list1.insert(0,66)
# print(list1)         #[66, 'dcs', '多测试', '123', 88]

# 7)remove函数:移除元素
# list1 = ['dcs','多测试','123',88]
# list1.remove(88)      #['dcs', '多测试', '123']
# list1.remove('dcs')
# print(list1)        #['多测试', '123']
# 注意:如果列表有多个相同元素,移除时会移除最前面那个


# 8)索引删除值 del
# list1 = ['dcs','多测试','123',88]
# del list1[2]
# print(list1)    #['dcs', '多测试', 88]   删除索引为2 的值
# del list1[2:]
# print(list1)      #['dcs', '多测试']

# 9)index函数:在列表中查找元素所对应的索引值
# list1 = ['dcs','多测试','123',88]
# print(list1.index(88))       #结果 3   查找列表中元素88对应的索引值

# 10)sort函数:实现列表的升序排列
# list1 = [1,5,3,6,2,7]
# list2 = [1,4,5,8,2,'a','A']
# list3 = ['a','A','B','bf','AF']
# list1.sort()
# print(list1)       #[1, 2, 3, 5, 6, 7]
# list2.sort()
# print(list2)        #如果列表中都是数字可以排数,如果类表中含有数字和字符串不能排序
# list3.sort()
# print(list3)     #['A', 'AF', 'B', 'a', 'bf']  如果列表都是字符串那就按照ASCII进行排序

# 11)sorted函数:实现降序排列
# list1 = [1,5,3,6,2,7]
# print(sorted(list1,reverse=True))     #[7, 6, 5, 3, 2, 1]
# print(sorted(list1,reverse=False))    #[1, 2, 3, 5, 6, 7]


# 12)reverse函数:列表元素反转
# list1 = [1,5,3,6,2,7]
# list1.reverse()
# print(list1)       #[7, 2, 6, 3, 5, 1]

# # 13)pop函数:
# list1 = [1,5,3,6,2,7]
# # print(list1.pop())    #结果 7 ,打印的结果就是被删除的元素,默认删除最后一个
# # print(list1)          #[1, 5, 3, 6, 2] 打印删除侯的结果
# print(list1.pop(0))     #指定索引删除对应的值,删除元素1
# print(list1)           #[5, 3, 6, 2, 7]

# pop 总结:
# 1.默认移除列表最后一个元素,并返回元素的值
# 2.移除指定位置的元素list1.pop(0)表示移除第一个元素
# 3.在列表中pop函数是唯一一个既能改变列表元素又有返回值


# 5、python 中的元组   tuple()
# 1)元组用tuple()来表示
# 定义:元组(tuple)是Python中常用的一种数据结构。元组由不同的元素组成, 每个元素可以存储不同类型的数据,如字符串、数字、
# 甚至元组。元组是'写保护' 的,即元组中元素作为一个整体,创建后不能再做任何修改操作。
# tuple1 = (1,'china','dcs','中国',['dcs',88,'test'])
# print(tuple1)       #(1, 'china', 'dcs', '中国', ['dcs', 88, 'test'])
# print(type(tuple1))  #<class 'tuple'>  数据类型元组

# tuple2 = (1,)
# print(tuple2)            #结果(1,)
# print(type(tuple2))      #<class 'tuple'>  注意:当元组只有一个元素时,后面要加逗号

# 2)元组中索引取值和切片
# tuple1 = (1,'china','dcs','中国',['dcs',88,'test'])
# print(tuple1[2])       #dcs 索引取值
# print(tuple1[2:])      #('dcs', '中国', ['dcs', 88, 'test']) 索引切片

# 3)元组和列表之间的转换
# tuple1 = (1,'china','dcs','中国',['dcs',88,'test'])
# tuple1[0] = 'duo'        #不可以索引赋值
# tuple1.insert(0,66)      #元组也不能插入

# list1 = list(tuple1)    #把元组转换为列表
# print(list1)            #[1, 'china', 'dcs', '中国', ['dcs', 88, 'test']]
# list1[0] = 'duo'        #转换为列表后索引赋值
# tuple2 = tuple(list1)   #把列表转换为元组
# print(tuple2)           #('duo', 'china', 'dcs', '中国', ['dcs', 88, 'test'])
# print(type(tuple2))     #<class 'tuple'>


# 面试题:元组可以被改变吗?
# ==》当元组作为一个整体时,不能被改变,如果转换为列表可以改变
# 如果元组中含有列表元素时可以通过二维数组的方式改变
# tuple1 = (1,'china','dcs','中国',['dcs',88,'test'])
# tuple1[4][2] = 'china'    #前面这个4 是索引取值,后面的2是索赋值
# print(tuple1)       #(1, 'china', 'dcs', '中国', ['dcs', 88, 'china'])

# 总结:元组和列表的区别
# 相同:
# a、都是序列类型的容器对象,可以存放任何类型的数据
# b、支持切片、迭代等操作
# 不同:
# a、list 是可变的对象,元组tuple是不可变的对象
# b、tuple不可变,所以使用tuple可以使代码更安全

# 迭代==>遍历
# tuple1 = (1,'china','dcs','中国',['dcs',88,'test'])
# for i in tuple1:
#     print(i)


# 6、python 中的字典
# 字典用dict = {}
# 字典的定义
# 1)字典(dict)是另一种可变容器模型,且可存储任意类型对象。字典的
# 每个键值key:value对用冒号 : 分割,每个键值对之间用逗号分割,
# 整个字 典包括在大括号 {} 中
# 2)字典同时是无序,字典都是以键值对的形式存在,先键后值,键是唯一 的,
# 值且不唯一 字典表达符:{}

# 1)字典第一定义方法
# dict1 = {'name':'xiaoduan','age':18}
# print(dict1)       #{'name': 'xiaoduan', 'age': 18}
# print(type(dict1))   #<class 'dict'> 数据类型字典

# 2)字典的第二种定义方法
# test = [('name','xiaoduan'),('age',18)]
# dict1 = dict(test)
# print(dict1)       #{'name': 'xiaoduan', 'age': 18}

# 3)字典中的函数
# 字典的添加
# dict1 = {'name':'xiaoduan','age':18}
# dict1['class'] = 1833     #字典通过键赋值
# print(dict1)      #{'name': 'xiaoduan', 'age': 18, 'class': 1833}

# 字典的覆盖
# dict1 = {'name':'xiaoduan','age':18}
# dict1['age'] = 20
# print(dict1)      #{'name': 'xiaoduan', 'age': 20}

# 4)取出字典中的键
# dict1 = {'name':'xiaoduan','age':18}    #for 是遍历
# for i in dict1.keys():
#     print(i)      #name age

# 5)取出字典中所有的值
# dict1 = {'name':'xiaoduan','age':18}
# for i in dict1.values():
#      print(i)      #xiaoduan 18

# print(dict1['name'])      #xiaoduan  通过键取值

# 6)设置键值对字典进行添加setdefault
# dict1 = {'name':'xiaoduan','age':18}
# dict1.setdefault('class',1833)
# print(dict1)      #{'name': 'xiaoduan', 'age': 18, 'class': 1833}
                 #如果字典中的键存在,用这个函数无效
# 7)删除键对应的值
# dict1 = {'name':'xiaoduan','age':18}
# del dict1['age']    #删除age这个键,对应的值也删除
# print(dict1)        #{'name': 'xiaoduan'}

# del dict1
# print(dict1)     #删除dict1,dict1不存在了

# 8)字典的遍历:for...in...遍历字典
# dict1 = {'name':'xiaoduan','age':18}
# for i in dict1:
#     print(i)           #name age   这里遍历打印出字典的键
#     print(dict1[i])   #i是字典的键,通过键取值 xiaoduan  18

# 9)使用items()完成遍历
# dict1 = {'name':'xiaoduan','age':18}
# for i,j in dict1.items():     #定义两个变量i,j
#     print(i,j)      # name xiaoduan  age 18


# 10)pop(key)函数,删除指定键并返回删除的值
dict1 = {'name':'xiaoduan','age':18}
print(dict1.pop('name'))       #xiaoduan  打印的结果是删除键的值
print(dict1)                   #{'age': 18}  返回删除后的字典

# 11、clear()清空字典所有项
dict1 = {'name':'xiaoduan','age':18}
dict1.clear()
print(dict1)     #{}


# 12、get(key)方法,通过key获取值,当键不存在,返回None
dict1 = {'name':'xiaoduan','age':18}
print(dict1.get('name'))     #xiaoduan
print(dict1['name'])         #xiaoduan

# 13、fromkeys函数可以给具体的键指定值

dict1 = {}.fromkeys(['name','age'])
print(dict1)     #{'name': None, 'age': None}
dict1['name'] = 'test'
print(dict1)

dict1 = {}.fromkeys(['name','age'],'test')
print(dict1)     #{'name': 'test', 'age': 'test'}

dict1 = {'name':'xiaoduan','age':18}
dict1 = {'name':'xiaoduan','age':18}.fromkeys(['class'],1833)
print(dict1)       #{'class': 1833}
# 14、__contains__函数检查字典是否有指定的键,有返回True,没有返回 False
dict1 = {'name':'xiaoduan','age':18}
print(dict1.__contains__('name'))       #True
if dict1.__contains__('class'):
    print('存在此键')
else:
    # dict1['class'] = 1833       #不存在就添加
    dict1.setdefault('class',1833)   #不存在就添加
    print(dict1)        #{'name': 'xiaoduan', 'age': 18, 'class': 1833}
# 15、popitem函数随机返回并删除字典中的键值对(一般删除末尾对) 如果字典已经为空,
# 却调用了此方法,就报出KeyError异常
dict1 = {'name':'xiaoduan','age':18}
print(dict1.popitem())        #('age', 18)   删除的值返回的是tuple 元组
print(dict1)               #{'name': 'xiaoduan'}  删除后的值,还是一个字典

# 16、update函数利用一个字典更新另外一个字典
dict1 = {'name':'xiaoduan','age':18}
dict2 = {'class':1833,'age':20}
dict1.update(dict2)
print(dict1)        #{'name': 'xiaoduan', 'age': 20, 'class': 1833}
                   #如果更新的字典中键存在则覆盖新值

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册