python-day04-转义符,字符串,字典,集合

掌握 转义符的使用

  1. 概念
    \ (反斜线) 就是转义符, 作用: (1)将有意义的转换成无意义的 或者 (2)将无意义的转换成有意义

  2. 例如
    无意义: n t r , 如果 \n \t (横向制表符) \r (回车符)

    有意的: 列如 双引号中的双引号 , 单引号中的单引号 , \

无意义的变成有意义的

print('床前\t明月光,\n疑似地上霜.\n举头\r望明月')

有意义的变成无意义

print("床前明月光,疑似地上霜.举头望明月\"")
print("床前明月光,疑似地上霜.举头望明月\\")
print("床前明月光,疑似地上霜.举头望明月\\n")

访问字符串

语法:
字符 = 字符串[索引]

s = '床前明月光,疑似地上霜.举头望明月'
print(s[0])
print(s[1])
print(s[2])

while遍历字符

语法:
索引= 0;
长度 = len(字符串)
while 索引 < 长度:
元素 = 字符串[索引]
索引+=1

s = '床前明月光,疑似地上霜.举头望明月'
i = 0
len1 = len(s)
while i < len1:
	print(s[i])
	i += 1

for只能够通过从头到尾 依次 从 字符串 中取出 每⼀个字符并执⾏相同的操作。
语法:
for 字符 in 字符串:
print(字符)

s = '床前明月光,疑似地上霜.举头望明月'
for w in s:
	print(w)

字符串函数

判断

常用
string.isdigit() # 如果字符串只包含数字,则返回True (全角数字,(0),\u00b2)
srting.islower() # 如果string中至少包含一个区分大小写的字符,并且所有这些字符(区分大小的)都是小写,则返回True
srting.isupper() # 如果string中至少包含一个区分大小写的字符,并且所有这些字符(区分大小的)都是大写,则返回True

其他
string.isspace() # 如果字符串中只包含空格,则返回True
string.isalnum() # 如果字符串至少有一个字符,并且所有字符都是字母或数字,则返回True
string.isalpha() # 如果字符串至少有一个字符,并且所有字符都是字母,则返回True
string.isdecimal() # 如果字符串只包含数字,则返回True (全角数字)
string.isnumberic() # 如果字符串只包含数字,则返回True (全角数字,汉字数字)
string.istitle() # 如果字符串是标题化的(每个单词的首字母是大写)则返回True
‘’’

s = 'aBc123'
print(s.isdigit())  # 如果字符串只包含数字,则返回True (全角数字,(0),\u00b2)
print(s.islower())  # 如果string中至少包含一个区分大小写的字符,并且所有这些字符(区分大小的)都是小写,则返回True
print(s.isupper())  # 如果string中至少包含一个区分大小写的字符,并且所有这些字符(区分大小的)都是大写,则返回True

查找和替换

常用
string.startswith(str) # 检查字符串是否以str开头,是 则返回True
string.endswith(str) # 检查字符串是否以str结束,是 则返回True
string.find(str,start=0,end=len(string)) # 检查str是否在字符串string中,如果指定start和end范围,则检查是否在范围中,是则返回开始的索引值,否则返回-1

其他
string.rfind(str,start=0,end=len(string)) # 类似find,不过是从右边开始查找 (待确认返回值是从哪边开始,)
string.index(str,start=0,end=len(string)) # 类似find,不过如果str不在string 会报错
string.rindex(str,start=0,end=len(string)) # 类似find,不过是从右边开始查找 (待确认返回值是从哪边开始,)
string.replace(old_str,new_str,num) # 把string中的old_str替换成new_str,如果num指定,则不超过num次,num为int类型
‘’’

string = 'st1stradfasf123'
print(string.startswith('str'))  # 检查字符串是否以str开头,是 则返回True
print(string.endswith('str')) # 检查字符串是否以str结束,是 则返回True
print(string.find('str'))  # 检查str是否在字符串string中,如果指定start和end范围,则检查是否在范围中,是则返回开始的索引值,否则返回-1

大小写转换

常用
string.lower() # 把字符串中的所有字母小写
string.upper() # 把字符串中的所有字母大写
string.swapcase() # 翻转string中的大小写

其他
string.capitalize() # 把字符串中的第一个字符大写
string.title() # 把字符串中的每个单词的首字母大写

string = 'abdABC'
print(string.lower())  # 把字符串中的所有字母小写
print(string.upper())  # 把字符串中的所有字母大写
print(string.swapcase()) # 翻转string中的大小写

拆分和连接

常用
ss.join(seq) # 以ss作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串
string.split(str,num) # 以str为分隔符拆分string,如果num有指定值,则仅分隔num次,str不设置则使用’\t’,’\r’,’\n’和空格作为分隔符

其他
string.patition(str) # 把字符串string分成3个元素的元组(str前面,str,str后面)
string.rpatition(str) # 类似patition的方法,只不过是从右边开始查找
spring.splitlines() # 按照行(’\r’,’\n’,’\r\n’)分隔,返回一个包含各行作为元素的列表

list = ['adfa','1233','xxxx']
string = '123xaaaxbbbbx111'
print('ss'.join(list))  # 以ss作为分隔符,将list列表中所有的元素(的字符串表示)合并为一个新的字符串
print(string.split('x'))  # 以x为分隔符拆分字符串string(输出列表),如果num有指定值,则仅分隔num次,str不设置则使用'\t','\r','\n'和空格作为分隔符

去除空白字符

