mysql函数输出参数_函数--返回值、参数和作⽤域⼀、函数的返回值--return的作⽤
⽽print只是打印在控制台,⼀个函数如果没有return,那么在调⽤函数时,除了实现函数体的功能之外,
默认的返回值是None。以下⾯的代码为例,将return和print的区别:
def func(a,b):
res = a+b
print(res)
c=func(1,2)
print(c)
输出结果:
3
None
def func2(a,b):
res = a+b
return res
d=func2(1,2)
print(d)
输出结果:
3
2. 如果return有多个返回值,这些值会被默认封装为元组返回,例:
def get_user():
s = 'abc,123'
username,password = s.split(',')
return username,password
print(get_user())
输出结果:
('abc', '123')
3. 如果函数执⾏了 return 语句,函数会⽴刻返回结束调⽤,return 之后的其它语句都不会被执⾏,例:
def login():
for i in range(3):
username, password = get_user()
user = input('username:')
pwd = input('password:')
if username==user and password==pwd:
print('登录成功')
return
else:
print('账号/密码错错误!')
#如果⽤户输⼊不到三次就输⼊正确,执⾏到return,会⽴即跳出循环,结束函数
⼆、函数的参数和传参⽅式--位置参数、默认值参数、可变参数、关键字参数
1.位置参数:必传
调⽤函数时,根据函数定义的参数位置来传递参数,顺序必须⼀⼀对应,且是必传参数,例:
def sum(a,b):
sum=a+b
return sum
sum(2,3)
2. 默认值参数:可传可不传
定义函数时,为参数提供默认值,可以简化函数的调⽤。设置函数参数时,如果参数有多个,把变化⼤的参数放前⾯,变化⼩的参数放后⾯。变化⼩的参数就可以作为默认参数。且必须必选参数在前,默认参数在后。
调⽤函数时,按顺序传⼊参数,默认值参数可传可不传,如果不传的话,按函数设置的默认参数值。如果传的话,以传⼊的参数值为准。 如果函数设置了多个默认值参数,传参时可以按顺序提供或不按顺序提供。如果不按顺序提供,
需要加上参数名。 例:
def op_file(filename,content=None):
with open(filename,'a+',encoding='utf-8') as fw:
fw.seek(0)
if content:
fw.write(content)
else:
ad()
op_file('a.txt") #调⽤函数,读⽂件
op_file('a.txt",’eyiwqueqw') #调⽤函数,写⽂件
3. 可变参数:可传可不传
定义函数时,有时候我们不确定调⽤的时候会传递多少个参数,⽐如说多个⼈发邮件,发邮件的⼈数不确定。此时
可以包裹任意个位置参数来进⾏参数传递,即可变参数。可变参数允许传⼊0个或任意个参数,这些可变参数在函
数调⽤时⾃动组装为元组。
def mysql2(*info):
print(info)
mysql2("ip","user",878943843,000000,"sefsd","sdfds")
输出结果: #为元组
('ip', 'user', 878943843, 0, 'sefsd', 'sdfds')
4. 关键字参数:可传可不传
函数调⽤时,传⼊的含有参数名的参数。位置参数必须是⼀⼀对应传⼊,但是如果全部以关键字参数的
形式传⼊,则可以不按顺序,例:
def mtsql(host,user,password,port,charset,sql,db):
print("链接mysql")
mysql(user="root",password="123456",host='192.168.1.3',port='3306',sql='sdfsdf',db='dsfsdf',charset='sdfsdf') #调⽤函数时全部传⼊关键字参数
mysql("root","123456",host='192.168.1.3',port='3306',sql='sdfsdf',db='dsfsdf',charset='sdfsdf')
#如果同时传⼊位置参数和关键字参数,必须位置参数在前,关键字参数在后
⽽定义参数时,也允许你传⼊0个或任意多个关键字参数,这些关键字参数在函数内部⾃动组装为⼀个字典,例:
def mysql(**info):
print(info)
mysql(user="root",password="123456",host='192.168.1.3',port='3306',sql='sdfsdf',db='dsfsdf',charset='sdfsdf')输出结果: #为字典
{'user': 'root', 'password': '123456', 'host': '192.168.1.3', 'port': '3306', 'sql': 'sdfsdf', 'db': 'dsfsdf', 'charset': 'sdfsdf'} 5. 参数组合:
函数可同时⽤必选参数、默认参数、可变参数和关键字参数,参数定义的顺序必须是:必选参数、默认参数、可变参数
和关键字参数。
def func(a,b,c=0,*args,**kw):
print(‘a=’,a,‘b=’,b,'c=',c,'args=',args,'kw=',kw)
func(1,2,3,'a’,‘b’,s=123)
输出结果:
a=1,b=2,c=3,args=('a','b’),kw={'s':123}
6. 另外两种传参⽅式
*传递元组或列表,让元组或列表的每⼀个元素对应⼀个位置参数:
def calc(a,b):
print(a+b)
return(a+b)write的返回值
L=[1,2]
calc(*L)
**传递字典,让字典的每个键值对作为⼀个关键字参数传递给函数:
def mysql(host,user,password,port,charset,sql,db): print('连接mysql')
dic = {
'host':'192.168.1.1',
'user':'root',
'password':123456,
'port':3306,
'charset':'utf-8',
'sql':'sql',
'db':'db'
}
mysql(**dic)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论