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 ...
随机推荐
- cocos2d-x入门学习笔记——Hello world分析
Hello world分析 1. “resource”文件夹 用于存放图片.音频和配置等资源文件.为了方便管理,可以创建在其中创建子文件夹.Cocos2d-x为我们屏蔽了不同平台对于文件路径的定义. ...
- Linux系统GNOME主题安装与Tweaks工具使用
需要软件: GNOME Tweaks--使主题修改更加容易一个工具 安装主题: 下载主题:mac themes下载链接:https://www.gnome-look.org/p/1241688/ 这里 ...
- uwsgi+anaconda+nginx部署django项目(ubuntu下)
conda 环境不必多说: conda(或source) activate test 进入test虚拟环境 接下来安装uwsgi: pip install uwsgi 在conda环境下大概率安装 ...
- jQuery禁用、开启鼠标滚轮事件
1.禁用鼠标滚轮事件 $(document).bind('mousewheel', function(event, delta) {return false;}); 2.开启鼠标滚轮事件,直接解绑事件 ...
- webbrowser设置为相应的IE版本
注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATU ...
- pysvn 相关
sudo apt-get install python-svn sudo apt-get install svn-workbench 安装过程中如果缺少相关依赖下载好在执行这两条语句 安装好之后的界面 ...
- dash视频服务器本地搭建 (初探)
2019-4-17 15:54:17 星期三 技术说明: dash: 将一个大视频分解成不同分辨率, 不同清晰度的小视频, 以及一个描述文件(后缀: mpd), 根据网络带宽自动调整视频流, 看起来更 ...
- Linux从入门到入门
一. 前言 首先,在你的Windows系统上要想有linux系统,那就必须先安装一款软件,这里提供的是14.15的,还有ISO镜像:VMware-workstation 安装VMware:略 新建虚拟 ...
- IntelliJ IDEA使用SVN检出项目到本地工作空间
- C++简单交换堆排序的代码
下面的内容内容是关于C++简单交换堆排序的内容,应该对各位朋友有较大用途. { int start, end; { }} { int root, child; { if((child + 1 < ...