数据类型内置方法详解之字符串、字典

数据类型内置方法详解之字符串、字典

image

1.数据类型内置方法详解之字符串

1.1 转大小写(只针对字母)

# 1.1 转大小写(只针对字母)
name1 = 'JaSoN123'
# 转全大写
print(name1.upper())  # JASON123
# 转全小写
print(name1.lower())  # jason123
# 练习:图片验证码
old_code = 'JO0Av'
print('返回给用户的验证码图片>>>:%s' % old_code)
new_code = input('请输入验证码>>>:').strip()
if new_code.lower() == old_code.lower():
    print('验证正确')
else:
    print('验证码输入错误,请重新输入')

1.2 验证是否是全大写/小写

# 1.2 验证是否是全大写/小写
# 是否是全大写
name1 = 'JaSoN123'
print(name1.isupper())  # 返回False
# 是否是全小写
print(name1.islower())  # 返回False

1.3 判断字符串是以指定字符开头或结尾


# 1.3 判断字符串是以指定字符开头或结尾
# 以指定字符开头
msg = 'please call me if you miss me'
print(msg.startswith('please'))  # 返回True
print(msg.startswith('p'))  # 返回True
print(msg.startswith('I'))  # 返回False
# 以指定字符结尾
msg = 'please call me if you miss me'
print(msg.endswith('please'))  # 返回False
print(msg.endswith('e'))  # 返回True
print(msg.endswith('me'))  # 返回True

1.4 格式化输出

# 1.4 格式化输出
# 1.4.1 占位符 %s,%d
# 1.4.2 字符串内置方法 format
# 第一种用法(类似占位符)
msg = 'my name is {0},my sex is {1}'
print(msg.format('jenny', '女'))  # my name is jenny,my sex is 女
# 第二种用法 大括号内写format引用的值的索引值,可以打破顺序,且可以重复使用相同位置的值
msg = 'my name is {0},my sex is {1},my friend is {0}'
print(msg.format('jenny', 18))  # my name is jenny,my sex is 18,my friend is jenny
# 第三种用法 大括号内写上变量名,可以打破顺序,且可以重复使用相同变量名的值
msg = 'my name is {name},my sex is {sex},my friend is {name}'
print(msg.format(name='jenny', sex='女'))  # my name is jenny,my sex is 女,my friend is jenny

1.5 字符串拼接

# 1.5 字符串拼接
# 方法一 字符串相加,但是先后顺序不能错
msg1 = 'I Miss'
msg2 = ' You'
print(msg1+msg2)  # I Miss You
msg = msg1+msg2
print(msg)  # I Miss You
msg = msg1 + msg2
print(msg)  #  YouI Miss
# 方法二 字符串内置方法join,引号里可以指定拼接的字符
msg_list = ['I', 'Miss', 'You']
print(' '.join(msg_list))  # I Miss You
new_list = ['jenny', 18, 'play']
print(''.join(new_list))  # 报错
"""拼接的对象必须是字符串类型 (在python不同数据类型之间无法直接操作)"""

image

1.6 替换字符串中指定的字符

# 1.6 替换字符串中指定的字符
# 定义方式:replace(要被替换的字符,替换后的字符,替换个数)替换个数不写默认全部替换
name = 'my name is jenny ,my age is 28'
print(name.replace('jenny', 'john'))  # my name is john ,my age is 28
name = 'my name is jenny,jenny,jenny'
# 替换指定个数
print(name.replace('jenny', 'john'))  # my name is john,john,john
print(name.replace('jenny', 'john', 1))  # my name is john,jenny,jenny

1.7 判断字符串中是否是纯数字

# 1.7 判断字符串中是否是纯数字
name = 'jenny123'
name1 = '123'
print(name.isdigit())  # 返回False
print(name1.isdigit())  # 返回True
# 练习
guess_age = input('你的猜测是>>>:').strip()
if guess_age.isdigit():
    guess_age = int(guess_age)
else:
    print('你的猜测只能是纯数字,请重新输入')

1.8 字体格式内置方法

# 1.8 字体格式内置方法
name = 'my name is jenny,my sex is female'
# 所有单词首字母大写
print(name.title())  # My Name Is Jenny,My Sex Is Female
# 开头的单词首字母大写
print(name.capitalize())  # My name is jenny,my sex is female
# 大写变小写,小写变大写
name1 = 'MY name IS jenny'
print(name1.swapcase())  # my NAME is JENNY

1.9 查找指定字符的位置

# 1.9 查找指定字符的位置,返回对应字符的起始字符的索引值,从左往右开始找,找到一个就结束
name = 'my friend is jenny'
print(name.find('n'))  # 7
print(name.find('enn'))  # 14
print(name.find('o'))  # 找不到返回-1
print(name.index('o'))  # 找不到报错

1.10 统计某个字符出现的次数

name = 'my friend is jenny'
print(name.count('n'))  # 3

1.11 字符串对齐方法

