Python第十天作业

Python第十天作业,第1张

Python第十天作业 Python-10

作业1:
晚上上节课的作业,将用户登录功能扩展
实现登录后:
1、发表文章(标题、内容、缩略内容、发表时间、修改时间、作者)
2、修改自己的文章
3、查看自己的所有文章
4、通过标题,查询自己对应的文章
另外也可以自行扩展(如宠物领养、结婚……)

作业2:给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

def bubble(arr):
	"""冒泡排序"""
	for i in range(len(arr) - 1):
		for j in range(len(arr) - i - 1):
			if arr[j] > arr[j+1]:
				arr[j], arr[j+1] = arr[j+1], arr[j]
	return arr


ls = [1,23,43,2,3,-10,99,-100,11]
ls = bubble(ls)
print(ls)

作业3:求 a+aa+aaa+…+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。

num = input("请输入a:")
count = int(input("请输入项数:"))
def aaa(num,count):
    a = []
    s = 0
    for i in range(1,count+1):
        a.append(num*i)
        s += int(num*i)
    print(f"{s}={'+'.join(a)}")


aaa(num,count)

作业4:合并两个有序数组,合并后还是有序列表

result = []
def hebing(list1,list2):
    while list1 and list2:
        if list1[0] < list2[0]:
            result.append(list1[0])
            list1.remove(list1[0])
        else:
            result.append(list2[0])
            list2.remove(list2[0])
    for i in list2:
        result.append(i)
    result.sort()
    print(result)

list1 = [1,2,3,4,5,6]
list2 = [1,11,111,1111,11111]
hebing(list1,list2)

作业5:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
推荐使用双指针:
[0,8, 2, 1, 5, 4]

def sor(ls):
    odd = []
    even = []
    for i in ls:
        if i%2 ==0:
            even.append(i)
        else:
            odd.append(i)

    even.extend(odd)
    print ("排序后:",even)

ls = [0,8, 2, 1, 5, 4]
print ("排序前:",ls)
sor(ls)

作业6:将10进制数据转换为二进制,并且统计其中的0和1的数量
2021年小米的面试题

def duble1():
 n=input('请输入要查询的数:')
 m=0
 for j in list(bin(int(n))):
  if j=='1':
   m+=1
 print(m)
 duble1()
duble1()

作业7:给定一个数组,已知数组中的元素都是成对出现,
现在数组中只有一个元素没有成对,请找出这个元素。
[1,3,1,2,2,8,8]

nums = [1,3,1,2,2,8,8]
def dan(nums):
    nums_dict={}
    for i in nums:
        nums_dict.setdefault(i,0)
        nums_dict[i]+=1
    for i in nums_dict:
        if nums_dict[i]==1:
            print(f'只出现一次的数字为{i}')



nums = [1,3,1,2,2,8,8]
dan(nums)

作业8:
某个人进入如下一个棋盘中,要求从左上角开始走,最后从右下角出来(要求只能前进,不能后退),
问题:共有多少种走法?

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0


使用动态规划算法

作业9:给定一个数组,已知数组中的元素从1到N的自然数(每次加1),
其中有一个数出现了两次,请找出这个数。

def find_repeat(name_list):
    """
    查找列表中重复的数据
    return: 一个重复数据的列表,列表中字典的key 是重复的数据,value 是重复的次数
    """
    # repeat_list = []
    for i in set(name_list):
        repeat = name_list.count(i) # 查找该数据在原列表中的个数
        if repeat > 1:
            j = dict()
            j[i] = repeat
            repeat_list.append(j)
    return repeat_list
repeat_list = []
ls = [1,2,3,4,5,4,7,8,9,10]

find_repeat(ls)
print(repeat_list)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5443210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存