作业
1: 棋盘问题进行升级(软件方向的学生必须做):
某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),
该棋盘中存在了障碍物(数字1),遇到障碍物,棋盘无法正常通过
0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
2 有一对兔子,从出生后的第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)
3、假设用户每次上楼梯只能上一个台阶或者两个台阶,请写一个函数,判断用户到第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}中走法')
4、找出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()
5、写一个方法,计算列表所有偶数下标元素的和(注意返回值)
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)}")
6、判断一个数是否是质数(素数)?该如何声明方法?
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)
7、请使用函数完成选择、冒泡、插入三种排序
'''
冒泡
'''
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)
'''
插入排序
'''
def insert_sort(aList):
n = len(aList)
for i in range(n):
j = i
while j > 0:
if aList[j] < aList[j - 1]:
aList[j], aList[j - 1] = aList[j - 1], aList[j]
j -= 1
if __name__ == "__main__":
li = [54, 26, 93, 17, 77, 31, 44, 55, 20]
print(li)
insert_sort(li)
print(li)
8.根据完整的路径从路径中分离文件路径、文件名及扩展名
ce = 'www.bilibili.com&up主的小日常&app'
cc = ce.split('&')
print(cc)
9.获取字符串中汉字的个数
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))
10.将字母全部转换为大写或小写
def case(n):
nn = n.lower()
print(nn)
n = input('请输入一串大小写不限的字母:')
case(n)
11.根据标点符号对字符串进行分行
def get_replace(n):
mm = n.replace('。','n')
print(mm)
n = input('请输入一串带‘。’的字符串:')
get_replace(n)
12.去掉字符串数组中每个字符串的空格
def delete_space(n):
nn = n.replace(' ','')
print(nn)
n = input('请输入一个带空格的字符串:')
delete_space(n)
13.随意输入你心中想到的一个书名,然后输出它的字符串长度。
str=input() print(len(str))
14.两个学员输入各自最喜欢的游戏名称,判断是否一致,如
果相等,则输出你们俩喜欢相同的游戏;如果不相同,则输
出你们俩喜欢不相同的游戏。
def get_game():
perple1=str(input("请输入游戏:"))
perple2=str(input("请输入游戏:"))
for i in perple1 :
for y in perple2 :
if i == y :
print("游戏一样")
else:
print("游戏不一样")
get_game()
15.上题中两位同学输入 lol和 LOL代表同一游戏,怎么办?
def judge_change():
a = 'LOL'
b = 'lol'
if a.lower() == b and b.upper() == a:
print('无异常')
judge_change()
未完成



