1、求一个十进制的数值的二进制的0、1的个数
def count_0_1_in_binary(decimal_num):binary_str = bin(decimal_num)[2:]count_0 = binary_str.count('0')count_1 = binary_str.count('1')return count_0, count_1decimal_number = int(input("十进制数:"))
zero_count, one_count = count_0_1_in_binary(decimal_number)
print(f"十进制数 {decimal_number} 的二进制表示中有 {zero_count} 个0 和 {one_count} 个1。")
2、实现一个用户管理系统(要求使用容器保存数据) [{name: xxx, pass: xxx, ……},{},{}]
def menu():#创建菜单print("*" * 50)print(" " * 20 + "欢迎使用用户管理系统!")print(" " * 22 + "1:添加用户信息")print(" " * 22 + "2:删除用户信息")print(" " * 22 + "3:修改用户信息")print(" " * 22 + "4:查询用户信息")print(" " * 22 + "5:退出系统")print("*" * 50)def user_find(name):# 创建user_find函数用于查询用户信息for i in user_list:nick_name = i.get("姓名")if nick_name == name:return ireturn -1def user_input():# 创建user_input函数用于添加用户信息# 创建一个字典存放信息user_dict = {}# 接收输入的信息name = input("请输入你要添加的用户姓名:")age = input("请输入你要添加的用户年龄:")sex = input("请输入你要添加的用户性别:")address = input("请输入你要添加的用户住址:")# 将接收到的信息传入字典user_dict["姓名"] = nameuser_dict["年龄"] = ageuser_dict["性别"] = sexuser_dict["住址"] = address# 将字典中的用户信息传入列表user_list.append(user_dict)print("添加成功")# 输出列表print(user_list)def user_delete():# 创建user_delete函数用于删除用户信息# 输入你要删除的用户姓名name = input("请输入你要删除的用户姓名:")# 调用查询函数i = user_find(name)if i != -1:# 在列表中删除该信息user_list.remove(i)print("当前用户列表为", user_list)else:print("用户未找到!")def user_change():# 创建user_change函数用户修改用户信息# 输入你要删除的用户姓名name = input("请输入你要删除的用户姓名:")# 调用查询函数i = user_find(name)if i != -1:user_list_key = input("请输入你要修改的属性:")if user_list_key in ["姓名", "年龄", "性别", "住址"]:new_change = input("请输入新的值:")i[user_list_key] = new_changeprint("当前用户列表为", user_list)else:print("请输入正确的属性!")else:print("用户未找到!")def user_print(i):# 创建user_print函数用户打印用户信息# 调用查询函数i = user_find(user_name)if i != -1:print("用户查询成功!")print("姓名:".format(i.get("姓名")))print("年龄:".format(i.get("年龄")))print("性别:".format(i.get("性别")))print("住址:".format(i.get("住址")))else:print("用户未找到!")user_list = []
while True:menu()num = int(input("请输入你所需要做的操作:(1.增加信息 2.删除信息 3.修改信息 4.查询信息 5.退出系统)"))if num == 1:user_input()elif num == 2:user_delete()elif num == 3:user_change()elif num == 4:user_name = input("请输入你要查找的用户姓名:")user_print(user_name)else:print("感谢使用!祝你生活愉快!")break
else:print("请输入正确的序号:")
3、求1~100之间不能被3整除的数之和
n = 0
for i in range(1, 101):if i % 3 != 0: n += i print("1到100之间不能被3整除的数之和为:", n)
4、给定一个正整数N,找出1到N(含)之间所有质数的总和
import math
def is_prime(n):if n <= 1:return Falsefor i in range(2, int(math.sqrt(n)) + 1):if n % i == 0:return Falsereturn Truedef sum_of_primes_up_to_N(N):return sum(num for num in range(1, N + 1) if is_prime(num))N = int(input("请输入一个正整数 N:"))
sum_of_primes = sum_of_primes_up_to_N(N)
print("1到", N, "之间所有质数的总和为:", sum_of_primes)
5、计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
def sums():x=0y=0for i in range(1,99999999,4):x+=4*(1/i)for i in range (3,99999999,4):y-=4*(1/i)print(x+y)
sums()
6、给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
def bubble_sort(arr):n = len(arr)for i in range(n - 1):for j in range(0, n - i - 1):if arr[j] > arr[j + 1]:arr[j], arr[j + 1] = arr[j + 1], arr[j]my_list = [10, 45, 2, 96, 36, 7, 100, 25, 54, 1 ]
print("排序前的列表:", my_list)
bubble_sort(my_list)
print("排序后的列表:", my_list)
7、求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
def sums():a=int(input("请输入数字:"))b=int(input("请输入项数:"))c=0for i in range(1,b+1):sums=a**ic+=sumsprint("您输入的项为%s"%(b)+",数字为:%s"%(a)+",和为:%s"%(c))
sums()
8、合并两个有序数组,合并后还是有序列表
def merge_sorted_arrays(arr1, arr2):merged_arr = []i = 0j = 0while i < len(arr1) and j < len(arr2):if arr1[i] < arr2[j]:merged_arr.append(arr1[i])i += 1else:merged_arr.append(arr2[j])j += 1merged_arr.extend(arr1[i:])merged_arr.extend(arr2[j:])return merged_arrarr1 = list(map(int , input("请依次输入有序列表1(使用空格隔开):").split(" ")))
arr2 = list(map(int , input("请依次输入有序列表2(使用空格隔开):").split(" ")))print(f"未合并的列表:{arr1},{arr2}")
merged = merge_sorted_arrays(arr1, arr2)
print(f"合并后的列表{merged}")
9、给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
def ls():lsA=[1, 22, 45, 84, 78, 21]lsB=[]lsC=[]for i in lsA:if i%2==0:lsB.append(i)else:lsC.append(i)lsB.extend(lsC)print("该数组中的所有偶数都放在奇数元素之前的元素为:%s"%(lsB))
ls()
10、给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
11、找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
def func():for i in range(10001):if (i % 5 == 0 or i % 6 == 0) and i % 30 != 0:print(i,end = " ")func()
12、写一个方法,计算列表所有偶数下标元素的和(注意返回值)
13、【选做】某个人进入如下一个棋盘中,要求从左上角开始走, 最后从右下角出来(要求只能前进,不能后退), 问题:共有多少种走法?
14、【选做】汉诺塔:
def hanoi(n, a, b, c):if n > 0:hanoi(n-1, a, c, b) # 将n-1个盘子从a移动到bprint(f"把盘子从 {a} 移动 {c}") # 移动第n个盘子从a到c#print(f"Move disk from {a} to {c}")hanoi(n-1, b, a, c) # 再将n-1个盘子从b移动到cn = int(input("盘子的数量: "))
#n = int(input("Enter the number of disks: "))
hanoi(n, 'A', 'B', 'C')