# 1.11字符串对齐方法
name = 'jason'
# 字符串居中显示,不够的用特殊符号填充
print(name.center(11, '-'))  # ---jason---
# # 字符左对齐显示,不够的用特殊符号填充
print(name.ljust(11, '-'))  # jason------
# # 字符右对齐显示,不够的用特殊符号填充
print(name.rjust(11, '-'))  # ------jason

1.12 字符串判断字母或数字

# 1.12字符串判断字母或数字
# 字符串中既可以包含字母或数字,也可以两者都有,但是不能有特殊字符
print(name.isalnum())  # 返回True
# 字符串中只包含字母
print(name.isalpha())  # 返回False

2.数据类型之列表的内置方法

2.1 数据类型转换

# 2.1 数据类型转换
# 列表内一般都会存储相同数据类型的数据
# 类型转换  数据类型关键字(需要转换的数据)
print(list(123))  # 报错
print(list(123.21))  # 报错
print(list('hello'))  # ['h', 'e', 'l', 'l', 'o']
print(list({'username': 'jason', 'pwd': 123}))  # ['username', 'pwd']
print(list((11, 22, 33)))  # [11, 22, 33]
print(list({11, 22, 33}))  # [33, 11, 22]
'''list关键字可以将支持for循环的数据类型转换成列表'''

2.2 列表数据的修改,添加

# 2.2 列表数据的修改,添加
# 修改列表里的值
name_list = ['jenny', 'john', 'tony', 'jane']
name_list[0] = '666'
print(name_list)  # ['666', 'john', 'tony', 'jane']
# 往列表里添加值
# 方法一:在列表尾部追加元素之append(),将括号里的内容当成是一个整体追加到列表尾部
name_list.append('why')
print(name_list)  # ['jenny', 'john', 'tony', 'jane', 'why']
name_list1 = ['jenny', 'john', 'tony', 'jane', 'why']
name_list1.append([1, 2, 3, 4])
print(name_list1)  # ['jenny', 'john', 'tony', 'jane', 'why', [1, 2, 3, 4]]
# 方法二:在指定索引位置插入元素之insert(索引值,插入的元素(元素当成一个整体看))
name_list1.insert(2, [1, 2, 3, 4])
print(name_list1)  # ['jenny', 'john', [1, 2, 3, 4], 'tony', 'jane', 'why']
# 方法三:扩展元素之extend(类似于for循环+append操作)
name_list1.extend([1, 2, 3, 4])
print(name_list1)  # ['jenny', 'john', 'tony', 'jane', 'why', 1, 2, 3, 4]

2.3 列表数据的查找和删除

# 2.3 列表数据的查找和删除
# 查找列表里某个值并返回对应的索引值
print(name_list1.index('john'))  # 找到了返回对应元素的索引值 1
print(name_list1.index('0'))  # 找不到直接报错
# 删除列表里的值
# 方法一:通用删除del
# 删除指定索引的值
msg_list = ['jane', 'john', 'jenny']
del msg_list[0]
print(msg_list)  # ['john', 'jenny']
# 删除列表
del msg_list
print(msg_list)  # 列表被删除,不存在
# 方法二:移除指定元素之remove(要移除的值)
msg_list.remove('jane')
print(msg_list)  # ['john', 'jenny']
print(msg_list.remove('jane'))  # 返回None
# 方法三:弹出指定索引对应的元素之pop(),括号内不写索引值默认从最后一个元素开始弹出
msg_list.pop(0)
print(msg_list)  # ['john', 'jenny']
msg_list.pop()
print(msg_list)  # ['jane', 'john']
print(msg_list.pop())  # john

3. 可变类型与不可变类型

# 3.可变类型与不可变类型
# 字符串示例
s5 = 'my name is jason my age is 18'
print(s5.title())  # 打印出来的是操作之后的结果  # My Name Is Jason My Age Is 18
print(s5)  # my name is jason my age is 18
print(id(s5))  # 2250396500096
print(id(s5.title()))  # 2250400732224
# 列表示例
name_list = ['jason', 'kevin', 'tony', 'jack']
print(id(name_list))  # 2226294772232
print(name_list.remove('jason'))  # 打印出来的是None,但是remove操作还是执行了
print(name_list)  # ['kevin', 'tony', 'jack']
print(id(name_list))  # 2226294772232
# 可变类型与不可变类型
"""
可变类型 >>> 列表
    值改变 内存地址不变 修改的是原值   
不可变类型 >>> 整型 浮点型 字符串
    值改变 内存地址肯定变 其实是产生了新值
"""
name_list = ['jason', 'kevin', 'tony', 'jack']
print(id(name_list))  # 2240945345032
name_list.append(123)
print(id(name_list))  # 2240945345032

image

posted @ 2021-11-08 20:14  PyLy  阅读(91)  评论(0)    收藏  举报

念两句诗

入我相思门,知我相思苦,长相思兮长相忆,短相思兮无穷极。
【唐代】李白