文章目录
-
-
-
- 数据类型的内置方法
- 练习:
- 字符串的内置方法(尽量掌握)
- 字符串需要了解的内置方法
- 列表的内置方法
- 字典的内置方法(掌握)
- 字典需要了解的方法
- 元组的内置方法
- 集合的内置方法
- 集合的关系运算
数据类型的内置方法
视频文件:快进,暂停,后退...
音频:快进,后退,暂停
表格:图形化,公式计算...
1. int() : 将纯整数数字字符串转换为整型类型,若包含其他非整型字符,会报错
eg:
print(int('123.123'))
print(int('helloworld'))
print(int('110'), type(int('110')))
实际应用:将用户输入的字符串转为整型
age = input('')
age = int(age)
'''方法的表现形式:方法名()'''
print(bin(13))
print(oct(13))
print(hex(13))
0b1101 二进制13
0o15 八进制13
0xd 十六进制13
print(int('0b1101', 2))
print(int('0o15', 8))
print(int('0xd', 16))
2. float() : 将纯浮点数字符串转为浮点数类型
eg:
print(float('11.12'), type(float('11.12')))
3. str() : 可以将其他任意类型转为字符串类型
eg:
print(str(123))
print(str(11.12))
print(str([1, 2, 3, 4]))
print(str({'username': 'ly', 'age': 18}))
print(str((1, 2, 3)))
print(str({1, 2, 3}))
print(str(True))
4. 字符串相关内置方法:(必会)
s = 'helloworldhelloworldadasdsadsadhelloworldhelloworldhelloworld'
4.1 支持索引取值
print(s[0])
print(s[4])
print(s[-1])
print(s[-4])
4.2 支持切片操作
s[1:4]
s[1:9:3]
4.3 计算字符串长度
len(s)
4.4 strip(): 移除字符串首尾指定的字符(默认移除空格)
ps:若括号内不指定字符,默认移除空格,若指定字符,则移除指定字符。
string = ' hello world '
string.strip()
string = '@@@hello world@@@'
string.strip('@')
string.lstrip('@')
string.rstrip('@')
实例:
username = input('请输入用户名:')
username = username.strip()
if username == 'mark':
print('ok')
else:
print('error')
4.5 split(): 切分字符串
ps:若括号内未指定字符,则默认按空格切分,若指定,则按指定字符切分。
source_data = 'mark|18|male'
print(source_data.split('|'))
print(source_data.split('|', maxsplit=1))
练习:
编写用户登录程序 温馨提示:
⽤户名与密码来源于字符串source_data = 'jason|123'
想办法从中拆分出⽤户名和密码用于后续账户信息⽐对
1.只允许三次失败机会
2.登录成功后进⼊入内层循环,用户输⼊任何指令利⽤格式化输出 打印正在执行该⽤户指令即可,直到⽤户输⼊字⺟q退出内层循环
实现代码:
source_data = 'mark|123'
count = 0
while count<3:
username = input('请输入用户名:').strip()
password = input('请输入密码:').strip()
real_username, real_password = source_data.split('|')
if username == real_username and password == real_password:
print('登录成功')
while True:
cmd = input('请输入你的指令:').strip()
print('正在执行你的指令:%s' % cmd)
if cmd == 'q':
break
else:
print('用户名或者密码错误')
count += 1
字符串的内置方法(尽量掌握)
string = 'abeDK123helloWORLD'
1. 把字符串转为全大写
string.upper()
2. 把字符串转为全小写
string.lower()
3. 判断是否以指定字符开头,返回值为布尔值
string.startswith('a')
string.startswith('ae')
4. 判断是否以指定字符结尾,返回值为布尔值
string.endswith('y')
string.endswith('LD')
old_code = 'ENprs'
new_code = input('请输入验证码:').strip()
if old_code.lower() == new_code.lower():
print('验证码正确')
else:
print('验证码错误')
5. format的使用
5.1 方式一:
s = 'my name is {}, my age is {}'
print(s.format('mark', 18))
5.2 方式二:
s = '{0} my name is {1}, my age is {0}, {1}, {1}, {0}, {2}'
print(s.format('mark', 18, 'male', ))
5.3 方式三:
s = ' my name is {name}, my age is {age}, {name}, {name}, {age}'
print(s.format(name='mark', age=18))
6. join() :从可迭代对象中取出多个字符串,然后按照指定的分隔符进行拼接,拼接的结果为字符串
eg:
name_list = ['hello', 'world', '123', 'abc']
s1 = name_list[0]
s2 = name_list[1]
s3 = name_list[2]
s4 = name_list[3]
print(s1 + ',' + s2 + ',' + s3 + ',' + s4 )
print(','.join(name_list))
7. replace() :用新字符替换字符串中的旧字符。
语法:replace('被替代内容','替代内容',修改的个数)
示例1:
s = 'my name is mark mark mark'
s1 = s.replace('mark', 'tom', 1))
print(s1)
示例2:
m = 'hello'
n = 'world'
s = m + n
m = s.replace('hello', '')
n = s.replace('world', '')
print(m, n)
8. isdigit(): 判断字符串是否是纯数字组成,结果返回true或false。
eg:
num = '12345abc'
print(num.isdigit())
实例应用:
age = input('请输入你的年龄:').strip()
if age.isdigit():
print('全是数字')
else:
print('不全是数字')
字符串需要了解的内置方法
s = 'helloworldworldworld'
1. find(sub, start, end):
功能:指定范围查找子字符串的起始索引,查找成功返回第一个匹配的位置索引,找不到返回-1;若未指定start、end参数,则查找整个字符串。
eg:
print(s.find('hw'))
print(s.find('w'))
print(s.find('world'))
2. index(sub, start, end)
功能:和find一样,但是不同的是,若找不到会直接报错。
eg:
print(s.index('hw'))
print(s.index('w'))
3. count(): 统计一个字符或字符串在原字符串中出现的次数。
eg:
print(s.count('l'))
print(s.count('world'))
3. center,ljust,rjust,zfill
eg:
name='topic'
name.center(30,'-')
name.ljust(30,'*')
name.rjust(30,'*')
name.zfill(50)
4. expandtabs:
eg:
name = 'tony\thello'
s = name.expandtabs(1)
print(s)
5. captalize:首字母大写
eg:
message = 'hello world'
print(message.capitalize())
6. swapcase:大小写翻转
eg:
message1 = 'Hi girl, I want make friends with you!'
print(message1.swapcase())
7. title:每个单词的首字母大写
eg:
msg = 'dear my friend i miss you very much'
print(msg.title())
8. isdecimal,isnumeric,isalnum,isalpha,isidentifier,islower,isupper,isspace,istitle
列表的内置方法
关键字:list
1. 类型转换
print(list(123))
print(list(1.11))
print(list('hello'))
print(list([1, 2, 3 ]))
print(list({'username': 'ly', 'age': 18}))
print(list((1, 2, 3)))
print(list({1, 2, 3, 4}))
2. 修改
class_list = ['math', 'english', 'C']
class_list[0] = 'python'
class_list[2] = 'physical'
print(class_list)
3. 添加
3.1 append(): 列表末尾添加
class_list = ['math', 'english', 'C']
class_list.append(123)
class_list.append([1, 2, 3, 4])
print(class_list)
3.2 insert(): 把括号中的元素当成一个整体添加到索引位置,参数一为索引
class_list = ['math', 'english', 'C']
class_list.insert(0, 'haha')
class_list.insert(2, 'haha')
class_list.insert(6, 'haha')
print(class_list)
3.3 extend(): 合并两个列表
class_list = ['math', 'english', 'C']
class_list.extend([1, 2, 3 ,4])
print(class_list)
内部原理:
class_list = ['math', 'english', 'C']
l = [1, 2, 3, 4]
for i in l:
class_list.append(i)
print(class_list)
4. 删除:
4.1 del关键字
class_list = ['math', 'english', 'C']
del class_list[0]
print(class_list)
4.2 remove(): 括号内指出要删除哪个元素,没有返回值
class_list = ['math', 'english', 'C']
class_list.remove('C')
print(class_list)
print(name_list.remove('C'))
4.3 pop():默认删除列表最后一个元素,并将删除的值返回,括号内可以通过加索引值来指定删除元素
class_list = ['math', 'english', 'C','physical']
class_list.pop(2)
class_list.pop()
print(class_list)
print(class_list.pop(1))
5. reverse(): 反转列表中元素顺序
l1 = [11, 22, 33, 44, 55, 66]
l1.reverse()
print(l1)
6. sort(): 排序
注意:列表排序,必须保持列表中元素类型一致,否则无法排序。
- 默认升序排序:
l1 = [11, 22, 33, 44, 77, 55, 66]
l1.sort()
print(l1)
- reverse参数:reverse=True 降序排序
l1 = [11, 22, 33, 44, 77, 55, 66]
l1.sort(reverse=True)
print(l1)
7. 列表比较:逐个元素比较,直到比较出结果
l1 = [999, 888]
l2 = [111, 222, 333, 444, 555]
print(l1 > l2)
8. 列表切片:顾头不顾尾,步长
l = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l[1])
print(l[1:5])
print(l[1:])
print(l[:5])
print(l[1:8:2])
print(l[-1])
print(l[-8:-1:2])
print(l[::-1])
print(l[:])
字典的内置方法(掌握)
dic = {
'name': 'xxx',
'age': 18,
'hobbies': ['play game', 'basketball']
}
1. 取值:
1.1 方式一:字典变量名['key值']
key值不存在则报错
1.2 方式二:字典变量名.get('key值',默认值)
key值不存在返回None,并且可以设置默认值
2. 修改值:字典变量名['key值'] = value值
- key值存在,直接进行修改操作
- k值不存在,会往字典中添加一个key:value
3. len():求长度,若参数为列表的话返回值为元素个数,字典的话返回值为key:value键值对的个数
4. 成员运算 in、not in
- in : 判断某个值是字典中的key
- not in :判断某个值不是字典的key
eg:
print('name' in dic)
print('name' not in dic)
5. 删除
5.1 del关键字
del dic['name']
del dic['hobbies']
5.2 pop()
dic.pop('name')
dic.pop('hobbies')
6. 字典三剑客
6.1 keys(): 获取字典中的所有key,以列表形式存储
print(dic.keys())
6.2 values(): 获取字典中所有的value,以列表形式存储
print(dic.values())
6.3 items(): 获取字典中所有的键值对,以列表套元组形式存储
print(dic.items())
7. 循环字典
注意:循环字典循环的是字典的key
for i in dic:
print(i)
print(dic[i])
print(dic.get(i))
for k, v in dic.items():
print(k, v)
for i in dic.keys():
print(i)
for j in dic.values():
print(j)
字典需要了解的方法
dic = {
'name': 'xxx',
'age': 18,
'hobbies': ['play game', 'basketball']
}
1. pop('key'): 删除指定的key对应的键值对,并返回值
2. popitem(): 随机删除一组键值对,并将删除的键值放到元组内返回
3. update(): 用新字典更新旧字典,有则修改,无则添加
dic1 = {
'name':'aaa'
}
dic1.update({'name': 'mark', 'pwd': 123})
4. fromkeys()
dic1 = dict.fromkeys(['k1', 'k2', 'k3'], [])
print(dic1)
dic1['k1'] = []
dic1['k1'].append(666)
5. setdefault():
- key不存在则新增键值对,并将新增的value返回
- key存在则不做任何修改,并返回已存在key对应的value值
dic.setdefault('name1111', 666))
元组的内置方法
1.类型转换
关键字:tuple
tuple(111)
tuple(1.11)
tuple('helloworld')
总结:支持for循环的数据类型都可以转为元组
t1 = (111)
t2 = (1.22)
t3 = ('helloworld')
t4 = ('a', 'b')
t5 = ('c', )
'''当元组中只有一个元素的时候,也要加逗号'''
print(type(t1))
print(type(t2))
print(type(t3))
print(type(t4))
print(type(t5))
2. 长度:len(tuple1)
t1 = (111, 222, [444, 555, 666])
t1[2].append(777)
print(t1)
集合的内置方法
集合类型既没有索引也没有key与值对应,所以无法取得单个的值,而且对于集合来说,主要用于去重与关系元素,根本没有取出单个指定值这种需求
d = {}
s = set()
ll = [11, 22, 22, 22, 33, 33, 44, 44, 55, 66, 77, 77, 88]
一:去重成功,但未保持原来顺序
ss = set(ll)
l1 = list(ss)
print(l1)
二:既去重,又保持原来顺序
new_list = []
for i in ll:
if i not in new_list:
new_list.append(i)
print(new_list)
集合的关系运算
list1 = {"123", "456", "789", "abc"}
list2 = {"456", "abc", "ABC", "QWE"}
print(list1 | list2)
print(list1 & list2)
print(list1 - list2)
print(list2 - list1)
print(list1 ^ list2)
print(list1 > list2)
print(list1 < lists2)
{'789', 'QWE', 'ABC', 'abc', '456', '123'}
{'abc', '456'}
{'789', '123'}
{'QWE', 'ABC'}
{'789', 'QWE', 'ABC', '123'}
False
False