fmz_day05内置函数,模块原理,常用的模块,第三方模块

utf-8是字符集,是unicode(万国码)优化

内置函数

l = [1,2,3,5,23,235,5]
print(sum(l))#求和
print(max(l))#求最大值
print(min(l))#求最小值
print(sum(l)/len(l))#求平均值
print(round(sum(l)/len(l),2))#round取几位小数,取2位小数
print(any([False,None,[]]))#list只要有一个为true,就返回true
print(all([True,True]))#list里面必须都为true,就为true
print(chr(65))#把阿斯克码转成对应的值,阿斯克码为了让计算机认识字母
print(ord('A'))#把对应的值转成阿斯克码
print(bin(10)) #10进制转2进制
print(int("1010",base=2))#2进制转10进制的
print(int("12",base=8))#8进制转10进制的
print(oct(10)) #10进制转8进制的
print(hex(10)) #10进制转16进制
print(int("a",base=16)) #16进制转10进制的
print(divmod(10,3)) #取商和余数的,商3余1
print(divmod(10,2)) #取商和余的
name = "abc"
def test():
age = 19
addr = "beijing"
print(locals())
print(globals())
test()
locals()#取当前函数里面的所有局部变量,转成字典,接口常用
globals()#取全局变量
usernames = ['admin','test','dev']
passwrods = [89,100,61]
passwrods2 = [123,456,789]

for u,p,z in zip(usernames,passwrods,passwrods2):
print(u,p,z)#解包

print(list(zip(usernames,passwrods,passwrods2)))#拿到多维数组
print(dict(zip(usernames,passwrods)))#用zip先一一对应好,然后转成字典
s = '346343477'
print(''.join(sorted(s)))#排序,转成字符串,不能直接转str(l),这样中括号也转成字符串

d = {'admin': 89, 'test': 100, 'dev': 61}

def x(l):
return l[1]
print(d.items())
print( sorted(d.items(),key=x,reverse=True) )#字典排序
print(
sorted(d.items(),key=lambda x:x[1],reverse=True)
)

test = lambda x:x*3#冒号前面是输入,冒号后面是返回值
print(test(3))
lambda匿名函数,只能定义一些简单的功能,用完一次就不用,不占内存,用这个函数

l = [1,2,3,4,43,634,63,4634,63,636,23]
l2 = [str(i) for i in l]
l3 = list(map(lambda x:str(x),l))#map 自动循环l,返回str()类型
l4 = list(map(str,l))#map就是自动循环调函数,保存到一个list里面
print(l4)#['1', '2', '3', '4', '43', '634', '63', '4634', '63', '636', '23']

def func(x):
x = str(x)
if len(x)==1:
return '00'+x
elif len(x)==2:
return '0'+x
return x
l2 = list(map(func,l)) #循环帮你调函数,保存结果到一个list里面


l = [1,2,3,4,43,634,63,4634,63,636,23]
def func(x):
return x % 2 == 0 #false
print( list(filter(func,l)) )#filter按照func()规则过滤l,是带过滤条件的循环
print( list(map(func,l)) )

导入模块原理和顺序

一个python文件就是一个模块,分为标准模块(python自带,直接import),第三方模块(需要自己安装),自己写的模块

import a,实际上就是从头到尾执行a python文件内容

import  python文件的实质就是把这个python文件里面的代码,从上到下执行了一遍

 

导入模块顺序:首先从当前目录下查找,再从python环境变量目录里面找

 

 

 环境变量怎么看:

import sys
print(sys.path)

导入其他目录的homework文件里的is_float这个函数怎么做:
import sys
print(sys.path)
sys.path.append(r'D:\牛测试\工具包\script\fmz')#将homewotk文件加到python环境变量中
右键新建python package 里面自动带有_init_.py 文件,命名为homework
import homework#可导入这个目录,目录名是homework,会自动执行_init_.py 文件
print(homework)#导入homework里面is_float这个函数

 

 

 

  sys.path.insert(0,r'D:\牛测试\工具包\script\fmz')#将homewotk文件加到python环境变量中,位置在最前面,提示找的速度

也可直接选中文件,右键-Mark Directory as-Sources Root 这个文件就加入到python环境变量里
如果代码放在服务器上运行,自动化用例,运行就python a.python,不用pycharm,要加上这行代码sys.path.insert(0,r'D:\牛测试\工具包\script\fmz')
import my_model
print(my_model.name)
my_model.my_func()

等同于下面这种引用my_model文件里的name,my_func()
from mymodel import name,my_func()
from mymodel import name as wangwen_name#name有重复,起个别名wangwen_name

常用模块

#json
#time、datetime
#os、sys
#random
#import os
# os.rename('m1.py','M1.py')#重命名,前旧后新
# os.remove()#删除文件,不能删除文件夹
# os.rmdir('test')#删除空文件夹的
# os.mkdir('cars/bmw') #创建文件夹,父目录不存在的时候不能创建
# os.makedirs('cars/bmw') #创建文件夹,如果父目录不存在,会创建父目录
# print(os.listdir() )#获取某个目录下的内容
# print(os.listdir(r'/Users/nhy') )#获取某个目录下的内容
# print(os.listdir(r'/Users/nhy/PycharmProjects/fmz-code/day4') )#获取某个目录下的内容,绝对路径
# print(os.listdir(r'../day4') )#获取某个目录下的内容,相对路径,一个点代表当前目录,两个点代表上级目录,../../day4
# print(os.sep) #当前系统的路径分隔符,就是代表/
#'xxx'+os.sep+'xx'
import os
# os.system()#执行操作系统命令的
# command = "ipconfig"
# result = os.system(command) #执行操作系统命令的,返回的是命令是否执行成功,返回0代表成功,不能拿到结果
# print(result)
# result = os.popen(command).read()#utf-8,可以拿到结果
# print(result)
# print(os.environ) #取系统的环境变量,返回字典
# print(os.name) #当前操作系统的名称
# print(os.getcwd())#获取当前的绝对路径
# os.chdir('../day05') #进入到某个目录
# print(os.getcwd())#获取当前的绝对路径
# os.walk()
# os.path.join()
# os.path.split()

