码迷,mamicode.com
首页 > 其他好文 > 详细

函数、模块

时间:2018-07-05 00:33:14      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:bytes   sep   odi   筛选   zip函数   手动安装   tor   bcd   声明   

 

一.函数

1.变量

#变量名全部为大写时,就是一个常量
FILE_NAME=‘gdgd‘ #常量的值是不会变的

name=‘小黑‘   #全局变量
# 局部变量
# 在函数里边定义的变量都是局部变量,出了函数之后就不能用了
# 全局变量
# 在文件最上边定义的这个变量,就是全局变量

def hh():
global name #此处为局部变量。用global声明一下,可以将全局变量修改,一般不用,影响内存;字典和list这种可变的变量,不需要global来声明,就可以直接改了
name=‘小白‘
print(name)
hh()    #结果是小白
print(name) #结果是小白
******************************************************************************
2.函数传参
# 可变参数(参数组)   参数非必填,参数个数没有限制,最后的结果存放在元组当中
def send_mail(*email):
print(email)
send_mail(‘fsfsfs‘)
send_mail(‘fdfdfd‘,‘dsdssds‘,‘rrerer‘)
send_mail()

def run(name,age=28,*args):
print(name)
print(age)   
print(‘args..‘,args)
run(‘aa‘,25,‘北京‘,‘fafsa‘)
结果:
aa
25
args..北京 fafsa

def st():
name=‘abc‘
sex=‘男‘
age=18
return name,age,sex #return多个值时,将所有返回值放到一个数组中
res=st()
print(res) (‘abc’,‘男’,18)

# 关键字参数
def my(**info): #非必填,没有限制参数个数,将结果放到一个字典里边
print(info)
my(name=‘fadada‘,sex=‘男‘,age=18)
my()
my(type=‘car‘,a=1,c=1)


#位置参数(必填参数),默认值参数(不必填),可变参数(不必填的,不限制参数个数)
def op_db(ip,port,db,user,passwd,sql):
print(‘连接mysql操作数据库‘)
pass

op_db(‘192.1681.12‘,‘xxx‘,3306,‘sdf‘,‘sdf‘,‘sdf‘)
op_db(‘192.169.1.12‘,3306,user=‘root‘,passwd=‘12345‘,db=‘jxz‘,sql=‘select‘)

3.递归:就是函数自己调用自己,类似于循环,但是递归有次数限制,最大递归次数为999次,超过了这个限制就会报错,所有用递归的话,必须要有一个明确的结束条件


4.列表推导式,列表生成式
res=[12,45,88,2,3,6]
res=[str(i).zfill(2) for i in res] 对res列表进行遍历,同时对遍历的结果进行处理

5.内置函数:
       print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真        
        print(any([0,1,2,3,4]))#判断可迭代的对象里面的值是否有一个为真
        print(bin(10))#十进制转二进制
        print(bool(‘s‘))#把一个对象转换成布尔类型
        print(bytearray(‘abcde‘,encoding=‘utf-8‘))#把字符串变成一个可修改的bytes
        print(callable(‘aa‘))#判断传入的对象是否可调用
        print(chr(10))#打印数字对应的ascii
        print(ord(‘b‘))#打印字符串对应的ascii码
        print(dict(a=1,b=2))#转换字典
        print(dir(1))#打印传入对象的可调用方法
        print(eval(‘[]‘))#执行python代码,只能执行简单的,定义数据类型和运算
        print(exec(‘def a():pass‘))#执行python代码
        print(filter(lambda x:x>5,[12,3,12,2,1,2,35]))#把后面的迭代对象根据前面的方法筛选
        print(map(lambda x:x>5,[1,2,3,4,5,6]))
        print(frozenset({1,2,3,3}))#定义一个不可修改的集合
        print(globals())#返回程序内所有的变量,返回的是一个字典
        print(locals())#返回局部变量
        print(hash(‘aaa‘))#把一个字符串哈希成一个数字
        print(hex(111))#数字转成16进制
        print(max(111,12))#取最大值
        print(oct(111))#把数字转换成8进制
        print(round(11.11,2))#取几位小数
        print(sorted([2,31,34,6,1,23,4]))#排序
        dic={1:2,3:4,5:6,7:8}
        print(sorted(dic.items()))#按照字典的key排序
        print(sorted(dic.items(),key=lambda x:x[1]))#按照字典的value排序
        __import__(‘decorator‘)#导入一个模块
 
 rang(1,1000,2) 从1到1000,步长为2

stus=[‘放到‘,‘方式‘,‘如风达‘,‘发顺丰‘]
stus=[‘发顺丰‘,‘苟富贵‘,‘第三方‘,‘苟富贵‘]
for index,s in enumerate(stus):
print(index,s) #同时循环取列表中的内容和下标,同时枚举函数不仅仅适用于list,字符串,数字,汉字都可以

sex=[‘男‘,‘男‘,‘女‘,‘女‘]
age=[1,2,3,6]
for name,se,ag in zip(stus,sex,age): #zip函数将多个list压缩到一起,list个数不限,当list长度不一时,以短的为准
print(name,se,ag)

二、模块

1.模块的概念
 一个python文件就是一个模块
(1).标准模块
python自带的模块就是标准模块,也就是可以直接import进来的就是标准模块
(2).第三方模块
别人写好的模块,安装完成后就能用
    安装方式:
