Python基础(4)——模块、内置函数、匿名函数、常用模块、OS模块、time模块

目录:

一、模块

  1、引用环境变量中模块

  2、引用其他文件中的模块

  3、引用第三方模块

二、内置函数

三、匿名函数

四、常用模块

五、OS模块

六、time模块

 

正文:

一、模块

一个py文件就是一个模块,import 一个模块 实际上就是把一个py文件从头到尾执行一遍

执行时,查找模块顺序:首先从当前目录下找,其次从环境变量目录找

 

1、引用环境变量中模块

sys.path环境变量目录(list)

import sys
print(sys.path)

 

2、引用其他文件中的模块:

方法1:将py文件加入环境变量目录下则可import

 

import ppp

 方法2:将目录加入环境变量list

仅本次生效

本次py文件位置F:\python代码\python_workspace\day5,想要调用day4文件夹check_float.py中is_float方法判断输入是否为小数

import sys
sys.path.append(r'F:\python代码\python_workspace\day4')
sys.path.insert(0,r'F:\python代码\python_workspace\day4')  #均可,指定插入到首个
import check_float
print(check_float.is_float('--'))
 

 

 

 备注:

1)import其他模块会标红,解决办法:右键----Mark Directory as----Resource Root

 

 

 2)被引用模块部分测试代码不希望被执行

在测试代码前加if __name__ == '__main__':   这个模块被导入时不会执行if下面的代码

被引用模块a:

def execute_sql(sql):
    print('执行sql',sql)

if __name__ == '__main__':
    execute_sql('select')
    execute_sql('delete')
    execute_sql('update')

执行文件b:

import a
a.execute_sql('aaaaaa')

 if __name__ == '__main__':  执行本模块a.py时__main__的值为__name__ 可以执行成功;

当被b.py文件import时__main__的值为 

3、安装下载第三方模块

 1)使用命令安装  pip install xxx

常见问题:

    a.命令不存在:安装python时一定要加入环境变量目录

          C:/python/                  #自己的安装目录

          C:/python/Scripts       #安装目录下的scripts

    b.perl

      where pip  --> pip_hhh

    c.修改pip源    

import os,sys,platform
ini="""[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
"""
os_version=platform.platform()
if 'Windows' in os_version:
    os_flag=False
    file_name='pip.ini'
else:
    os_flag=True
    file_name='pip.conf'
if os_flag==True:
    pippath=os.environ["HOME"]+os.sep+".pip"+os.sep
else:
    pippath=os.environ["USERPROFILE"]+os.sep+"pip"+os.sep
if not os.path.exists(pippath):
    os.mkdir(pippath)
with open(pippath+file_name,"w") as f:
    f.write(ini)

2)手工安装

例如安装pymysql  到https://pypi.org/project/PyMySQL/#files  官网下载

 whl文件安装

pip install PyMySQL-0.9.3-py2.py3-none-any.whl 

.tar.gz文件安装

直接解压,到文件所在目录python setup.py install

 3)外部模块安装

可从百度搜索有的第三方模块即可直接使用

例如安装xpinyin  安装成功后可使用第三方模块中的方法

import xpinyin
p = xpinyin.Pinyin()
print(p.get_pinyin('韩梅梅'))

 

二、内置函数

1、all()    any()

all([1,2,3,4]) 判断可迭代的对象里面的值是否都为真

any([0,False,[],''])#一个为真即为真,全部为假则为假

#判断可迭代的对象里面的值是否都为真
print(all([1,2,3,4]))
print(all([1,2,3,4,False]))
a=b=c=False
if (all([a,b,c])):
    print("")
#一个为真即为真,全部为假则为假
print(any([0,False,[],'']))
print(any([1,2,3,4,False]))

 2、max()    min()    round()

max 返回最大值

min 返回最小值

round(数值,保留几位小数)

print(max([1,2,3,4]))
print(min([1,2,3,4]))
print(round(11.11988,2))#保留几位小数

 3、dir()