# print(os.path.isfile('tools') )#判断该目录下是否有文件夹tools的
# print(os.path.isdir('m2.py'))#判断该目录下是否有文件m2.py的
# print(os.path.exists('m2.py')) #是否存在m2.py
# print(os.path.getsize('m2.py'))#获取文件大小,单位是字节
# print(os.path.abspath('m2.py')) #获取绝对路径
# print(os.path.abspath(__file__)) #获取当前文件的绝对路径
# p = r"/Users/nhy/PycharmProjects/fmz-code/day5"
# print(os.path.dirname(p)) #取父目录,取上一级目录的

# print(os.path.getctime('m2.py') )#获取文件创建时间
# print(os.path.getatime('m2.py') )#获取文件最后一次访问时间
# print(os.path.getmtime('m2.py')) #获取文件的修改时间
#这三个返回的都是时间戳

#/Users/nhy/PycharmProjects/fmz-code/day5/python常用模块.py

# print(os.path.join('e:','moives','sdyjq.mp4')) #拼接路径
# p = "e:/moives/sdyjq.mp4"
# print(os.path.split(p)) #分隔,文件名和文件名前路径的分隔

#已知在e:是.mp4结尾,要查找这个.mp4结尾
# os.walk()#获取某个目录下面的内容,不管有多少层,都循环一遍
# import os
# for cur_path,dirs,files in os.walk(r'/Users/nhy/PycharmProjects/fmz-code'):
# print(cur_path,dirs,files)
# cur_path#当前目录下
# dirs#当前目录下所有的文件夹
# files#当前目录下所有的文件

模糊查找文件

# import os
# def search_file(path,keyword):#path哪个路径,keyword关键字
# for cur_path,dirs,files in os.walk(path):
# for file_name in files: #xx.mp4
# if keyword in file_name:
# # if file_name.endswith(keyword):
# abs_path = os.path.join(cur_path,file_name)#拼接下
# print("查找到 %s,绝对路径是 %s" % (file_name,abs_path))
# search_file("/","mp4")#找根目录下,.mp4

random模块

import random
# print(random.randint(100000,999999))#产生6位验证码,整数
# print(random.uniform(1,99)) #随机小数
# a = '1223324'
# l = [2,23,52,35,235,23,523]
# print(random.choice(l)) #随机选择一个
# print( random.sample(a,4) ) #随机选择N个
# random.shuffle(l) #洗牌,这个函数没有返回值,他会改变原来list的值,顺序打乱
# print(l)

time模块

# import time
# #时间戳,从计算机诞生那一天到现在过了多少秒 1625650501
# #格式化好的时间 2021-07-07 17:35:01
# #2021515计算50天后时间是多少,用时间戳计算,现在的时间戳1625650501+60*60*24*50(50天的时间戳)就得出50天后的时间
# print(int(time.time())) #获取当前的时间戳
# print(time.strftime('%Y-%m-%d %H:%M:%S')) #获取当前格式化好的时间
# print(time.strftime('%Y/%m/%d %H%M%S')) #里面符号可以随意修改的
# #时间元组
# time_tuple = time.gmtime(1625651215)#gmtime取的是标准时区的时间
# #时间戳转时间元组,时间元组再转格式化好的时间
# time_tuple = time.localtime(1625651215)#localtime取的是当前时区的时间
# print(time.strftime('%Y-%m-%d %H:%M:%S',time_tuple))
# #格式化好的时间转时间元组,再转时间戳
# time_tuple = time.strptime('2026-02-27 01:05:23','%Y-%m-%d %H:%M:%S')
# print(int(time.mktime(time_tuple)))
# print(int(time.mktime(time_tuple) * 1000)) #转化成毫秒

#下面是封装好时间转化两个函数,直接拿来用即可
# def str_to_timestamp(s=None,format='%Y-%m-%d %H:%M:%S'):
# """
# :param s: 格式化好的时间,比如2021-05-16 17:06:32
# :param format: 时间格式%Y-%m-%d %H:%M:%S
# :return: 返回的是一个时间戳,如果不传s,默认返回当前时间戳
# """
# if s:
# time_tuple = time.strptime(s,format)
# return int(time.mktime(time_tuple))
# return int(time.time())

# def timestamp_to_str(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
# """
# :param timestamp: 时间戳
# :param format: 时间格式 %Y-%m-%d %H:%M:%S
# :return: 返回的是格式化好的时间,如果不传时间戳,那么返回当前的时间
# """
# if timestamp:
# time_tuple = time.localtime(timestamp)
# return time.strftime(format,time_tuple)
# return time.strftime(format)

 调试脚本:打断点调试,右键选小虫子debug,查找问题

 

posted @ 2021-05-21 06:11  wangwen88  阅读(90)  评论(0编辑  收藏  举报