1、
#函数是把一组代码合到一起,可以实现某种功能,需要再用到这个功能的话,直接调用这个函数就行了#函数、方法#my_open #fw = open(‘a.txt‘,‘a+‘) #fw.seek(0) # 函数名all_users = {} # 用来存放所有的用户名和密码# def read_users(file_name):# #形式参数,其实就是一个变量# print(‘file_name‘,file_name)# with open(file_name) as fr:# for line in fr:# up = line.strip().split(‘,‘) # 分隔账号密码# s_username = up[0] # 账号# s_pwd = up[1] # 密码# all_users[s_username] = s_pwd def reg(name,age,sex=‘男‘): #age、name必填参数,位置参数 #sex是默认值参数,不是必传 print(‘hello %s,age is %s,sex is %s‘%(name,age,sex))# reg(age=‘吴冰‘,name=38,sex=‘未知‘)# hello(‘孙燕姿‘)def post(*args): #可变参数,也叫参数组,也不是必填的,它接收到的是一个元组 #它把调用函数时穿进去的每一个参数都放到一个元组里 print(args)# post(‘001‘,‘denglu‘,‘http://www.baiudd.com‘,‘post‘,‘a=1‘)# post(‘001‘,‘denglu‘)# post(‘001‘,‘denglu‘,‘post‘)# post(‘001‘)# post()def other(name,age,country=‘china‘,*args): print(name) print(age) print(country) print(args)# other(‘wubing‘,‘999‘) d = {‘age‘: 18, ‘name‘: ‘吴冰‘}def kw(**kwargs): #关键字参数,接收的是一个字典,调用得用xx=11,也不是必填的 #传入字典调用的时候就得写**{‘age‘: 18, ‘name‘: ‘吴冰‘} print(kwargs)# kw() def other2(name,country=‘china‘,*args,**kwargs): #如果必填参数、默认值参数、可变参数和关键字参数你要一起用的话 #必须参照必填参数、默认值参数、可变参数和关键字参数的顺序接收,否则就会报错 print(name) print(country) print(args) print(kwargs)# other2(‘wubing‘,‘xxx‘)# other2(‘wubing‘,‘beijing‘,‘python‘,‘changping‘,user=‘niuhanyang‘) #关键字参数调用def write(filename,model,ending,user,os,money,other): print(filename) print(model) print(ending) print(user) print(os) print(money) print(other)# write(os=‘Windows‘,user=‘wubing‘,model=‘w‘,filename=‘a.txt‘,# ending=‘utf-8‘,money=9999,other=‘xxxxx‘# )# write(‘a.txt‘,‘w‘,money=99,os=‘windos‘)# write(os=‘windos‘,‘a.txt‘) #函数的返回值def plus(a,b): #1、函数碰到return,立即结束这个函数 #2、调用完函数之后,返回计算的结果 #3、函数可以没有返回值,如果没有返回值的话,默认给你返回None #如果这个函数的处理结果咱们需要在别的地方用到,那你就得给函数返回值 #如果函数return多个值的话,那么它会把多个值放到一个元组里面去 c = a+b return c score1 = 50score2 = 90def echo(): return score1,score2 #1、判断小数 # 1.92 # -1.988 def is_float(s): ‘‘‘ 这个函数是用来判断传入的是否为小数,包括正小数和负小数 :param s: 传入一个字符串 :return: True or False ‘‘‘ s = str(s) if s.count(‘.‘)==1:#判断小数点个数 sl = s.split(‘.‘)#按照小数点进行分割 left = sl[0]#小数点前面的 right = sl[1]#小数点后面的 if left.startswith(‘-‘) and left.count(‘-‘)==1 and right.isdigit(): lleft = left.split(‘-‘)[1]#按照-分割,然后取负号后面的数字 if lleft.isdigit(): return True else: return False elif left.isdigit() and right.isdigit(): #判断是否为正小数 return True else: return False#全局变量和局部变量# score3 = [1,2,3,4,5]# score3 = {"id":1}score3 = 100def my_open(): #在函数里面定义变量叫局部变量,它只能在函数里面用 #出了该函数外,就不能使用了 #在函数外面定义的变量,是全局变量,在函数内也可以使用 #如果想在函数里面修改全局变量的值,那么要先用global关键字声明 #要修改全局变量是int、string的话,必须得写global #如果是字典和list的话,要修改的话,不能加global fw = open(‘a.txt‘,‘a+‘) fw.seek(0) print(‘score3‘,score3) d={‘id‘:2} d[‘price‘]=99 def hh(): print(‘修改商品...‘)def cc(): print(‘添加商品...‘)def query(): print(‘查询商品。。。‘)menu= { ‘1‘:hh, ‘2‘:cc, ‘3‘:query}chioce = input(‘输入编号‘)menu[chioce]() 2、监控日志
import timewhile True: ips = [] #存放所有的ip地址 with open(‘access.log‘,‘a+‘) as fr: fr.seek(0) for line in fr: ip = line.split()[0] ips.append(ip) fr.seek(0) fr.truncate() print(‘ips,长度:‘,len(ips)) ip_set = set(ips)#存放的是去重之后的ip地址 print(‘去重之后的ip_set的长度:‘,len(ip_set)) for ip in ip_set: if ips.count(ip)>200: print(‘已经把%s加入黑名单‘%ip) # os.system(‘iptables -I INPUT 1 -p tcp -s %s -j DROP‘%ip) time.sleep(60)#set是集合,集合是天生去重 # d = {"id":1,"price":2}# l = [1,2,3,4,4,5,5]# s = set(l)#强制类型转换,把list转成集合# for i in s:# print(i) 3、三元运算符
a = 1b = 2#下面这个c = a if a>1 else b #和下面是一样的效果if a > 1: c = aelse: c = b s=[]nums = list(range(1,11))for i in nums: if i%2==0: s.append(i)print(s)ss = [i for i in nums if i%2==0]print(ss)#这两种是一样的 4、集合
#1、#集合也是一种数据类型,一个类似列表东西,# 它的特点是无序的,不重复的,也就是说集合中是没有重复的数据 #定义集合nums = [1,1,1,1,23,4,56]num_set = set(nums)#通过强制类型转换,来定义集合num_set1 = {1,2,3,4,5,6} list1 = {1, 2, 3, 4, 5, 6, 9}list2 = {2, 3, 4, 6, 1}list3 = {1, 2, 3}# print(list1.intersection(list2))# 取交集,也就是取list1和list2中都有的# print(list1 & list2)# 取交集# print(list1.union(list2)) # 取并集,也就是把list1和list2合并了,然后去除重复的# print(list1 | list2)# 取并集# print(list1.difference(list2)) #取差集 在list中存在,在list2中没有的# print(list1 - list2)# print(list3.issubset(list1))#判断list3是不是list1的子集# print(list1.issuperset(list3))#判断list1是不是list3的父集# print(list1.isdisjoint(list3))#判断list1和list3是否有交集# print(list1.symmetric_difference(list2))# #对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉# print(list1 ^ list2)list1.add(888)#添加元素list1.update([777,666,666])list1.remove(777)#删除元素,如果元素不存在会报错list1.pop()#删除一个随机的元素,并返回删除的元素list1.discard(‘dddd‘)#如果删除的元素存在,删除,不存在不做处理
时间: 2024-10-08 19:01:27