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)