1106day9:作业:列表和元组的区别、删除列表重复、单引号,双引号,三引号的区别、re的match和search区别、把字符串里面的数字换成大写的A、re 中 .* 与 .*? 有何区别

1.Python 有哪些数据类型?并举例

集合、字典、列表、元组、整型、浮点型、布尔型、字符串

2.列表和元组的区别?

列表属于可变数据类型,元组属于不可变数据类型
列表为[]、元组为()

3.请写出一段Python代码实现删除一个list里面的重复元素

方法一
list1=[1,2,3,4,1,3]
list1=list(set(list1))
print(list1)

方法二
list1=[1,2,3,4,1,3]
list2=[]
for i in list1:
    if i not in list2:
        list2.append(i)
print(list2)

方法三
a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a)  #用列表里的值作为字典的键
print(b)
a=list(b.keys())   #字典的键不能重复
print (a)
结果:
{1: None, 2: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 0: None}
[1, 2, 4, 5, 6, 7, 8, 9, 0]

方法四
数据库mysql的disting 去重

4.单引号,双引号,三引号的区别

单引号和双引号可用来表示一个字符串,三引号的作用是注释,可以换行注释

5.看代码写结果

def func(a,b=[]):
    b.append(a)
    return b

v1 = func(1)
print(v1)

v2 = func(2,[10,20])
print(v2)

v3 = func(3)
print(v3)

结果:
[1]
[10, 20, 2]
[1, 3]

6.请问上题中def func(a,b=[]): 这种写法有什么陷阱?

函数的第二个默认参数是一个list,当第一次执行的时候实例化了一个list,第三次执行还是用第一次执行的时候实例化的地址存储,
所以第一和第三次执行的结果就是相同的,想每次执行只输出当前传入参数 ,默认参数应该设置为None

7. re的match和search区别?

== match ==:如果字符串开头有0个或多个字符,符合正则表达式返回匹配的对象如果不符合返回none
== search ==:扫描整个字符串有匹配的返回匹配对象没有返回none

8. re 中 .* 与 .*? 有何区别

.*贪婪模式匹配一个或多个

.*?非贪婪模式匹配一个

9. re 匹配邮箱代码 格式: 51245546@qq.com |或者| kkbig@163.com

import re
str1="51245546@qq.com"
str2="kkbig@163.com"
result1=re.findall('[1-9]\d+@qq.com',str1)
result2=re.findall('[a-z]+@163.com',str2)
print(result1,result2)

结果:['51245546@qq.com'] ['kkbig@163.com']
l = [1,2]
j = ''.join(l)
print(type(j))
print(str(l[None,False]))
找值 find index

10.把字符串里面的数字换成大写的A

import re
str1 ='fsfgshhsj12344hhsshjds66666'
result = re.sub('\d+?','A',str1)
print(result)
结果:fsfgshhsjAAAAAhhsshjdsAAAAA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ゆきな

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值