Python(七)字符串和散列类型

'''
for 迭代循环
   break continue
'''
# for i in range(1,10,2):
#     print(i)
'''
列表 可变数据类型,可以增删改查:
    append添加
    pop删除
list不要做变量名
'''
# li = [5,7,8,9,6]
# li[1] = 4
# print(li)
# li[1:3] = 5,6
# print(li)
'''
元组:
    不可变类型 tuple()
'''
# # 读取元组中的元素
# tu = (5,7,8,9)
# print(tu)
# print(tu[1])
'''
字符串:(str)不可变类型
    单引号、双引号、三引号
    字符串无法对本身进行修改,必须重新去赋值
'''
'''字符串的修改'''
# # 字符串可以索引取值
# str1 = 'Hello Python'
# print(str1[4])
#
# # 字符串可以切片取值[下标:下标]
# print(str1[0:5])
# print(str1[0:5:2])
#
# # 字符串添加
# # +、join
# str1="Hello"
# str2="python"
# str3 = str1+str2
# print(str1+str2)        # 打印Hellopython
#
# # replace()修改,第一个参数是要修改的值,第二个参数是新的元素,第三个参数是要替换的个数
# str1.replace('H','h')
# print(str1)     # 打印Hello
# print(str1.replace('H','h'))        # 打印hello
# str3 = str1.replace('l','*')
# print(str3)     # 打印He**o
# str4 = str1.replace('l','*')
# print(str4)     # 打印He**o
#
# # 字符串的修改
# # 字符串全部转大写
# str1 = 'python'
# str1.upper()
# print(str1)     # python
# # 若要得到改变的字符串数据,则需要一个新变量接收
# # 字符串全大写
# str1 = str1.upper()
# print(str1)     # PYTHON
# # 字符串全小写
# str1 = str1.lower()
# print(str1)     # python
#
# # 字符串去空格
# str1 = '     123456   '
# str = str1.strip()
# print(str)     # 打印123456
# str = str1.lstrip()       # 去除左边的空格
# print(str)      # 打印123456
# str = str1.rstrip()       # 去除右边的空格
# print(str)      # 打印     123456
# str2 = '  123   456  '
# print(str2.strip())     # 打印123   456
#
# # split()切割,同时作为切割条件的元素,就被删除了
# # 第一个参数切割元素,第二个参数切割次数,打印的是列表
# print(str2.split(' '))      # 打印['', '', '123', '', '', '456', '', '']
# str3 = 'This is Python'
# str4 = str3.split(' ')
# print(str4)      # 打印['This', 'is', 'Python']
# print(str3.split(' ',1))       # 打印['This', 'is Python']
#
# # split可以配合join方法 拼接回字符串
# print(' '.join(str4))
#
# # 字母小写改大写
# str1 = 'this is python'
# print(str1.capitalize())        # 首字母大写,打印This is python
# print(str1.title())     # 单词首字母大写,标题形式,打印This Is Python


'''字符串的查找'''
str1 = 'this is python'
# find查找元素的下标,默认从0开始,第一个参数是查找的元素,第二个参数是表示下标查找的位置(从第几个开始)
print(str1.find('t'))
print(str1.find('t',1))
# count()统计
li = [5,7,7,8,8,9,9]
print(li.count(7))      # 统计元素7出现的次数,2
print(str1.count('t'))      # 统计字符串中t出现的次数,2
# len()查询长度,空格也算一个元素
print(len(li))      # 打印列表的长度,7
print(len(str1))    # 打印str1的长度14
# find查找不存在的元素会返回-1
str1 = 'this is python'
index = 0
for i in str1:
    index = str1.find('t',index)      # 可以用index去接收查找到元素的下标
    if index == -1:
        break
    else:
        print(index,end=' ')
        index += 1

# isdigit()判断字符串是不是全数字
str1 = '123456789'
print(str1.isdigit())   # 全部都是数字,返回True
# isalpha()判断字符串是不是纯字母
str2 = 'hello python'
print(str2.isalpha())       # False
# 判断islower()是不是全部小写
print(str2.islower())


