• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

函数与几项简单的模块

开发技术 开发技术 8小时前 3次浏览
检测指针当前位置
with open('a.txt','wt',encoding='utf-8') as f:
    print(f.tell)     # 检测指针当前位置所在
编写日志功能
import time    # 使用 时间模块包
with open('日志的位置',mode='at',encoding='utf-8') as f:
    f.write('%s ...内容n' % time.strftime('%Y-%m-%d %H:%M:%S'))  后面时间格式
    
# 监控日志
with open('日志位置',mode='rb') as f:
    f.seek(0,2)               # 指针移动到末尾
    while True:
        line = f.realine()
        if len(line) == 0:
            continue
        else:
            print(line.decode('utf-8'), end='' )
修改文件的两种方式
1.
with open('a.txt',mode='rt',encoding='utf-8') as f:
    res = f.read()
with open('a.txt',mode='wt',encoding='utf-8') as f:
    f.write(res.replace('需要替换的内容...','替换成什么内容...'))

2.
import os

with open('a.txt',mode='rt',encoding='utf-8') as f,
        open('临时文件名...','wt',encoding='utf-8') as f1:
    for line in f:
        f1.write(line.replace('需要替换的内容...','替换成什么内容...'))
os.remove('a.txt')
os.rename('临时文件名...','a.txt')

函数

1.定义函数与调用函数
def func():             # func = 函数的内存地址
    print('....')    

func()
2.函数定义阶段发生的事情

申请内存空间,把函数体代码放进去,然后把内存地址绑定给函数名

def func():
    print(1)
    print(2)
    
3.函数调用阶段发生的事情:执行函数体代码
def func():
    print(1)
    print(2)
    saadad
    
func()    
# 函数定义阶段只检测语法不执行代码,只有在调用函数时才会执行函数体代码

例1
def bar():
    print('from bar')

def foo():
    print('from foo')
    bar()
                                 #   from foo    
foo()                            #    from bar

例2
def foo():
    print('from foo')
    bar()
    
def bar():
    print('from bar')
                                           #   from foo    
foo()                                       #    from bar
4.函数的参数
例
def add(x,y):
    res = x + y
    print(res)
    
add(2,3)


def func(x,y):
    if x > y:
        print(x)
    else:
        print(y)

func(3333,4444)


def log(user,pwd):
    if user == 'wuc' and pwd == '123'
        print('ok')
    else:
        print('error')
        
log('wuc','123')        
5.函数的返回值 return

函数内可以有多个return,但只要执行一次,整个函数就立即结束,并且将return后的值当作本次调用的产品返回

def max(sal1,sal2):
    if sal1 > sal2:
        return sal1
    else:
        return sal2
res = max(1000,2000)
print(res * 12)

#具体来说函数的返回值有三种形式
# 1 return 值: 返回的就是该值本身/-
# 2 return 值1,值2,值3:返回的是小元组

def func():
    return 111,'aaa',[11,22]

x,y,z = func()
print(x,y,z)

# 没有return或者return无值或者return None:返回的都是None

del func():
    res = 1+2
    return

res = func()
print(res)                 #  None

模块

"""
1 什么是模块
    模块一系列功能的集合体

    模块分为四种通用的类别
      1 使用python编写的.py文件

      2 已被编译为共享库或DLL的C或C++扩展

      3 把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)

      4 使用C编写并链接到python解释器的内置模块

    模块有三种来源:
        1 python自带的模块/库
            内置模块
            标准库

        2 第三方的库

        3 自定义库

2 为何要用模块
    1 拿来主义,提升开发效率
    2 减少代码冗余

3 如何用模块
    import
    from ... import
"""
例
import spam
print(spam.x)
print(spam.f1)
print(spam.f2)

def f1():
    print('xxxxx')
    
spam.f1()
spam.f2()



from spam import x ,f1,f2

def f1():
    print('xxxxx')

f1()

常用模块

时间戳
1. import time  
print(time.time())   1970到现在的秒数

2.格式化字符
print(time.strftime('%Y-%m-%d %H:%M:%S'))

3.结构化时间
obj = time.localtime()
print(obj.tm_year)
print(obj.tm_yday)
print(obj)

obj2 = time.gmtime()   # utc时间
print(obj2)

random模块
# print(random.random())
# print(random.randint(1,3))
# print(random.randrange(1,3))
# print(random.choice([11,"aaa",333]))
# print(random.sample([11,"aaa",333,444],2))

# print(random.uniform(1, 3))

# item=[1,3,5,7,9]
# random.shuffle(item)
# print(item)

# 储备知识
# print(chr(65))
# print(chr(90))
#
# print(ord('A'))
# print(ord('Z'))


import random
                                       # 随机验证码的命令
def make_code(size):
    res = ''
    for i in range(size):
        num = str(random.randint(0,9))
        s = chr(random.randint(65,90))
        res += random.choice([num,s])
    return res


print(make_code(6))
os 模块
import os

# print(os.getcwd())  # pwd

# os.makedirs('a/b/c/d')
# os.rmdir('a/b/c/d')
# os.removedirs('a/b/c/d')
# l = os.listdir(r'D:py18期day11')
# print(l)

# print(os.listdir('.'))
# print(os.listdir('..'))
# print(os.listdir('../..'))

# print(os.listdir('.'))
# print(os.listdir('..'))
# print(os.listdir('../..'))

# obj=os.stat('a.txt')  # stat a.txt
# print(obj.st_size)
# print(os.sep)
# print(os.linesep)

# print(os.name)

# print(os.environ)

# os.environ['username'] = "egon"
#
# print(os.environ)

# print(os.path.abspath(r"abc"))

# print(__file__)

# print(os.path.split(r"D:abcd.txt"))
# print(os.path.dirname(os.path.dirname(r"D:abcd.txt")))
# print(os.path.basename(r"D:abcd.txt"))

# print(os.path.exists(r"D:py18期day11代码a"))
# print(os.path.exists(r"D:py18期day11代码a.txt"))
# print(os.path.isfile(r"D:py18期day11代码a"))
# print(os.path.isfile(r"D:py18期day11代码a.txt"))
# print(os.path.isdir(r"D:py18期day11代码a"))
# print(os.path.isdir(r"D:py18期day11代码a.txt"))

# print(os.path.isabs(r'D:py18期day11代码a'))

# print(os.path.getsize('a.txt'))
# print(os.path.join('D:\', "a", 'b', 'c.txt'))
# print(os.path.join('D:\', "a", "C:\" 'b', 'c.txt'))


# print(os.path.dirname(os.path.dirname(__file__)))

# res = os.path.normpath(os.path.join(__file__,"..",'..'))
# print(res)
subproc++ess 模块
import os

# tasklist | findstr python.exe
# taskkill /F /PID 30060
# os.system('tasklist | findstr chrome')
# res = os.system('tasklist')
# print('='*50)
# print(res)

import subprocess
import time

obj = subprocess.Popen('tasklist',shell=True,
                 stdout=subprocess.PIPE,
                 stderr=subprocess.PIPE
                 )
# print('hello')
# time.sleep(3)

res1 = obj.stdout.read()
res2 = obj.stderr.read()
print(res1.decode('gbk'))
print(res2)

程序员灯塔
转载请注明原文链接:函数与几项简单的模块
喜欢 (0)