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_1
decimal_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 i
return -1
def user_input():
# 创建user_input函数用于添加用户信息
# 创建一个字典存放信息
user_dict = {}
# 接收输入的信息
name = input("请输入你要添加的用户姓名:")
age = input("请输入你要添加的用户年龄:")
sex = input("请输入你要添加的用户性别:")
address = input("请输入你要添加的用户住址:")
# 将接收到的信息传入字典
user_dict["姓名"] = name
user_dict["年龄"] = age
user_dict["性别"] = sex
user_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_change
print("当前用户列表为", 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 False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
def 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=0
y=0
for 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=0
for i in range(1,b+1):
sums=a**i
c+=sums
print("您输入的项为%s"%(b)+",数字为:%s"%(a)+",和为:%s"%(c))
sums()
8、合并两个有序数组,合并后还是有序列表
def merge_sorted_arrays(arr1, arr2):
merged_arr = []
i = 0
j = 0
while i < len(arr1) and j < len(arr2):
if arr1[i] < arr2[j]:
merged_arr.append(arr1[i])
i += 1
else:
merged_arr.append(arr2[j])
j += 1
merged_arr.extend(arr1[i:])
merged_arr.extend(arr2[j:])
return merged_arr
arr1 = 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移动到b
print(f"把盘子从 {a} 移动 {c}") # 移动第n个盘子从a到c
#print(f"Move disk from {a} to {c}")
hanoi(n-1, b, a, c) # 再将n-1个盘子从b移动到c
n = int(input("盘子的数量: "))
#n = int(input("Enter the number of disks: "))
hanoi(n, 'A', 'B', 'C')