python练习四

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

python 复制代码
def count_binary_ones(n):
    binary_str = bin(n)[2:]  # 转换为二进制字符串,去除前缀'0b'
    print(f"{n} 的二进制为: {binary_str}")
    return binary_str.count('0'), binary_str.count('1')
n = int(input("输入一个数:"))
zeros, ones = count_binary_ones(n)
print(f"这个数的0有: {zeros}个")
print(f"这个数的1有: {ones}个")

  1. 实现一个用户管理系统(要求使用容器保存数据)
    [{name: xxx, pass: xxx, ......},{},{}]
python 复制代码
person_list = []


def show_menu():
    print("=================== 用户管理系统V1.0 ===================")
    print("1. 注册用户")
    print("2. 删除用户")
    print("3. 修改用户信息")
    print("4. 查询用户信息")
    print("5. 显示所有用户信息")
    print("6. 退出")


def add_person():
    name = input("请输入的您的姓名:")
    age = input("请输入的您的年龄:")
    sex = input("请输入的您的性别:")

    person_dict = {"name": name, "age": age, "sex": sex}

    person_list.append(person_dict)
    print("注册成功!")
    print("\n")


def show_all_person():
    for index, person_dict in enumerate(person_list):
        person_no = index + 1
        print("编号: %d 姓名: %s 年龄: %s 性别: %s" % (person_no,
                                                       person_dict["name"],
                                                       person_dict["age"],
                                                       person_dict["sex"]))
    print("\n")


def remove_person():
    person_no = int(input("请输入您要删除用户的编号:"))

    index = person_no - 1

    if 0 <= index < len(person_list):

        person_dict = person_list.pop(index)
        print("%s, 删除成功!" % person_dict["name"])
        print("\n")
    else:
        print("请输入合法的编号!")
        print("\n")

def modify_person():
    person_no = int(input("请输入您要修改用户的编号:"))

    index = person_no - 1

    if 0 <= index < len(person_list):

        modify_person_dict = person_list[index]

        modify_person_dict["name"] = input("请输入您修改后的姓名:")
        modify_person_dict["age"] = input("请输入您修改后的年龄:")
        modify_person_dict["sex"] = input("请输入您修改后的性别:")
        print("修改成功!")
        print("\n")
    else:
        print("请输入您的合法编号!")
        print("\n")
def query_person():
    name = input("请输入要查询用户的姓名:")

    for index, person_dict in enumerate(person_list):
        if person_dict["name"] == name:
            person_no = index + 1

            print("编号: %d 姓名: %s 年龄: %s 性别: %s" % (person_no,
                                                           person_dict["name"],
                                                           person_dict["age"],
                                                           person_dict["sex"]))
            print("\n")
            break
    else:

        print("对不起,您查找的用户信息不存在!")
        print("\n")

def start():
    while True:

        show_menu()

        menu_option = input("请输入您要操作的功能选项:")

        if menu_option == "1":
            print("\n")
            add_person()

        elif menu_option == "2":
            print("\n")
            remove_person()
        elif menu_option == "3":
            print("\n")
            modify_person()
        elif menu_option == "4":
            print("\n")
            query_person()
        elif menu_option == "5":
            print("\n")
            show_all_person()
        elif menu_option == "6":
            print("期待您下次使用~")
            break

start()

  1. 求1~100之间不能被3整除的数之和
python 复制代码
total_sum = 0

for num in range(1, 101):
    if num % 3 != 0:
        total_sum += num

print("1~100之间不能被3整除的数之和为:", total_sum)

  1. 给定一个正整数N,找出1到N(含)之间所有质数的总和
python 复制代码
def is_prime(num):
    if num <= 1:
        return False
    if num <= 3:
        return True
    if num % 2 == 0 or num % 3 == 0:
        return False
    i = 5
    while i * i <= num:
        if num % i == 0 or num % (i + 2) == 0:
            return False
        i += 6
    return True