打印传入对象的可调用方法(可在查找可调用的方法时使用)

a='1'
print(dir(a))#打印传入对象的可调用方法

 4、bin()  chr()  ord() hex() oct ()

print(bin(10)) #10进制转2进制
print(chr(10))#打印数字对应的ascii   (回车)
print(ord('b'))#打印字符串对应的ascii
print(hex(111))#数字-->8进制
print(oct(111))#数字-->16进制

 

 5、exec()

动态执行代码

s='''
for i in range(10):
    print(i)
'''
exec(s)#用来执行python代码

 6、eval()

用来动态执行python代码,简单的,运算等简单代码

# # eval()  用来动态执行python代码,简单的,运算等简单代码
result = eval('[1,2,3]')
print(result)
result = eval('1+2')
print(result)

 7、filter()  过滤 

把后面迭代对象根据前边的方法筛选

#会自动循环你传给他的list,然后把list里面每一个元素传给指定函数
# 如果函数结果返回True,那么保留这个元素

def oushu(number):
    if number%2==0:
        return True
l=range(1,11)
l2=[]
for i in l:
    if oushu(i):
        l2.append(i)
print(l2)
#使用filter
l3=list(filter(oushu,l)) #(fuc_name,list)将list传入function自动循环true留下
print(l3)

 8、map()

#会自动循环你传给他的list,然后把list里面每一个元素传给指定函数,
#把函数返回的结果保留下来

l4=list(map(oushu,l))
print(l4)

result = list(map(str,range(1,101)))
print(result)

 9、locals()   globals()

locals()#获取当前函数里面的局部变量
globals()#获取当前文件里面的全局变量

def test():
    a=1
    b=2
    #返回参数为字典
    print(locals())#获取当前函数里面的局部变量
    print(globals())#获取当前文件里面的全局变量
test()

 10、zip()

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

a=['fd','hzy','ds']
b=['1224','456','789']
c=['1','2','3']
for username,password,c in zip(a,b,c):
    print(username,password,c)
for username in zip(a,b,c):
    print(username)
# [
#     ['fd','1234','1']
#     ['hzy','456','2']
#     [...]
# ]

 

11、 exit() quit()

退出程序

a=input('输入0退出')
while True:
    if a=='0':
        exit('结束')
    else:
        a = input('输入0退出')

 

 

三、匿名函数

 lambda  匿名函数(定义简单功能)  入参:返回值

a = lambda x:x+1  #匿名函数(定义简单功能)  入参:返回值
b = lambda  x,y:x+y
result = [a(1),b(1,2)]
print(result)

c=list(filter(str,[1,2,3,4,5]))
d=list(filter(lambda x:str(x),[1,2,3,4,5]))
print(c)
print(d)

 

四、常用模块

1、random模块

random.randint()
random.uniform()
random.choice()
random.sample()

import os,random,sys,time,string

print(random.randint(1,10))#[1,10]包含1,10
print(random.uniform(1,10))#产生随机小数
print(random.choice(string.ascii_lowercase))#随机选择一个元素
print(random.sample(string.ascii_lowercase,2))#随机取多个元素(注意数组越界问题)
l=[random.choice(string.digits) for i in range(6)]#有可能重复
l2=random.sample(string.digits,6)#不会重复
print(''.join(l))
print(''.join(l2))

 2、 random.shuffle

洗牌,打乱顺序

l=[1,2,3,4,5,6,7,8]
random.shuffle(l)
print('打乱之后',l)

3、sorted() 排序

s='48548875584234'
result=sorted(s)
result2=sorted(s,reverse=True)
print(result)
print(result2)

 

 练习:

根据字典中分数进行排序
原理:将字典转为二维数组然后进行排序

d={
    'fd':100,
    'ds':93,
    'lhy':88,
    'hzy':35
}
vs =sorted(d.values(),reverse=True)
for v in vs:
    for key,value in d.items():
        if v==value:
            print(key,value)