string.strip(s) # 截掉左右两边的字符s,可以截掉多个字符,不分顺序,空值为截掉空格
string.lstrip() # 截掉左边(开头)的字符s,可以截掉多个字符,不分顺序,空值为截掉空格
string.rstrip() # 截掉右边(结尾)的字符s,可以截掉多个字符,不分顺序,空值为截掉空格

string = ' 12aaxx12aa21xx221aa '
print(string.strip())  # 截掉左右两边的字符s,可以截掉多个字符,不分顺序,空值为截掉空格
print(string.lstrip(' 12a'))  # 截掉左边(开头)的字符s,可以截掉多个字符,不分顺序,空值为截掉空格
print(string.rstrip(' 12a'))  # 截掉右边(结尾)的字符s,可以截掉多个字符,不分顺序,空值为截掉空格

字典

掌握 字典数据类型

  1. 概念
    字典: 存储多个元素的容器
    顺序问题: 3.7 以前无序 , >=3.7 有序

备注:

  1. 每个元素 都由键值对组成
  2. 根据键获取对应的值
  3. 使用{} 定义, key-value 组成
    使用{“key”:“值”,“key2”:“值2”}

什么情况下使用字典

  1. 存储的每个元素 具有不同的含义(意义) 这个时候使用字典
info = {
     
    '姓名':'张二',
    '性别':'男',
    '电话':'13411221122',
    '职位':'销售'
}
print(info)
print(type(info))

字典的操作

添加或者修改

如果key不存在,添加键值对。如果key存在,修改value。
语法:
字典[key] = value

info = {
     "id":1,"name":"张飞","sex":"男","age":18}
info['name'] = '王虎'
info['tel'] = '13422112211'
print(info)
print(type(info))

添加或者返回原值

如果key不存在,添加键值对key:value1,并返回添加的value1。如过key存在,不修改key的值,返回key原来的值
语法:
v1 = 字典.setdefault(key,value1)

info = {
     "id":1,"name":"张飞","sex":"男","age":18}
value = info.setdefault('name','马超')
value2 = info.setdefault('tel',13433113311.1)
print(value)
print(type(value))
print(value2)
print(type(value2))
print(info)

合并

将字典2的数据合并到字典,字典2会覆盖字典中已存在的内容
语法:
字典.update(字典2)

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18}
info1 = {
     "tel": '13433113311', "name": "张飞", }
info2 = {
     "id": 1, "name": "李四", "sex": "女", }
info.update(info1)
print(info)
info.update(info2)
print(info)

删除指定键值对

删除指定键值对,如果key不存在就会报错
语法:
del 字典[key]
字典.pop(key)
备注:pop返回的是删除的键值对的值,类型是字符串

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18}
del info["age"]
print(info)
key = info.pop('sex')
print(key)
print(type(key))
print(info)

清空字典

删除指定键值对,如果key不存在就会报错
语法:
字典.clear()

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18}
info.clear()
print(info)

根据key查询value

语法:
字典[key] 根据key查询值,如果key不存在就会报错
字典.get(key) 根据key查询值,如果key不存在返回None

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18,'height':1.75}
print(info['id'])
print(type(info['id']))
print(info.get('height'))
print(type(info.get('height')))
print(info.get('tel'))
print(type(info.get('tel')))

获取字典的键值对数量

语法:
len(字典)

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18,'height':1.75}
s = len(info)
print(s)

获取字典中所有值

语法:
字典.values()

备注:返回类型为dict_values类型(字典值)
只能转为列表
再用 列表[索引] 取出值

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18,'height':1.75}
values = info.values()
print(values)
print(type(values))
values1 = list(values)
print(values1)
print(type(values1))
v1 = values1[1]
print(v1)

获取字典中所有键

语法:
字典.keys()

备注:和值一样,返回类型为dict_keys类型(字典键)
只能转为列表
再用 列表[索引] 取出值

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18,'height':1.75}
keys = info.keys()
print(keys)
print(type(keys))
key1 = list(keys)
print(key1)
print(type(key1))
k1 = key1[1]
print(k1)

判断键是否在字典中存在

语法:
value = key in 字典

value值一定是一个boolean类型的数据

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18,'height':1.75}
s1 = 'id' in info
print(s1)
s2 = 'tel' in info
print(s2)

遍历(重点中的重点)

遍历key

语法:
for key in 字典:
value = 字典[key]

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18, 'height': 1.75}
for key in info:  # 遍历所有键
	print(key)  # 打印(key)

遍历value

语法:
for value in 字典.values():
value

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18, 'height': 1.75}
for value in info.values():  # 遍历所有键
	print(value)  # 打印

遍历键值对

语法:
for item in 字典.items():
item
备注:输出数据类型为元组

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18, 'height': 1.75}
for item in info.items():
	print(item)
    print(type(item))

遍历键和值

语法:
for key,value in 字典.items():
key,value

info = {
     "id": 1, "name": "张飞", "sex": "男", "age": 18, 'height': 1.75}
for keys,values in info.items():
	print(keys,values)

集合

  1. 概念:
    集合 是 一个无序的没有重复元素的 容器

  2. 定义:
    集合={元素1,元素2,}
    集合=set({元素1,元素2,})
    注意:
    空集合: 只能通过 set() 定义空集合

  3. 集合作用: 用于去除容器中的重复数据

names = ["张飞", "刘备", "关羽", "张飞"]
names = list(set(names))
print(names)
  1. 类型转换:
    list(),tuple(),set() 相互转换

例如:

set1 = {
     "张飞", "刘备", "关羽", "张飞"}
print(set1)

空集合
只能用set()

set2 = set()  # 空字典
print(set2)
print(type(set2))

你可能感兴趣的:(学习,python,python,字符串)