Python函数参数&time、OS、json模块
传参方式:
1.默认传参:形参里k=v,如果调用时不传k,则k为v;如果传m,则k为m
2.按顺序或k=v
3.*args,可传多个或0个实参,args会接收
4.**args,可传多个或0个实参,args会接收,但必须用k=v的形式传参
5.调用传参时,*args可序列解包列表。如定义l=[1,2,3],调用时test(*l)
6.调用传参时,**args可序列解包字典。如定义dic=[a=1,b=2,c=3],调用时test(**l)
##可变参数
PORT = 3306 #常量 def mysql(host,user,password,port,charset,sql,db):
print('连接mysql') # mysql('ip','user','sdfsdf',3306,'sdfsdf','select','db')
# mysql(user='root',password='123456',host='192.168.1.3',
# port=3306,sql='sdfsdf',db='sdfsdf',charset='sdfsdf')
#
# mysql('192.168.1.1','root',port=3306,password='sdfsdf') #mysql(password='123456','root',) 不对 # def mysql2(ip,*info):
# print(info)
#
# mysql2('user',13345435,00000,'sefsd','sdfds')
# mysql2()
# mysql2(1)
# mysql2(1,2)
#这种参数是必传的还是非必传的
#有没有限制参数个数
def send_mail(*args):
print(args)
#
# send_mail('qqq@qq.com')
# send_mail('qqq@qq.com','asaaa@163.com','ddd@sina.com') #
# def calc(a,b,c):
# print(a+b)
# return a+b
#
# l = [1,2,3]
# calc(*l)
##关键字参数 # #**可以不传
# def mysql(**mysql_info):
# print(mysql_info)
#
# print(mysql())#返回空
# #print(mysql('ip','user')) #没有关键词,会报错
# print(mysql(ip='192.1',port=3306))#传入关键字参数,返回字典
#
def request(url,method,**info):
print(info) print(request('www.trg.cn','post',data='zff',head='dddd'))#url和method必须传,后边儿随意 def mysql(host, user, password, port, charset, sql, db):
print('连接mysql')
print(mysql()) dic = {
'host': '192.168.1.1',
'user': 'root',
'password': 123456,
'port': 3306,
'charset': 'utf-8',
'sql': 'sql',
'db': 'db'
} #**把字典拆开,变成k-v传参。其中key必须和形参一样.
mysql(**dic)
#list删除元素错误循环示范:
li = [1,1,2,3,4,5,6,7,8,9]
for i in li:
if i%2!=0:
li.remove(i)
print(li) #循环删list会计算出错,因为删了一个元素后,后边的元素下标会改变,取值会遗漏
#解决办法:定义俩个一样的表,循环第二个,删除第一个
import copy
li = [1,1,2,3,4,5,6,7,8,9]
li2 = [1,1,2,3,4,5,6,7,8,9]
#也可写成 li2 = li (叫浅拷贝,这个li2和li的内存地址一样)
#li2 = copy.deepcopy(li) #深拷贝,重新开辟了一块内存
# print(id(li)) #查看内存地址
for i in li2:
if i%2!=0:
li.remove(i)
print(li)
##常用模块:
一个python文件就是一个模块
1、标准模块,python自带的
2、第三方模块 需要安装
3、自己写的python文件
##json模块:
import json
#解析json的
json_str = '''
{"name":"xiaohei","age":18,"sex":"男","age":18}
'''
res = json.loads(json_str) #把字符串(json串)转成字典
print(res)
print(type(json_str))
print(type(res))
dic = {
"xiaohei":{
"age":18,
"password":12345,
"sex":"男",
"addr":"北京"
},
"马春波":{
"age":18,
"password":12345,
"sex":"男",
"addr":"北京"
},
"王东泽":{
"age":18,
"password":12345,
"sex":"男",
"addr":"北京"
},
}
res = json.dumps(dic,ensure_ascii=False,indent=4)#把字典变成字符串
print(res)
f = open('user.json','w',encoding='utf-8')
f.write(res)
load 自己读
f = open('user.json',encoding='utf-8')
res = json.loads(f.read())
print(res)
res = json.load(f)
print(res)
#dump 自己写
fw = open('newuser.json','w')
json.dump(dic,fw,indent=4,ensure_ascii=False) #字典做json写入文件,需要考虑到字符和格式。 ##OS模块
import os
res = os.listdir('/Users/nhy/Desktop') #列出某个目录下的所有文件
os.remove()
os.rename()
os.mkdir(r'test/niuhy/haha')#创建文件夹
os.makedirs(r'test1/lyl/aaa')#会创建父目录
res = os.path.exists(r'/Users/nhy/Desktop/stu.txt')
os.path.isfile() #判断是否为文件
os.path.isdir()#判断是否为文件
res = os.path.split(r'/Users/nhy/Desktop/stu.txt')
res = os.path.dirname(r'/Users/nhy/Desktop/stu.txt')#取父目录
res = os.getcwd() #获取当前的目录
os.chdir(r'/Users/nhy/Desktop/')#更改当前目录
res = os.getcwd()
print(res)
open('a.txt','w')
print(os.environ)#看你电脑的环境变量 res = os.path.join('test','hhh','abc','a.txt')#拼接路径
print(res)
res= os.path.abspath('..')#根据相对路径取绝对路径
print(res) res = os.system('hhhsdf')#执行操作系统命令
# print(res)
res = os.popen('ifconfig').read()
print('res',res) ##time模块
import time #格式化好的时间 20181202
#时间戳 2343242 #时间元组 # print(int(time.time()))#时间戳
# res = time.strftime('%Y-%m-%d %H:%M:%S')#取当前格式化好的时间
# print(res) #时间戳转换成时间元组,时间戳转格式化好的时间
#time1 = time.gmtime(int(time.time()))#把时间戳转成时间元组,以标准时间的时间转换的
# time1 = time.localtime(int(time.time()))#把时间戳转成时间元组,以标准时间的时间转换的
# res = time.strftime('%Y-%m-%d %H:%M:%S',time1)
# print(res) #格式化好的时间转时间戳 timep = time.strptime('2018-10-23 15:38:59','%Y-%m-%d %H:%M:%S')
print(timep)
res = time.mktime(timep)#把时间元组转成时间戳
print(res)
#20181023 2323
def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
#时间戳转格式化好的时间
if timestamp:
time1 = time.localtime(timestamp)
res = time.strftime(format, time1)
else:
res = time.strftime(format)
return res
#20180304153958
def strTotimestamp(str=None,format='%Y%m%d%H%M%S'):
#格式化的时间转时间戳
if str:
timep = time.strptime(str, format)
res = time.mktime(timep)
else:
res = time.time()
return int(res)
##全局变量
name = '小明'
stus = []
#list、字典、集合 不需要声明即可全局使用
#字符串、int、float、元组 需要声明global
def a():
global name
stus.append('abc')
name = '哈哈哈'
print(name) #函数体内声明了global,里边的操作,对外面或其他函数中都有效。 def b():
print('stus..',stus)
print(name)
age = 18
print(age)
a()
b() money = 500
def test(consume):
return money - consume def test1(money):
return test(money) + money money = test1(money)
print(money) def test():
global a
a = 5 def test1():
c = a + 5
return c
test()
res = test1()
print(res)
import copy
# 0 1 2 3
num1 = [1,1,2,3,4,5,6,7,7,8]
num2 = num1 #浅拷贝
num2 = copy.deepcopy(num1)
#深拷贝
print(id(num1))
print(id(num2))
# 0 1 2
for i in num2:
if i%2!=0:
num1.remove(i)
print(num1) #2 4 6 8
#不变
#报错 ##列表生成式
s =[1,2,3,4,5,6,7,8]
for i in s:
print(i+1)
res = [ i+1 for i in s]
res = [str(i) for i in s] print(res)
Python函数参数&time、OS、json模块的更多相关文章
- python函数参数类型及其顺序
根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...
- Python函数参数默认值的陷阱和原理深究"
本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...
- python函数参数的pack与unpack
python函数参数的pack与unpack 上周在使用django做开发的时候用到了mixin(关于mixin我还要写一个博客专门讨论一下,现在请参见这里),其中又涉及到了一个关于函数参数打包(pa ...
- Python 关于Python函数参数传递方式的一点探索
关于Python函数参数传递方式的一点探索 by:授客 QQ:1033553122 实践代码 #!/usr/bin/env python # -*- coding:utf-8 -*- __author ...
- python 函数参数介绍
python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...
- Python 函数参数类型大全(非常全!!!)
Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFuncti ...
- Python函数参数默认值的陷阱和原理深究(转)
add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...
- python函数-参数
python函数-参数 实验室 # 演示形参是可变类型 def register(name, hobby, hobby_list=[]): hobby_list.append(hobby) print ...
- 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)
详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类 Python中函数参数定义及调用函数时传参 ...
- python学习第四十八天json模块与pickle模块差异
在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点 跨语言,体积小 缺点 只能支持 int st ...
随机推荐
- java里getter和setter的作用(转载)
[java]类中使用getter和setter的优势 http://www.importnew.com/9716.html java有三大特性:封装,继承还有多态. 而今天,我来讲一下其中最重要的特性 ...
- YOLO学习
YOLO1:https://blog.csdn.net/m0_37192554/article/details/81092514 https://blog.csdn.net/shuiyixin/art ...
- #20175204 张湲祯 2018-2019-2《Java程序设计》第五周学习总结
20175204 张湲祯 2018-2019-2<Java程序设计>第五周学习总结 教材学习内容总结 -第六章接口与实现要点: -接口: 1.使用关键字interface定义接口. 2.接 ...
- input 上报流程图
input 上报流程图 http://blog.chinaunix.net/uid-28320320-id-3389196.html
- 题解-HAOI2018全套
去冬令营转了一圈发现自己比别人差根源在于刷题少,见过的套路少(>ω<) 于是闲来无事把历年省选题做了一些 链接放的都是洛谷的,bz偷懒放的也是链接 AM.T1 奇怪的背包 Problem ...
- iOS cocoapods 速度过慢问题
这个问题真的困扰了很久,虽然我也开了shadowsocks,但是我不知道git命令默认是不走shadowsocks的,所以速度慢的很. 今天拜读了 https://blog.csdn.net/wuqu ...
- NOI2004郁闷的出纳员
传送门 题目看起来玄乎,但其实只需要一点点小 trick 就可以了. 我们可以用一个全局的 delta 来维护工资的调整记录 对于每一个新加入的员工,先判断是否低于最低工资下限,如果是,直接踢出,不做 ...
- bounding box的简单理解
1. 小吐槽 OverFeat是我看的第一篇深度学习目标检测paper,因为它是第一次用深度学习来做定位.目标检测问题.可是,很难懂...那个bounding box写得也太简单了吧.虽然,很努力地想 ...
- Vue:window.onresize
1. 添加属性screenHeight 和 timer. screenHeight: window.innerHeight timer: '' // window.onresize函数频繁调用时,页 ...
- 第十三章:UNDO段
一.UNDO UNDO 段是用于存储还原数据的特殊段,在发生实例故障的时候,UNDO 段用来对数 据进行恢复.本章内容包括介绍 UNDO 段的工作原理,并进行自动和手工的 UNDO 段的管理 1.1 ...