#[('fd', 100), ('ds', 93), ('lhy', 88), ('hzy', 35)]
print(d.items()) #转为2维数组
result=sorted(d.items(),key=lambda x:x[1],reverse=True) #根据分数排序倒序
print(result)
result=sorted(d.items(),key=lambda x:x[0],reverse=False) #根据名字排序
print(result)

 

 

 

 

五、OS模块

1、创建、删除文件

# mkdir与makedirs区别:父目录不存在报错。makedirs父目录不存,创建父目录
os.mkdir('python') #当前目录
os.mkdir('F:\python网课\python代码\python_workspace\java') #绝对路径
os.makedirs('java/day1')#父目录不存,创建父目录
os.makedirs('java/day2')

os.remove() #删除文件,不能删除文件夹
os.rmdir('python')#删除空文件夹
os.rename('java','java1') #重命名,获取当前所在的目录
print(os.getcwd()) #获取当前所在的目录

os.chdir('F:\python网课\python代码\python_workspace\java')#进入到某个目录
os.mkdir('java2')
print(os.getcwd()) #F:\python网课\python代码\python_workspace\java
print(os.environ) #获取系统环境变量里面的配置

 

 

 2、路径相关

print(os.path.sep)#获取当前路径分隔符
print(os.path.isfile('a.py'))#是否为文件
print(os.path.isdir('a.py'))#是否为文件夹
print(os.path.exists('a.py'))#文件/文件夹是否存在
print(os.path.getsize('a.py'))#获取大小
print(os.path.getctime('a.py'))#创建时间
print(os.path.getctime('a.py'))#修改时间
print(os.path.getatime('a.py'))#最后一次访问时间

 

 

 3、

os.path.split  分隔路径和文件名的

os.path.join  拼接路径 

os.path.abspath()  把相对路径转化为绝对路径 

#os.path.split分隔路径和文件名的
print(os.path.split('F:\python代码\python_workspace\day5\a.py'))
p='e:'+os.path.sep+'movies'+os.path.sep+'欧美大片'
print(p)
#拼接路径 os.path.join
print(os.path.join('e:','movies','欧美大片'))

#把相对路径转化为绝对路径 os.path.abspath()
print(os.path.abspath(r'a.py'))

print(os.path.dirname(__file__))#取父目录

 

 

 练习:

import os
base_path=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sql_file=os.path.join(base_path,'sqls','create.sql')
print(sql_file)

 

 

 4、os.walk()

循环找到该目录下所有文件和文件夹

for cur_path,dirs,files in os.walk(r'F:\python代码\python_workspace\day5'):
    print(cur_path,dirs,files)
# 例:找到目录下所有MP4文件
for cur_path,dirs,files in os.walk(r'F:\python\学习视频'):
    print('在%s目录下查找中'%cur_path)
    for file in files:
        if file.endswith('.mp4') or file.endswith('.avi')or file.endswith('.vep'):
            print('发现小电影在%s目录下'%cur_path)
            break

 

 

 

六、time模块

#时间戳 一串数字 #从unix元年

#格式化好的时间  2020-08-29  17:24:38

# 获取当前时间戳
print(time.time())
print(time.strftime('%Y-%m-%d %H:%M:%S'))#当前格式化好的时间

seven = int(time.time()+60*60*24*7)
print(seven)

 

 

#时间戳<--转化-->格式化时间

str_time = '2020-08-29 17:32:32'

time_stamp = 1599298352

#时间戳转化为格式化时间
lt=time.localtime(time_stamp)#当前时区的时间
dt=time.gmtime(time_stamp)#标准时区的时间
print(lt)
print(dt)
print(time.strftime('%Y-%m-%d %H:%M:%S',lt))
#格式化时间转化为时间戳
time_tuple= time.strptime(str_time,'%Y-%m-%d %H:%M:%S')
time_stamp_nwo = time.mktime(time_tuple)
print(time_stamp_nwo)

 

 

 

mkdir
posted @ 2020-09-03 18:10  白羽归楼  阅读(342)  评论(0)    收藏  举报