'''
字符串的转义:
\n 换行
\t 水平制表符
\\ 转义反斜杠
\' 转义单引号
\0 转义空字符(空格)
\a 系统提示音(需要到cmd去听)
'''
# str1 = '''THIS IS
# PYTHON'''
# print(str1)     # 打印THIS IS\nPYTHON
# str1 = 'THIS\tpython'
# print(str1)     # 打印THIS	python
# str1 = 'THIS\\npython'
# print(str1)     # 打印THIS\npython
# str1 = 'THIS\'npython'
# print(str1)     # 打印THIS'npython
# str1 = 'THIS\0python'
# print(str1)     # 打印THIS python
# # r取消转义
# str1 = r'THIS\0python'
# print(str1)
'''
encode(encoding='utf-8')     声明编码格式
bd.decode('utf-8')  声明解码格式
'''
str1 = '陈宏'
bd = str1.encode(encoding='utf-8')
print(bd)       # 编码结果
print(bd.decode('GBK'))      #解码结果
'''
字典和集合
    字典{}dict:
        以键值对数据形式存在
        键是不变的字符串,并且是唯一的
        值可以是任何数据类型
'''
# dic = {}    # 定义一个空字典
# id = '20210922'
# name = 'CH'
# dic = {id:name}
# print(dic)
# dic = {'name':'CH','age':'20','sex':'nan'}
# print(dic)
#
# # 字典的增删改查
# # 字典根据键取值
# print(dic['name'])      # 打印CH
# #print(dic['size'])      # 报错
# # get()方法查找到没有键存在时不会报错,只是无返回值
# print(dic.get('name'))      # 打印CH
# print(dic.get('size'))      # 打印None
# print(dic.get('size','size不存在'))    # 查找不到size时,会打印size不存在
#
# # 字典[]修改,键有则改,无则增
# print(dic['age'])
# dic['age'] = 21
# print(dic)
# dic['weight'] = 140
# print(dic)      # 打印{'name': 'CH', 'age': 21, 'sex': 'nan', 'weight': 140}
# # 字典setdefault()修改,键有则不变,无则增
# dic.setdefault("name","HC")
# print(dic)      # 打印{'name': 'CH', 'age': 21, 'sex': 'nan', 'weight': 140}
# dic.setdefault('with',50)
# print(dic)      # 打印{'name': 'CH', 'age': 21, 'sex': 'nan', 'weight': 140, 'with': 50}
#
# # 字典pop()删除,需要传值
# dic.pop('with')
# print(dic)      # 打印{'name': 'CH', 'age': 21, 'sex': 'nan', 'weight': 140}
# # 字典popitem()删除,不需要传值,默认从后往前删
# dic.popitem()
# print(dic)      # 打印{'name': 'CH', 'age': 21, 'sex': 'nan'}
# # 字典clear()清空
# dic.clear()     # 表示清空
# print(dic)      # 打印{}
#
# dic = {'name':'CH','age':'20','sex':'nan'}
# print(type(dic))    # 打印<class 'dict'>
# dic1 = dic.copy()
# print(dic1)     # 打印{'name': 'CH', 'age': '20', 'sex': 'nan'}
# print(dic.keys())     # 返回键
# print(dic.values())   # 返回值
# print(dic.items())      # 以元组形式返回键值对
#
# # 字典里的值可以是任意数据类型
# dic1 = {'name':[1,5],'age':True}
'''
集合:
    集合的每个值是唯一的,并且是无序的(切记(无序))
    字典key也具有同样的特性
    交集&,并集|,差集-
'''
set1 = {5,9,8,7}
print(type(set1))       # <class 'set'>
tu = (2)
print(type(tu))     # <class 'int'>
tu = (2,)
print(type(tu))     # <class 'tuple'>
set2 = {5,7,8,5,7,8}
print(set2)     # {8, 5, 7}
set1 = {1,2,3,4,5,6}
set2 = {9,8,7,4,5,6}
set4 = set1&set2
print(set4)     # 交集{4, 5, 6}
set5 = set1|set2
print(set5)     # 并集{1, 2, 3, 4, 5, 6, 7, 8, 9}
set6 = set1-set2
print(set6)     # 差集{1, 2, 3}
set7 = set2-set1
print(set7)     # 差集{8, 9, 7}

# 集合的增删改查
set1 = {1,2,3,4,5,6}
# 集合添加元素
set1.add(7)
print(set1)     # 打印{1, 2, 3, 4, 5, 6, 7}
# update(),无则增
set1.update({1,22})
print(set1)     # 打印{1, 2, 3, 4, 5, 6, 7, 22}
# pop()删除最前面的一个元素
set1.pop()
print(set1)     # 打印{2, 3, 4, 5, 6, 7, 22}
# remove指定元素删除
set1.remove(22)
print(set1)     # 打印{2, 3, 4, 5, 6, 7}
'''
总结:
    可变对象:list、dict、set
    不可变对象:数值、str、元组
'''

文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去!一起加油!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值