700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql函数输出参数_函数--返回值 参数和作用域

mysql函数输出参数_函数--返回值 参数和作用域

时间:2022-07-16 15:43:25

相关推荐

mysql函数输出参数_函数--返回值 参数和作用域

一、函数的返回值--return的作用

1.return将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:

return fw.read()

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)

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)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。