python函数练习

(1)定义函数,无参无返,可求出200以内所有包含7的数字

def a():
    for i in range(7, 200):
        if i % 10 == 7 or i // 10 == 7 or i // 10 % 10 == 7 or i == 7:
            print(i,end=' ')
a()

(2)定义函数,无参有返,可返回200-300所有偶数组成的数列

def b():
    a = []
    for i in range(200, 301):
        if i % 2 == 0:
            a.append(i)
    return a
print(b())

(3)定义函数,有参无返,可接收任意一个字符串,并计算该字符串有几个字符

def c(a:str):
    m=0
    for i in a:
        m=m+1
    return m
s = input()
print(c(s))

 

(4)定义函数,有参有返,可接收任意一个字符串,对其进行去重,返回去重后的集合

def d(s):
    m = set(s)
    print(m)
s = input()
d(s)

 

(5)定义函数, 可输入一个字符串,并打印出其中的所有数字

def e(s):
    for i in s:
        if i.isdigit():
            print(i)
s = input()
e(s)

(6)定义函数,可接收一个数字列表,并返回其中的最大值和最小值, 要求:不可以在自定义函数内调用max和min函数

def f(a):
    m = 0
    n = a[0]
    for i in range(0, len(a)):
        if a[i] > m:
            m = a[i]
        if a[i] < n:
            n = a[i]
    return m, n

a = list(map(int, input().split()))
m, n = f(a)
print(m, n)

 

(7)定义函数,可打印三行四列矩形

def f():
    for i in range(3):
        for j in range(4):
            print('*',end='  ')
        print()

f()

 

(8)定义函数,计算1-100的所有数字的和

def f():
    m=0
    for i in range(101):
        m=m+i
    return m

print(f())  #输出5050

(9)定义函数,可打印9行9列的等腰直角三角形


def f():
    for i in range(10):
        for j in range(i):
            print('*',end='  ')
        print()

f()

 

(10)定义函数,参数为非关键字可变长参数,请将传入的所有实参按照降序输出

def f(*a):
    l=list(a)
    l.sort(reverse=True)
    return l

print(f(1,5,6,8,4,7))

 

(11)定义函数,参数为关键字可变长参数,请计算并返回他们的平均身高, 使用(xiaoming='178cm',xiaobai='182cm',xiaohong='166cm',xiaohei='174cm')

def f(**a):
    s = 0
    for i in a.values():
        s = s + int(i[0] + i[1] + i[2])
    print(s / 4)


f(xiaoming='178cm', xiaobai='182cm', xiaohong='166cm', xiaohei='174cm')

 

递归函数

(1)求第6个斐波那契数

def f(n:int):
    if n==2 or n==1:
        return 1
    else:
        return f(n-2)+f(n-1)
print(f(6))  #输出8

(2)使用递归函数求5的阶乘

def f(n:int):
    if n==1:
        return 1
    else:
        return n*f(n-1)
print(f(5))  #输出120

(3)使用递归函数求50-100的总和

def a(n):
    if n==50:
        return 50
    else:
        return n+a(n-1)
print(a(100))  #输出3825

(4)已知有5个人坐在一起,第5个人说他比第四个人大5岁, 第4个人说他比第三个人也大5岁,以此类推,第一个人说他19岁, 请问,第五个人多少岁

def b(n):
    if n==1:
        return 19
    else:
        return b(n-1)+5
print(b(5))  #输出39

(5)使用递归函数求n的k次方

def f(n,k):
    if k==1:
        return n
    else:
        return f(n,k-1)*n
print(f(11,2))  #输出11的平方121

(6)使用递归函数判断一个字符串是不是回文字符串

def f(s):
    if len(s) <= 1:
        print('是回文数')
    else:
        if s[0] == s[len(s)-1]:
           return f(s[1:len(s)-1])
        else:
            print('不是回文数')
s=input()
f(s)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值