def sum_of_primes(N):
    total_sum = 0
    for num in range(2, N + 1):
        if is_prime(num):
            total_sum += num
    return total_sum

N = int(input("请输入一个正整数 N:"))
prime_sum = sum_of_primes(N)
print("1 到", N, "之间所有质数的总和为:", prime_sum)

  1. 计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
python 复制代码
pi = 1
f = -1
i = 3
while 1 / i > 1e-6:
    pi = pi + 1 / i * f
    i = i + 2
    f = -f
print("pi=%.6f" % (pi * 4)) 

  1. 给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
python 复制代码
def get_one(arr):
    n = len(arr)
    for i in range(n):
        min_index = i
        for j in range(i + 1, n):
            if arr[j] < arr[min_index]:
                min_index = j
        arr[i], arr[min_index] = arr[min_index], arr[i]

# 示例列表
my_list = [9,5,7,6,3,4,8,15,11]

print("原始列表:", my_list)
get_one(my_list)
print("排序后的列表:", my_list)

  1. 求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
python 复制代码
a = int(input("输入1~9之间的一个数:"))

def get_aa(n):
    sum_result = 0
    temp_a = a  # 保存初始输入的值
    for i in range(6):
        sum_result += temp_a
        temp_a = temp_a * 10 + 2
    return sum_result
sum_result = get_aa(a)
print("sum=", sum_result)

  1. 合并两个有序数组,合并后还是有序列表
python 复制代码
def get_two(arr1, arr2):
    merged_array = []
    i = j = 0

    while i < len(arr1) and j < len(arr2):
        if arr1[i] < arr2[j]:
            merged_array.append(arr1[i])
            i += 1
        else:
            merged_array.append(arr2[j])
            j += 1

    while i < len(arr1):
        merged_array.append(arr1[i])
        i += 1

    while j < len(arr2):
        merged_array.append(arr2[j])
        j += 1

    return merged_array

# 示例数组
arr1 = [1, 3, 5, 7, 9]
arr2 = [2, 4, 6, 8, 10]

merged = get_two(arr1, arr2)
print("arr1:",arr1)
print("arr2:",arr2)
print("合并后的有序列表:", merged)

  1. 给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
python 复制代码
def before(ls=[]):
    '''
    将一个非负整数数组中的所有偶数都放在奇数元素之前
    '''
    for i in range(len(ls)):
        if ls[i] % 2 != 0:
            for j in range(i + 1, len(ls)):
                if ls[j] % 2 == 0:
                    ls[i], ls[j] = ls[j], ls[i]
                    break
    return ls


ls = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(f'原列表为:{ls}')
print(f'将偶数置于奇数前,列表变为:{before(ls)}')
相关推荐
tyler_download5 分钟前
golang 实现比特币内核:实现基于椭圆曲线的数字签名和验证
开发语言·数据库·golang
小小小~6 分钟前
qt5将程序打包并使用
开发语言·qt
hlsd#6 分钟前
go mod 依赖管理
开发语言·后端·golang
哇咔咔哇咔6 分钟前
【科普】conda、virtualenv, venv分别是什么?它们之间有什么区别?
python·conda·virtualenv
小春学渗透7 分钟前
Day107:代码审计-PHP模型开发篇&MVC层&RCE执行&文件对比法&1day分析&0day验证
开发语言·安全·web安全·php·mvc
杜杜的man10 分钟前
【go从零单排】迭代器(Iterators)
开发语言·算法·golang
亦世凡华、11 分钟前
【启程Golang之旅】从零开始构建可扩展的微服务架构
开发语言·经验分享·后端·golang
测试界的酸菜鱼25 分钟前
C# NUnit 框架:高效使用指南
开发语言·c#·log4j
GDAL25 分钟前
lua入门教程 :模块和包
开发语言·junit·lua
李老头探索26 分钟前
Java面试之Java中实现多线程有几种方法
java·开发语言·面试