python题(3)

本文提供了一系列编程题目,包括计算十进制数的二进制表示中0和1的个数,求1~100间非3的倍数之和,找1到N间所有质数的总和,用公式计算PI,对列表进行排序,累加特定序列,合并有序数组,调整数组中偶数和奇数的位置,找出数组中的重复整数,找到特定范围内特定整除条件的数,计算列表偶数下标元素之和,以及实现用户管理系统。这些题目涵盖了基础算法和数据结构的应用。
摘要由CSDN通过智能技术生成

目录

1、求一个十进制的数值的二进制的0、1的个数

 2.求1~100之间不能被3整除的数之和:

 3.、给定一个正整数N,找出1到N(含)之间所有质数的总和 

 4.计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......) 

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

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

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

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

 9.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数 

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

​编辑

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

 12.实现一个用户管理系统(要求使用容器保存数据) [{name: xxx, pass: xxx, ……},{},{}]


1、求一个十进制的数值的二进制的0、1的个数

print("求一个十进制的数值的二进制的0、1的个数 ")
a = int(input('请输入一个整数:'))
n = 0
b = 0
yuan = a
zero = 0
one = 0
ls = []
while a != 0:
	z = a % 2
	ls.append(z)
	a //= 2
	print(z)
	if z == 0:
		zero += 1
	if z == 1:
		one += 1
ls.reverse()
print(ls)
a = str()
for i in ls:
	a += str(i)
print(f"{yuan}的二进制数是{a}")
print(f"1的个数有{one}个")
print(f"0的个数有{zero}个")

0575df1dc12f4ac0b2975773e2b58781.png

 2.求1~100之间不能被3整除的数之和:

print("求1~100之间不能被3整除的数之和")
count = 0
for i in range(1,101):
	if i % 3 != 0:
		count += i
print(count)

b142d354e0614fa0ad927d01f364eb72.png

 3.、给定一个正整数N,找出1到N(含)之间所有质数的总和 

# 给定一个正整数N,找出1到N(含)之间所有质数的总和
def zhishu(x):
	if x > 1:
		flag = True
		for i in range(2,x // 2 + 1):
			if x % i ==0:
				flag = False
				break
		if flag:
			print(f"{x}是质数!")
			return x
		else:
			print(f"{x}不是质数!")
	elif x == 1:
		print("1不是质数")


a = int(input("请输入一个正整数:"))
count = 0
for x in range(1,a + 1):
	if zhishu(x):
		count += x
print(f'1到{a}(含)之间所有质数的总和为:{count}')

01e6249e948a4c02949205bf7001bc67.png

 4.计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......) 

def PI(x):
	count = 0
	n = 0
	for i in range(1,x + 1):
		count += ((-1)**n)*(1/(2 * i -1))
		n +=1
	return count


a = int(input("请输入长度(整数):"))
b = 4 * PI(a)
print(b)

92e6ae9bf8dc4283aba7a915eb4e667c.png

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

def px(ls=[]):
	for i in range(len(ls)):
		xiabiao = i
		for j in range(i + 1,len(ls)):
			if ls[xiabiao] > ls[j]:
				  xiabiao = j	
		ls[xiabiao],ls[i] = ls[i],ls[xiabiao]
	return ls


n = int(input('请输入列表包含的元素个数:'))
ls = []
for i in range(1,n+1):
    elem = input(f'请输入列表1的第{i}个元素:')
    ls.append(elem)
print(f'原列表为:{ls}')
print(f'排序后的列表为:{px(ls)}')

ca4bacaa87af437096e6f8d44b6cabb1.png

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

def  sum(a,n):
	sum = 0
	for i in range(1,n + 1):
		num = int(f"{a}" * i)
		sum += num
	return sum


a = int(input("请输入1~9之间的正整数:"))
n = int(input("请输入项数:"))
print(f'所求和为{sum(a,n)}')

5b4745a118e2486b8340eb021f3f65c1.png

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

def selection_sort(ls=[]):
	for i in range(len(ls)):
		xiabiao = i
		for j in range(i + 1,len(ls)):
			if ls[xiabiao] > ls[j]:
				  xiabiao = j	
		ls[xiabiao],ls[i] = ls[i],ls[xiabiao]
	return ls


