一、求n个数字的和
#求n个数字的和
def func(*args):
sum = 0
for i in args:
sum +=i
return sum
lst = [1,3,5,7]
ret = func(*lst)
print(ret)
#第二种
def func2(*args):
return sum(args)
print(func2(1,3,2,5))
扑克牌:
def func():
huase = ["红桃","黑桃","方片","梅花"]
shuzi =[2,3,4,5,6,7,8,9,10,"J","Q","K","A"]
result = []
for hua in huase:
for shu in shuzi:
result.append((hua,shu))
return result
print(func())
用户注册:(用文件存储信息)
def regist():
print("欢迎进入注册系统")
while 1:
username = input("请输入用户名:").strip()
password = input("请输入密码:").strip()
if username == "" or password =="":
print("您输入的用户名或者密码不合法")
continue
f = open("db.log",mode="r+",encoding="utf-8")
for line in f:
if username ==line.split("@@")[0]:
print("该用户已被注册,请重新输入")
break
else:
f.write("\n"+username+"@@"+password)
print("注册成功了")
return
regist()
一、函数名的应用:
命名规范和变量一样的
打印变量名会显示变量的内存地址
a = 10
b = 20
c = 30
lst = [a,b,c]
print(lst)
类比方法:
def func1():
print("我是func1")
def func2():
print("我是func2")
def func3():
print("我是func3")
lst = [func1,func2,func3]
for el in lst:
el()
函数名可以作为参数传递给函数
def my():
print("我是my")
def proxy(fn):
print("在处理之前")
fn()
print("在处理之前")
proxy(my)
第一类对象:
def outer():
a = 10
def inner():
print(a)
inner()
outer()
闭包:在内层函数中访问外层函数的变量
a = 10
def outer():
global a
a = 20
def outer2():
global a
a = 30
outer()
outer2()
print(a)
例子2
def outer():
a = 10
def inner(): #闭包
print(a)
return inner
fn = outer()
fn()
闭包的作用:
1、可以让一个变量常驻内存
2、可以保护一个变量不收侵害