Python 第五天

今天主要记录代码,至于分析讲解,以后补充吧。

a={"001":{"name":"张三",'age':18,"sex":"男"},
   "002": {"name": "李四", 'age': 28, "sex": "女"},
   "003": {"name": "王五", 'age': 17, "sex": "男"},
   "004": {"name": "赵六", 'age': 15, "sex": "女"},
   }
b=[]
for i,j in a.items():
    if j['age']==28:
        b.append(i) #循环时无法删除参与循环的字典、列表、元祖,所以我想到的方式是追加至列表
for i in b:
    del a[i]
print(a)

for i in a.keys():
    if a[i]['age']<18:
        a[i]['baby']='小孩'
        a[i].pop('sex')

print(a)

第五天的作业

# 练习传递参数
# 1、写一个函数实现斐波那契数列(1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377......)
# 要求:接收一个参数,返回一个存着等量值的列表
print("练习传递参数")
def fbnq(a,b,n):
    if n>=0:
        print(b,end=' ')
        a, b = b, a + b
        return fbnq(a,b,n-1)
    else:
        return b
fbnq(1,1,13)



# 练习可变参数 *args
print("\n练习可变参数 *args")
args=[1,2,3]
def sed(a,b,c):
    c1=a+b+c
    return c1
c2=sed(*args)
print(c2)

# 2.计算任意多个数字的和
# 需求
# (1).定义一个函数 sum_numbers,可以接收的 任意多个整数
# (2).功能要求:将传递的 所有数字累加 并且返回累加结果

    # 遍历 args 元组顺序求和
print("# 2.计算任意多个数字的和")
def sum_numbers(*args1):
    num=0
    for i in args1:
        num=num+i
    return num
args=tuple()
while True:
    a=float(input("请输入相加的参数"))
    args = args + (a,)
    b=input("参数是否已经输入完成(1.是 2.否)?")
    if b=='1':
        break

x=sum_numbers(*args)
print(args,"相加的结果为",x)

# 递归函数练习

# 3.使用递归,计算 1 + 2 + ... num 的结果
print("# 3.使用递归,计算 1 + 2 + ... num 的结果")
def sum_01(num,sd):
    sd=num+sd
    if num!=0:
        return sum_01(num-1,sd)
    else:
        return sd

aS=int(input("请输入累加的最终项"))
x=sum_01(aS,sd=0)
print("累加的结果为",x)

    # 1. 出口

    # 2. 数字的累加 num + (1...num -1)
    # 假设 sum_numbers 能够正确的处理 1...num - 1


    # 两个数字的相加

函数的默认传参以及可变传参

def kb(a,*b,c=4,**d):
    print(a,b,c,d)

kb(1,2,3,4)
kb(1,2,3,{'q':2})

def kb1(**b1):
    print(b1)

x=2
y={'A':1}
kb1(a="23")

全局变量

a=5
def sun1():
    return 5+a

a=6
def sun2():
    return  5+a

a=7
def sun3():
    return 5+a
#a为全局变量,可以被函数使用
print(sun1())
print(sun2())
print(sun3())

关键字传参

def jiafa(a,b):
    c=a+b
    return c

print(jiafa(b=2,a=1))
print(jiafa(10,20))

# print(jiafa(a=1,7)) 关键字传参,关键字必须是最后一个,否则会报错
print(jiafa(1,b=13))

def dengji(name,age,sex='男'):
    print(name,age,sex)

dengji('张三',18)
dengji('李四',17,'女')
dengji('aa',12,sex='qq')

# def dfgh(name,age,sex='男',address):
#     print(name,age,sex,address)
def dfgh(name,age,address,sex='男'):
     print(name,age,sex,address)
dfgh('张三',18,'山东')


可变传参

def aaa(a,b,*c): #*c 元祖形参
    print(a)
    print(b)
    print(type(c))

    for i in c:
        print(i,end=' ')

aaa(1,2,'4',3,5,'q')

# def bbb(a,b,c):
#     print(a)
#     print(b)
#     print(c)

x=(1,2,3)
# bbb(*x)
# print(type(*x))
print(*x) #变量前加*,可以打散变量的序列

a=[1,2,3,4]
print(*a)
a={1,2,3,4,5}
print(*a)
a={'a':1,'b':2}
print(*a)
# print(a[*a]) #无法解析
def zd2(**a):
    print(a)

zd2(a=1,b=3,c=4,r=11)

def zd(a1,**a):
    print(a1)
    print(a)

zd(a1=23,a=1,b=2,c=3)

def fff(name,age):
    print("fff")
    print(name)
    print(age)

a={'name':'awds','age':14}
fff(**a) #字典的k名必须与函数的参数名一致,单星号传key(键),双星号传values(值)
def jiajian(a,b):
    c1=a+b
    c2=a-b
    c3=a*b
    c4=a/b
    return c1,c2,c3,c4

x1,x2,x3,x4=jiajian(5,6)
print(x1,x2,x3,x4)
x=jiajian(3,4) #将返回的多个值以元祖的方式给x
print(x,type(x))

u=1,2,3,4,5
print(u,type(u))

x=4
y=9
x,y=y,x #等价于 x,y=(y,x) 即将等式右侧的y,x组成一个元祖,然后按顺序分别赋值
print(x,y)

def hanshu1(a,b):
    c=a+b
    return c

def hanshu2(a,b,c):
    return a-b,hanshu1(a,b)*c

d1=hanshu2(1,2,3)
print(d1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值