n1 = int(input('请输入列表1包含的元素个数:'))
ls1 = []
for i in range(1,n1+1):
    elem = input(f'请输入列表1的第{i}个元素:')
    ls1.append(elem)
n2 = int(input('请输入列表2包含的元素个数:'))
ls2 = []
for i in range(1,n2+1):
    elem = input(f'请输入列表2的第{i}个元素:')
    ls2.append(elem)
print(f'您输入的列表1是:{ls1}')
print(f'您输入的列表2是:{ls2}')
ls1.extend(ls2)
print(f'合并后的有序列表为:{selection_sort(ls1)}')

410d463dc55d455099fc495d7ebb53e5.png

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

def even_before_odd(ls=[]):
	for i in range(len(ls)):
		xiabiao = i
		for j in range(i + 1,len(ls)):
			if int(ls[xiabiao]) % 2 != 0:
				xiabiao = j
		ls[i],ls[xiabiao] = ls[xiabiao],ls[i]		
	return ls


n = int(input('请输入列表包含的元素个数:'))
ls = []
for i in range(1,n+1):
    elem = input(f'请输入列表1的第{i}个元素:')
    ls.append(elem)

print(f'原列表为:{ls}')
print(f'调整后的列表为:{even_before_odd(ls)}')

dbbe58d986a149918cd0ef503b60c6ee.png

 9.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数 

def repeat(ls):
	ls1 = []
	for i in ls:
		if ls.count(i) >= 2:
			ls1.append(i)
	ls2 =[]
	for n in ls1:
		if n not in ls2:
			ls2.append(n)
	return ls2


ls = [1,8,1,9,2,5,8,6,7]
print(ls)
print(f"重复的值有{repeat(ls)}")

fbab2c47d0c44088971a4e9cd43a56c7.png

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

def found(x):
	ls = []
	count = 0
	for i in range(0,x+1):
		if (i % 5 == 0 and i % 6 !=0 ) or (i % 5 != 0 and i % 6 == 0 ):
			ls.append(i)	
			count += 1
	return count,"个",ls
	

x = int(input("请输入一个数:"))
print(f"0到{x}以内能被5或6整除,但不能被两者同时整除的数有{found(x)} ")

00362ce696f1426da78faa41f2edf67c.png

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

def xiabioa_sum(ls=[]):
	count = 0
	for i in range(len(ls)):
		xiabiao = i
		if int(ls[xiabiao]) % 2 == 0:
			count += xiabiao	
	return count


n = int(input('请输入列表包含的元素个数:'))
ls = []
for i in range(1,n+1):
    elem = input(f'请输入列表1的第{i}个元素:')
    ls.append(elem)

print(f"列表所有偶数下标元素的和{xiabioa_sum(ls)}")

29787dc510a34f1aaaceae3f907132e6.png

 12.实现一个用户管理系统(要求使用容器保存数据) [{name: xxx, pass: xxx, ……},{},{}]

users = []
while True:
    print("信息管理系统")
    print(" 1.账号注册")
    print(" 2.账号登录")
    print(" 3.退出系统")
    choice = int(input("请输入您的选择:"))
    if choice == 1:
        while True:
            print('欢迎进入注册界面!')
            a = input('请输入您的账户:')
            b = input('请输入您的密码:')
            if a is None or len(a) == 0:
                print('对不起,用户名不能为空或者长度为0,请重新输入')
                continue
            flag = False
            for d in users:
                if d.get('a') == a:
                    print('对不起,用户名已经存在,请重新输入')
                    flag = True
                    break
            if flag:
                continue
            if len(b) < 3:
                print('密码长度不能小于3,请重新输入')
                continue
            user = {"username": a, "password": b}
            users.append(user)
            print("用户注册成功,请登录")
            print(users)
            break
    elif choice == 2:
        print('欢迎进入登录界面!')
        a = input('请输入您的账户:')
        b = input("请输入您的密码:")
        for user in users:
            if user['username'] == a and user.get('password') == b:
                print('登陆成功')
                break
            else:
                print('登陆失败,请重新输入')
    elif choice == 3:
        exit()
    else:
        print("输入有误。请重新输入!")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值