pip源安装
pip install pymysql
pip命令不存在的,把python安装目录下的scrips加入环境变量
python2 -m pip install xxxx
python3 -m pip install xxxx
手动安装
.whl
1、先从python官网上下载安装文件
2、pip install c://xxx/xxxx/xxx.whl
.tar.gz
1、先从python官网上下载安装文件
2、解压
3、在命令行里面进入到解压之后的文件夹中
4、python setup.py install

(3).自己写的python文件

2.常用模块

os模块
 import os
    print(os.getcwd())#取当前工作目录
    os.chmod("/usr/local",7)#给文件/目录加权限
    print(os.chdir("../"))#更改当前目录
    print(os.curdir)#当前目录
    print(os.pardir)#父目录
    print(os.makedirs("/usr/hehe/hehe1"))#递归创建文件夹,父目录不存在时创建父目录
    print(os.removedirs("/usr/hehe/hehe1"))#递归删除空目录
    print(os.mkdir("test1"))#创建文件夹,父目录不存在时,会报错
    print(os.rmdir("test1"))#删除指定的文件夹
    print(os.remove("test"))#删除文件
    print(os.listdir(‘.‘))#列出一个目录下的所有文件
    os.rename("test","test1")#重命名
    print(os.stat("len_os.py"))#获取文件信息
    print(os.sep)#当前操作系统的路径分隔符
    print(os.linesep)#当前操作系统的换行符
    print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
    print(os.environ)#当前系统的环境变量
    print(os.name)#当前系统名称
    print(os.path.abspath(__file__))#获取绝对路径
    print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名
    print(os.path.dirname("/usr/local"))#获取父目录
    print(os.path.basename("/usr/local"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
    print(os.path.exists("/usr/local"))#目录/文件是否存在
    print(os.path.isabs("."))#判断是否是绝对路径
    print(os.path.isfile("/usr/local"))#判断是否是一个文件
    print(os.path.isdir("/usr/local"))#是否是一个路径
    print(os.path.join("/root",‘hehe‘,‘a.sql‘))#拼接成一个路径,自动识别系统,写出正确的路径分隔符
    print(os.path.getatime("len_os.py"))#输出最近访问时间
    print(os.path.getmtime("len_os.py"))#输出最近访问时间
 os.path.getsize(‘E:\\jch\\tett0\\a.txt‘)  #获取文件大小的

random模块
  import random,string    
    print(random.random())#随机浮点数,默认取0-1,不能指定范围
    print(random.randint(1,20))#随机整数
    print(random.randrange(1,20))#随机产生一个range
    print(random.choice(‘x23serw4‘))#随机取一个元素
    print(random.sample(‘hello‘,2))#从序列中随机取几个元素
    print(random.uniform(1,9))#随机取浮点数,可以指定范围
    [1,2,3,4,6,7]
    random.shuffle(x)#洗牌,打乱顺序,会改变原list的值
    print(x)
    print(string.ascii_letters+string.digits)#所有的数字和字母
time模块

      import datetime,time        
       print(time.timezone)#和标准时间相差的时间,单位是s
       print(time.time())#获取当前时间戳
       print(time.sleep(1))#休息几s
       print(time.gmtime())#把时间戳转换成时间元组,如果不传的话,默认取标准时区的时间戳
       print(time.localtime())#把时间戳转换成时间元组,如果不传的话,默认取当前时区的时间戳
       print(time.mktime(time.localtime()))#把时间元组转换成时间戳
       print(time.strftime("%y%m%d %H%M%S"))#将时间元组转换成格式化输出的字符串
       print(time.strptime("20160204 191919","%Y%m%d %H%M%S"))#将格式化的时间转换成时间元组
       print(time.struct_time)#时间元组
       print(time.asctime())#时间元转换成格式化时间
       print(time.ctime())#时间戳转换成格式化时间
       print(datetime.datetime.now())#当然时间格式化输出
       print(datetime.datetime.now()+datetime.timedelta(3))#3天后的时间
       print(datetime.datetime.now()+datetime.timedelta(-3))#3天前的时间
 
时间戳:从liunx元年到现在过的秒数
格式化的时间如:2018-01-07
时间元组:time.struct_time(tm_year=2018, tm_mon=7, tm_mday=4, tm_hour=14, tm_min=23, tm_sec=53, tm_wday=2, tm_yday=185, tm_isdst=0)   时间戳和格式化的时间不能直接互转,必须通过时间元组为中介来互转
 
时间戳和格式化好的时间互转,方法固定,以后可以直接拿来用
# 1.时间戳转格式话好的时间
# 1.首先要把时间戳转化为时间元组
# 2.再把时间元组转化为格式好的时间
def timestampToStr(timestamp=None,format=‘%Y-%m-%d %H:%M:%S‘):
if timestamp:
time_tuple = time.localtime(timestamp) # 转成时间元组
return time.strftime(format,time_tuple) #把时间元组转化为格式话好的时间
return time.strftime(format)
res = timestampToStr(2234123120,‘%Y%m%d‘)
print(timestampToStr())

# 2.格式化好的时间,转时间戳
# 1.先把格式化好的时间,转化成时间元组
# 2.再把时间元组转化成时间戳
def strToTimestamp(format_time=None,format=‘%Y%m%d%H%M%S‘):
if format_time:
time_tuple = time.strptime(format_time, format) #把格式化好的时间,转化成时间元组
return int(time.mktime(time_tuple))
return int(time.time())


函数、模块

标签:bytes   sep   odi   筛选   zip函数   手动安装   tor   bcd   声明   

原文地址:https://www.cnblogs.com/kuhaha/p/9265963.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!