ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

6_10

2021-06-10 20:01:55  阅读:92  来源: 互联网

标签:10 形参 参数 path 实参 os 目录


常用模块的介绍

3.os模块(知道有这么个功能就行)

链接:https://www.cnblogs.com/linhaifeng/articles/6384466.html#_label3
   
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')  获取文件/目录信息
os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
os.path.dirname(path)  返回path的目录。其实就是os.path.split(path)的第一个元素
__file__  返回当前文件的路径


os.system("bash command")  运行shell命令,直接显示,相当于在pycharm中运行了cmd,但是会直接显示为GBK模式,不能正常打印中文(pycharm为utf-8)。此时,可以用subprocess模块
   import subprocess
   obj = subprocess.Popen('tasklist',shell=True,
                    stdout=subprocess.PIPE,        
                    stderr=subprocess.PIPE
                    )
   print(res1.decode('gbk'))
     注:obj.stdout为子进程正常运行的结果,显示为b模式
         obj.stderr为子进程运行失败的结果,显示为b模式

 

补充:函数的参数

1.形参和实参

    形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
   
   注:参数的本质一定是一个确定的值(*****)
   import random
   print(random.choices([random.randint(2, 6)], k=4))
   结果:[2, 2, 2, 2]或[5, 5, 5, 5]或···
  结果中的4个数一定相等,因为对于random.choices()来说,参 数random.randint(2, 6)是一个确定的值

2.位置实参和关键字实参

位置参数(形参和实参):按照从左到右的顺序定义的参数
关键字实参:按照key=value的形式定义的实参

二者可以混用:
1. 关键字实参必须在位置实参后面
   2. 对同一个形参不能重复传值

3.默认形参

可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)
注意的问题:
1. 默认值只在定义时赋值一次(指向的是地址)
       m=2
       def func(x,y,z=m)
      print(x,y,z)
       m=10
       func(1,1)
       结果:1,1,2
       
2. 默认参数的定义应该在位置形参后面
       
3. 默认参数通常应该定义成不可变类型,如果必须可变,则写 成
       def func(x,y,z=None)
      if z == None
          z=[]    

4.可变形参

  • 1.*args:针对溢出的位置实参
       多余的参数会被写成元组并存入args
       
    2.**kwargs:针对溢出的关键字实参
       多余的参数会被写成字典并存入kwargs
    def func(**kwargs):
      print(kwargs)
    func(a=6,b=3,c=8)
    结果:{'a': 6, 'b': 3, 'c': 8}
     
    3.实参前面加*:对列表打散,再传参数
    func(*[1,2,3,4])  #相当于func(1,2,3,4)
       *字典 =  *字典.keys()
       
     实参前面加**:功能一样,但后面只能跟字典

    4.*后定义的参数,必须被传值(有默认值的除外),且必须按照关键字实参的形式传递
    def foo(x,y,*args,a=1,b,**kwargs):
           ···
        foo(1,2,3,4,5,b=3,c=4,d=5)
        结果:x=1,y=2,args=(3,4,5),a=1,b=3,kwargs= {'c':4,'d':5}

 

注:

运用切片对字符串和列表进行截取
def func2(seq):
   return seq[::2]   #顾头不顾尾

 

标签:10,形参,参数,path,实参,os,目录
来源: https://www.cnblogs.com/hai437/p/14872591.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有