Python作业6

作业1:给定一个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)
 
 

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

num = input("请输入要相加的数字:")
count = int(input("请输入想加的个数:"))
def wer(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)}")
wer(num,count)
 
 
 
 

3.合并两个有序数组,合并后还是有序列表

result = []
def asd(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]
asd(list1,list2)

4:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前

def sortArray(A:list) -> list:
    reorder = []
    for i in A:
        if i % 2 == 0:
            reorder.append(i)
    for i in A:
        if i % 2 != 0:
            reorder.append(i)
    return reorder
 
print(sortArray([0,8,2,1,5,4]))
 
 
 

5:将10进制数据转换为二进制,并且统计其中的0和1的数量

def duble():
	n=input('请输入终止值:')
	a=[]
	i=1
	while i<=int(n):
		d={}
		b=list(bin(i))
		m=0
		for j in b:
			if j=='1':
				m+=1
		d[i]=m
		a.append(d)
		i+=1
	print(a)
duble()
def duble1():
	n=input('请输入要查询的数:')
	m=0
	for j in list(bin(int(n))):
		if j=='1':
			m+=1
	print(m)
	duble1()
duble1()

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

nums = [1,3,1,2,2,8,8]
def asd(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]
asd(nums)
 
 
 
 

你可能感兴趣的:(python)