Python3——函数小练习

练习一

"""
1、 打印名片程序:输入姓名,电话号码,性别,最后打印出来名片
• 控制姓名长度为6-20
• 电话号码长度11
• 性别只能允许输入男或女
• 每一样信息不允许为空
"""

# 一、三个循环分开写
def func1():
    while True:
        name = input('请输入姓名,长度6-20')
        if len(name) >= 6 and len(name) <= 20 and ' ' not in name:
            break
    while True:
        phone = input("请输入电话号码:")
        if len(phone) == 11 and ' ' not in phone:
            break
    while True:
        gender = input("请输入性别:男/女")
        if gender == '男' or gender == '女':
            print('姓名:{}\n电话号码{}\n性别:{}'.format(name, phone, gender))
            break
func1()

# 嵌套循环
def func2():
    num = 1
    while num:
        name = input('请输入姓名,长度2-10:')
        if len(name) >= 2 and len(name) <= 10 and ' ' not in name:
            while num:
                phone = input('请输入电话号码:')
                if len(phone) == 11 and ' ' not in phone:
                    while num:
                        gender = input("请输入性别:男/女")
                        if gender == '男' or gender == '女':
                            print('姓名:{} \n手机号:{}\n性别:{}'.format(name, phone, gender))
                            num = 0
    else:
        print("程序结束")


func2()

练习二

# 2、使用函数根据用户输入求斐波那契数列斐波那契数列:1,1,2,3,5,8,13,21…即: 起始两项均为1,此后的项分别为前两项之和
# 2,不需要传参,方便用户使用
def func3():
    num = int(input('请输入你要获取的项数:'))
    a = b = 1

    if num <= 2:
        [print(a, end=' ') for i in range(num)]
    else:
        [print(a, end=' ') for i in range(2)]

    for i in range(num):
        print(a+b, end=' ')
        a, b = b, a+b

func3()

练习三

# 3. 编写一段代码,定义一个函数求1-100之间所有整数的和,并调用该函数打印出结果
# for循环
def sum():
    num = 0
    for i in range(1, 101):
        num += i

    print(num)

sum()


# while循环
def sum1():
    num1 = 0
    a = 1
    while a <= 100:
        num1 += a
        a += 1
    print(num1)


sum1()

练习四

"""
4、用函数实现一个判断用户输入的年份是否是闰年的程序
1.能被400整除的年份
2.能被4整除,但是不能被100整除的年份
以上2种方法满足一种即为闰年
"""

def fun1():
    year = int(input('请输入年份:'))
    if year%400==0 or year%4==0 and year%100!=0:
        print('%s是闰年'%year)
    else:
        print('%d不是闰年'%year)

fun1()

练习五

"""
5、 猴子吃桃问题(递归):
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?
"""
def fun1(day):
    if day==10:
        return 1
    elif day>10:
        print('超出时间限制了')
    else:
        return (fun1(day+1)+1)*2

res=fun1(1)
print(res)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值