传参方式:
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模块的更多相关文章

  1. python函数参数类型及其顺序

    根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSI ...

  2. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  3. python函数参数的pack与unpack

    python函数参数的pack与unpack 上周在使用django做开发的时候用到了mixin(关于mixin我还要写一个博客专门讨论一下,现在请参见这里),其中又涉及到了一个关于函数参数打包(pa ...

  4. Python 关于Python函数参数传递方式的一点探索

    关于Python函数参数传递方式的一点探索 by:授客 QQ:1033553122 实践代码 #!/usr/bin/env python # -*- coding:utf-8 -*- __author ...

  5. python 函数参数介绍

    python 函数参数介绍 python 使用过程总,总会遇到 *args,**kw形式的参数,总是一头雾水,而且网上介绍的或是叫法不一,为此专门深入实践进而了解了函数参数的使用 具体请看代码 #-* ...

  6. Python 函数参数类型大全(非常全!!!)

    Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFuncti ...

  7. Python函数参数默认值的陷阱和原理深究(转)

    add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the func ...

  8. python函数-参数

    python函数-参数 实验室 # 演示形参是可变类型 def register(name, hobby, hobby_list=[]): hobby_list.append(hobby) print ...

  9. 详解Python函数参数定义及传参(必备参数、关键字参数、默认可省略参数、可变不定长参数、*args、**kwargs)

    详解Python函数参数定义及传参(必备参数.关键字参数.默认可省略参数.可变不定长参数.*args.**kwargs) Python函数参数传参的种类   Python中函数参数定义及调用函数时传参 ...

  10. python学习第四十八天json模块与pickle模块差异

    在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int st ...

随机推荐

  1. 使用以太网通信方式刷新AB PLC固件

    本文详细介绍如何使用以太网通信方式刷新AB PLC固件 一.准备工作 1.  AB PLC控制器一台,本文以5069-L330ER为例,将其通电: 2.  5069-L330ER的IP已设置为172. ...

  2. 文件的暂存(git add)

    如果我们更改了之前已经被跟踪的main.c,然后执行git status $ git status On branch master Changes not staged for commit: (u ...

  3. 2019 icpc南昌全国邀请赛-网络选拔赛J题 树链剖分+离线询问

    链接:https://nanti.jisuanke.com/t/38229 题意: 给一棵树,多次查询,每次查询两点之间权值<=k的边个数 题解: 离线询问,树链剖分后bit维护有贡献的位置即可 ...

  4. string format的各类格式及用法

    数字 {0:N2} 12.36  数字 {0:N0} 13  货币 {0:c2} $12.36  货币 {0:c4} $12.3656  货币 "¥{0:N2}" ¥12.36   ...

  5. Python爬虫实战三之爬取嗅事百科段子

    一.前言 俗话说,上班时间是公司的,下班了时间才是自己的.搞点事情,写个爬虫程序,每天定期爬取点段子,看着自己爬的段子,也是一种乐趣. 二.Python爬取嗅事百科段子 1.确定爬取的目标网页 首先我 ...

  6. USACO Training Section 1.1 题解(共4题)

    第一题 题目传送门:你的飞碟在这儿 分析 水题一道,输入两个字符串,将它们转换为数字并同时相乘,然后判断一下它们是不是对于47同余就可以了. 代码 #include<bits/stdc++.h& ...

  7. mysql 利用druid 为访问密码加密

    在原来数据库配置文件jdbc.properties 文件中增加几行加密文件 jdbc.username=rootjdbc.password=KqYkfcQkQOdOpCnaokLfb9Kbzdf+NG ...

  8. Appium 测试微信小程序 Webview

    通过微信打开debugx5.qq.com,或者直接扫下面二维码   勾选[打开TBS内核Inspector调试功能]   Chrome查看页面元素 手机连接电脑,查看是否连接成功.如下展示设备号则为连 ...

  9. emacs Can't guess python-indent-offset, using defaults: 4

    首先,这只是一个提示,Emacs 在打开python 文件时,如果是个空文件,会有此提示. 在python.el文件配置中,有如下代码: Python.el (defcustom python-ind ...

  10. net core 接入 Google Authenticator

    一.什么谷歌身份验证器 1.英文名:Authenticator 许网站都需要绑定用以对相关账号进行“二步验证”保护,也叫“双重身份验证”的谷歌身份验证器,以加强安全级别. 2.作用: 这东西就相当于银 ...