DAY3笔记

一、#简化代码方式

#1、字典取 key 和 value,效率高

#字典取 key 和 value,先转为了二维数组拆包成了key 和 value

#for k,v in d.items():

 #   print(k,v)

#2、判断某一元素在不在里面

#u = '123'

#if u not in d:

 #   print('不存在')

二、#切片   list 范围取值的一种方式

#names = ['张丹雪','敖国茹','敖洺豪','我自己']

#print(names[0:2])#切片取值,顾头不顾尾的

#print(names[::2])#--[strat;end:步长]

#print(names[::-1])#步长为负数时,从右往左

#print(names[-2:-3:-1])#负数定取值范围时,都要用负数

三、#判断回文字符串

#s="A man, a plan, a canal: Panama"

#while True:

#    s = input("请输入一个字符串:")

#    new_s = ""

#    for i in s:

#        if i.isalnum():

#    new_s = new_s.lower()

#    if new_s == new_s[::-1]:

#        print("这个字符串是回文字符串")

#    else:

#        print("这个字符串不是回文字符串")

四、#集合:天生去重,可以取交集,并集,差集

#交集

#list1=['我','自','己']

#list2=['我','你','他']

#print(list1.intersection(list2))

#print(list1&list2)

#并集,把两个集合合并到一起

#print(list1.union(list2))#并集

#print(list1 | list2)#取并集

#差集,在 a 里面存在,b 里面不存在的

#print(list1 - list2)

#print(list1.difference(list2))

#对称差集:a 里面有的,b 里面没有。b 里面没有,a 里面有的

#print(list1.symmetric_difference(list2))

#print(list1 ^ list2)

#判断 a 集合是不是 b 集合的一个子集

#print(list2.issubset(list1))

#集合是无序的

#添加元素

#list1.add("add")

#删除元素

#list1.remove("add")

#把一个集合加入到另一个集合里面

五、#1/打开文件

#2、读取、写入

#关闭

#f = open("users.txt",encoding="utf-8")

#ret = f.reda()#读取所有文件内容,返回的是一个字符串

#ret = f.readlines()#取所有文件内容,返回的是一个list,

#liat 每一个元素就是每一行

#ret = f.readline()#读取一行的数据

#f.close() #g关闭文件

#print(ret)

六、文件操作

        模式

            r

      读模式,不能写,打开不存在的文件会报错

            w

                写模式,不能读,他会清空以前的文件。文件不存在

                会新建一个文件

            a

                追加模式,只能写,不能读,文件不存在会新建

            r+

                读写模式

            w+

                写读模式

            a+

                追加读模式

        写新文件:

            w

        只是读取的话,那么就用r模块

        既想读,又想写,又不想清空以前的文件

        a+模式和seek(0)

七、json

import json

#s="""

{

    "code": 0,

 "msg": "操作成功",

    "token":"sdgdgsdgsds"

}

"""

# ret = json.loads(s) #json转字典的

# print(ret)

# print(type(ret))

d = {

    "code": 0,

    "msg": "操作成功",

    "token":"sdgdgsdgsds"

}

ret = json.dumps(d,ensure_ascii=False,indent=4)  #字典转json的

print(ret)

print(type(ret))

  • 产生随机数

#coding=utf-8

import random,string

print(random.randint(100000,999999)) #产生随机整数

print(random.choice(["a","b","c"])) #随机选择一个元素

print(random.sample("abcdefg",7)) #随机取N个元素,返回的是一个list

print(random.uniform(1,10))#取随机浮点数

l = [1,2,3,4,5,6,7,8,9]

random.shuffle(l) #洗牌,打乱顺序,传入的是一个list,他会改变list的值

print(l)

print(string.digits)

print(string.ascii_lowercase)

print(string.ascii_uppercase)

print(string.ascii_letters)

print(string.punctuation)

  • 给用户加密码

# import string,random,os

# f = open("stus.txt",encoding="utf-8")

# f2 = open("stus2.txt","w",encoding="utf-8")

#

# for line in f:

#     line = line.strip()

#     if line:

#         a = random.sample(string.digits,3) #[1,2,3]

#         b = random.sample(string.ascii_letters,3)#[a,b,c]

#         print("A",a)

#         print("b",b)

#         password = "".join(a+b)

#         print("password",password)

#         new_line = "%s,%s\n" %(line,password)

#         print("new_line",new_line)

#         f2.write(new_line)

# f.close()

# f2.close()

#

# os.remove("stus.txt")

# os.rename("stus2.txt","stus.txt")

 if line:

        p = random.sample(string.ascii_letters+string.digits,6)

        password = "".join(p)

        print("password",password)

        new_line = "%s,%s\n" %(line,password)

        print("new_line",new_line)

        f2.write(new_line)

f.close()

f2.close()

os.remove("stus.txt")

os.rename("stus2.txt","stus.txt")

  • 监控日志

import time

file_name = "access.log"

point = 0

while True:

    ips = {}

    f = open(file_name,encoding="utf-8")

    f.seek(point)

    for line in f:

        if line.strip():

            ip = line.split()[0]

            if ip not in ips: #第一次出现

                ips[ip] = 1

            else:

                ips[ip]+=1

    point = f.tell() #记录文件指针的位置

    f.close()

    for ip in ips:

        count = ips[ip]

        if count>=50:

            print("%s在攻击你"%ip)

    time.sleep(60)

import string,random,os

f = open("stus.txt",encoding="utf-8")

f2 = open("stus2.txt","w",encoding="utf-8")

for line in f:

    line = line.strip()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值