整理下超好用的python函数——不断更新【sys.args[] 】【表示时间的函数总结】【读写文件】【copy) 】【位置参数、关键字参数、默认参数、可变参数】

分享比较好用的函数

1.sys.args[]  外部输入和内部调用的桥梁,可以理解为:将输入的值看成是一个列表,[0]表示运行程序本身,[n],表示外部输入的第n个参数。如下:

import sys
data_type = sys.argv[1]
if data_type == '2':
    number1 = sys.argv[2]
    number2 = sys.argv[3]
    print("两者之积是:", int(number1)*int(number2))
elif data_type == '1':
    number1 = sys.argv[2]
    number2 = sys.argv[3]
    print('两者之和是:', int(number1)+int(number2))

运行结果如下:

2.表示时间的函数

关于时间经常用的是time模块

①time.time()     返回时间戳,单位是s,可以用来计算响应时间

import time
import requests
past = time.time()
json_data = {}
r = requests.post('www...',json = json_data)
now = time.time()
print('cost time',now-past)

运行结果:

②time.strftime(format) 当前时间格式化

import time
time_1 = time.strftime('%Y-%m-%d %H:%M:%S')
print('格式化时间',time_1)

运行后结果是:

3.with open ...as..读取文件,生成文件

因为我们要造大量json数据,用来发post请求,或者读取大量的json数据,所以想着用代码实现

①生成文件 a:append

import json

data = {'name': 'rong',
        'age': 15,
        'school': "初一"}
with open('..\\file\\test_1.txt',mode='a') as file:
    file.write(json.dumps(data)) #写入字符串类型

运行结果

②读取文件

with open('..\\file\\test_1.txt',encoding='UTF-8') as f:
    read_jsondata_file = json.load(f)
    print(read_jsondata_file)

返回结果:

4. copy.deepcopy() 和copy.copy()  复制

背景:在造数据时,需要对原有的文件或者数据进行部分修改,然后保存为新的文件

这时候就会运用到copy.deepcopy()如下:

work_time= {"driverAccount": "11122233","endTime": time.strftime('%Y-%m-%d ')+'23:59:00',"workDate": time.strftime('%Y-%m-%d '),"startTime": time.strftime('%Y-%m-%d')+"10:00:00"}
new_work_time_list = []
for ix in range(5):
    new_work_time = copy.deepcopy(work_time) #深度复制对象
    new_work_time['driverAccount'] = str(int(work_time['driverAccount'])+ix)
    print(new_work_time)
    new_work_time_list.append(new_work_time)

运行后:

再说下copy.deepcopy() 和copy.copy()  这俩货有区别

同:会另外生成一个对象

异:

 copy.deepcopy() 深复制:改变嵌套在里面的原始数据,不会对新生成对象产生影响

copy.copy()浅复制:改变原始数据,新生成的对象数据会随着改变

如下:

import copy

origin = [1, 2, [3, 4]]
cop1 = copy.copy(origin)
cop2 = copy.deepcopy(origin)

origin[2][0] = "hey!"

print('cop1',cop1)
print('cop2',cop2)

运行结果:

 

5.参数介绍

参数大体分为位置参数、关键字参数、默认参数、可变参数

位置参数:我们一般封装函数设置的,位置参数就是一定要输入的参数

关键字参数:以键和值的方式指定值,可以清除参数的顺序需求,一般在传值的时候会使用

默认参数:就是我们在写函数时,会写一个默认值,如果在传参的时候没有给这个参数赋值,这个参数就会使用这个默认值。可传可不传,如果不传在函数就使用默认值

可变参数:可传可不传,如果不传,函数不会显示。主要分为两种:*args:表示将标准调用剩下的值,以元组的形式保存,**kwags:表示,将关键字调用剩下的值,以字典的形式保存

这里最重要的是:位置参数,默认参数,可变参数的混合使用,注意关键字参数在传值的时候不能和**kwargs参数一起使用。使用方法记住使用顺序和例子就可以:

def foo(x, *args, y=None, **z):
    print(x)
    print(z)
    print(args)
    if y is None:
        print(y)
    elif y == '1':
        print(y)


if __name__ == '__main__':
    foo(1, 7, 8, 9, y=1, z='z') 
 推荐一个关于参数很好的博文:https://www.cnblogs.com/bingabcd/p/6671368.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值