python作业5

1, 有一对兔子,从出生后的第3个月起,每个月都生一对兔子,
小兔子长到第3个月后每个月又生一对兔子,
假如兔子不死,问第n个月第兔子对数为多少?

def rabbit_num(n):
    if n <= 2:
        return 1
    else:
        return rabbit_num(n - 1) + rabbit_num(n - 2)


numb = int(input('请输入查看的月数:'))
number = rabbit_num(numb)
print(number)

2、假设用户每次上楼梯只能上一个台阶或者两个台阶,请写一个函数,判断用户到第n台阶共有多少种走法

def steps(n):
    if n < 3:
        return 1
    else:
        return steps(n - 1) + steps(n - 2)


numb = int(input('请输入共有多少个台阶:'))
num = steps(numb)
print(f'共有{num}中走法')
 

3、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def math():
    ls = []
    for i in range(0,10001):
        flag = False
        if (i% 5 == 0 or i % 6 == 0) and i % 30 != 0:
            flag = True
        if flag:
            ls.append(i)
    print(ls)


math()
 

4、写一个方法,计算列表所有偶数下标元素的和(注意返回值)

def list_sum(ls):
    sum = 0
    i = 0
    while i < len(ls):
        sum += ls[i]
        i += 2
    return sum
    
ls = [1,2,3,4,5,6,7,8,9]
print(f"列表是:{ls},偶数下标元素和是:{list_sum(ls)}")
 

5、判断一个数是否是质数(素数)?该如何声明方法?

def prime_numbers(n):
    ls = []
    index = 2
    flag = True
    for i in range(2,n + 1):
        while index < (i // 2):
            if i % index == 0:
                flag = False
                break
            index += 1
        if flag: 
            ls.append(i)
    print(ls)
                

numb = int (input('请输入末尾数:')) 
prime_numbers(numb)
 

6、请使用函数完成选择、冒泡、插入三种排序

def bubble_sort(aList):
    n = len(aList)
    for i in range(0, n - 1):
        for j in range(0, n - i - 1):
            if aList[j] > aList[j + 1]:
                aList[j], aList[j + 1] = aList[j + 1], aList[j]

 
if __name__ == "__main__":
    li = [54, 26, 93, 17, 77, 31, 44, 55, 20]
    print(li)
    bubble_sort(li)
    print(li)
   
'''
选择排序
'''
def select_sort(aList):
    l = len(aList) 
    for j in range(l):
        min_index = j
        for i in range(min_index + 1, l):
            if aList[min_index] > aList[i]:
                min_index = i
        aList[j], aList[min_index] = aList[min_index], aList[j]
 
 
if __name__ == "__main__":
    li = [9 , 16, 17, 15, 11]
    print(li)
    select_sort(li)
    print(li)

7.获取字符串中汉字的个数

def get_number(char):
    count = 0
    for item in char:
        if 0x4E00 <= ord(item) <= 0x9FA5:
            count += 1
    return count
 

n = input('请输入一串字符串:') 
print(get_number(n))

8.根据标点符号对字符串进行分行

def get_r(n):

lz = n.r('。','\n')

print(lz)

n = input('请输入一串带‘。’的字符串:')

get_replace(n)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值