python入门(7)

本文是关于Python入门的学习笔记,重点探讨匿名函数的使用。通过一系列练习题,包括查找列表中符合条件的元素索引、操作字典、创建游乐园门票类、筛选列表中的偶数以及解决数学问题,如水仙花数和精致数的概念,深入理解Python编程技巧。

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

python入门(7)

匿名函数

lambda 参数:表达式
(lambda :print(1+2))()
f = lambda :print(1+2)
f()
# 3
练习

1、给定一个list a, 满足a[i+1] >= a[i], 给定int key ,找出list a 中第一个大于等于key的元素的index,无满足要求的元素则返回-1。

a=[10,13,13,14,16,19]
def getfirstkey(a,key):
    for i in a:
        if(i>=key):
            return a.index(i)
    return -1

print(getfirstkey(a,13))

2、求结果v = dict.fromkeys([‘k1’,‘k2’],[])v[‘k1’].append(666)print(v)v[‘k1’] = 777print(v)

v=dict.fromkeys(['k1','k2'],[])
v['k1'].append(666)
print(v)
v['k1']=777
print(v)

# {'k1': [666], 'k2': [666]}
# {'k1': 777, 'k2': [666]}

3、按照一下要求定义一个游乐园门票类,并尝试计算2个成人+1个小孩子平日票价

  • 平日票价100元

  • 周末票价为平日票价120%

  • 儿童半价

def price(au,ch,day):
    p=100
    if(day==6 or day==7):
        p=p*1.2
    return au*p+ch*p*0.5

print("price is ",price(2,1,1))

5、 定义一个函数func(listinfo) listinfo:为列表,listinfo = [133, 88, 24, 33, 232, 44, 11, 44],返回列表小于100,且为偶数的数

listinfo=[133,88,24,33,232,44,11,44]
def getdouble100(listinfo):
    l=[]
    for i in listinfo:
        if i<100 and i%2==0:
            l.append(i)
    return l
print(getdouble100(listinfo))

7、完美立方:找到大于1的4个整数满足完美立方等式:a3=b3+c3+d3(例如123=63+83+103)。编写一个程序,对于任意给定的正整数N(N ≤100),寻找所有的四元组(a,b,c,d),满足a3=b3+c3+d3,其中1<a,b,c,d≤N。

def perfect(n):
    l=[]
    if n>=100:
        return "too much"
    for i in range(1,n+1):
        for y in range(1,i):
            for z in range(1,i):
                for x in range(1,i):
                    if(i**3==x**3+y**3+z**3):
                        l.append([i,x,y,z])
    return l

print(perfect(13))

9、3位水仙花数计算:“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。

请按照从小到大的顺序输出所有的3位水仙花数,请用一个“逗号+空格”分隔输出结果。

def shuixian():
    for i in range(100,1000):
        a=int(i/100)
        b=int(i/10%10)
        c=int(i%100%10)
        # print("a,b,c",a,b,c)
        if(i==(a**3+b**3+c**3)):
            # print(i)
            print(i,end=', ')  
        
shuixian()

10、给定两个非负整数x和y,如果某一整数等于xi+yj,其中整数i>= 0且j>=0,那么我们认为该整数是一个"精致"的数。返回值小于或等于n(n<=200)的所有精致的数组成的列表。结果列表中每个值最多出现一次,同时请使用sorted保证结果唯一。

输入格式:共三行,每一行为一个整数,分别是x y n

输出格式:共一行,为一个列表。

输入样例:

1

2

5

输出样例:[2, 3, 5]

def jingzhi(x,y,n):
    s =set()
    if(x<0 or y<0 or n>200):
        print("Error")
        return 0
    for i in range(0,n):
        for j in range(0,n):
            temp=x**i+y**j
            if(temp<=n):
                s.add(temp)
                
    return s

print(jingzhi(1,2,5))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值