python基础知识-函数

本文详细介绍了Python函数的各种特性,包括参数传递方式、动态参数使用方法、全局变量的作用范围及使用注意事项等,并通过具体示例展示了如何利用这些特性进行编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数:


1.python规定函数参数若有默认值必须放在最后一个


2.函数动态参数:

 

def f1(*args):
    print(args)

*args可接受多个参数,结果以元组输出
f1(11,22,"wang","lisi",66)
结果:(11,22,"wang","lisi",66)

将列表整体作为元组的一个元素传给参数
li = [111,222,333,444,555,666]
f1(li,12)
结果:([111,222,333,444,555,666],12)

将每个元素转换成元组元素,即将每个元素作为单独的元素传给参数
li1 = [99,88,77,66]
f1(*li1)
结果:(99887766)

3.函数动态参数:

 def f2(**args):
      print(args)

**args可接受多个参数,结果以字典输出
f1(n1 = 123,n2 = 456)
结果:{'n1': 123, 'n2': 456}
将字典整体作为字典的一个value值传给参数
dic = {'k1':123,'k2':456}
f1(kk = dic)
结果:{'kk': {'k1': 123, 'k2': 456}}
将每个元素转换为字典元素,即将字典各健-值对单独作为元素传给参数
dic = {'k1':123,'k2':456}
f1(**dic)
结果:{'k1': 123, 'k2': 456}
4.万能参数:
def f1(*args,**kwargs):
    print(args,kwargs)
默认将有序的参数传给第一个参数,将无序的参数传给第二个参数
f1(11,22,33,k1 = "abcd",k2 = 5678)
结果:(11, 22, 33) {'k1': 'abcd', 'k2': 5678}
5.format()格式化
def format(*args,**kargs)
str = "my name is {0},age is {1}".format(*["jiangll",18])
将列表中两个元素分别作为独立的元素传给format函数的第一个参数
结果:my name is jiangll,age is 18
str1 = "my name is {name},age is {age}".format(**{"name":"chenzz","age":18})
将字典中两个键-值对分别作为独立的元素传给format函数的第二个参数
结果:my name is chenzz,age is 18
str2 = "my name is {name},age is {age}".format(name = "love",age = 18)
同上

dic1 = {
       "name":"jajfla",
       "age":22
       }
str3 = "my name is {name},age is {age}".format(**dic1)
同上
6.函数内容补充:

python函数传值传的是引用

def f1(a):
    a.append(999)

li = [111,222,333]
f1(li)
print(li)
结果:[111, 222, 333, 999]
7.全局变量:
1).在所有作用于中都可读;
2).若对全局变量重复赋值,需要加global name;
3).列表,字典可修改,不可重新赋值;
4).全局变量名都大写;
name = "chenzz"

def f1():
    age = 18
    global name
    name = "jiang"
    print(age,name)
def f2():
    age = 20
    print(age,name)
f1()
f2()
结果:18,jiang
     20,jiang
实例:
实现注册登录

def login(user,password):
    f = open('db','r')
    for line in f:
        linelist = line.split("|")
        if linelist[0] == user and linelist[1] == password:
            return True
    return False

def register(username,password):
    f = open('db','a')
    temp = "\n"+username+"|"+password
    f.write(temp)
    f.close()

def main():
    r = input("1-登录,2-注册")
    if r == 1:
        usr = input("请输入用户名:")
        pwd = input("请输入密码:")
        ret = login(usr,pwd)
        if ret == True:
            print("登录成功!")
        else:
            print("登录失败!")
        print("登录")
    elif r == 2:
        usr1 = input("请输入用户名:")
        pwd1= input("请输入密码:")
        register(usr1,pwd1)

main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值