几个平时练习的小例子

一 列表剥皮

def f(l):
    ret=[]
    for item in l:
        if isinstance(item,list):
            for i in f(item):
                ret.append(i)
        else:
            ret.append(item)
    return ret

x=[1,[2,[3,4,[5]]]]
print(f(x))

斐波那契数列

def fblq(x):
    ret=[]
    if x==1:
        return 1
    if x==2:
        return 2
    else:
        return fblq(x-1)+fblq(x-2)
for i in range(1,21):
    print(fblq(i))

三 实时获取鼠标位置坐标

import pyautogui as pg
pg.FAILSAFE=True
pg.PAUSE=2
while 1:
    x,y=pg.position()
    posstr="x:%s,y:%s"%(str(x).rjust(4),str(y).rjust(4))
    print(posstr,end='')
    print('\b'*len(posstr),end='',flush=True)

四 找数字

def judge(numlist):
    str_numlist=str(numlist)
    flag=1
    for i in range(9):
        for j in range(i+1,9):
            if str_numlist[i]==str_numlist[j]:
                flag=0
                break
    return flag

print("搜寻中...")
for num in range(111111111,399999999):
    if judge(num):
        str_num=str(num)
        num1=int(str_num[0:3])
        num2=int(str_num[3:6])
        num3=int(str_num[6:9])
        if num2==num1*2 and num3==num1*3:
            print(num1,num2,num3)
        
print("已完成!")

五 试画函数图像

import numpy as np
from matplotlib import pyplot as plt
x=np.arange(-6,6,0.1)
for i in range(1,13):  
    plt.subplot(4,3,i)
    plt.plot(x,x**i)
plt.show()

六 装饰器的例子

def w(f):
    def inner(a1,b1):
        u=input("user:")
        p=input("pwd:")
        if u=="hl" and p=="123":
            ret=f(a1,b1)
            return ret
        else:
            print("error")
    return inner

@w
def s(a,b):
    return a+b

print(s(3,2))

 

posted @ 2021-05-21 11:04  良辰逸风  阅读(78)  评论(0)    收藏  举报