python基础练习题4

目录

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

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

3、求1~100之间不能被3整除的数之和

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

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

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

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

8、合并两个有序数组,合并后还是有序列表

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


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

python 复制代码
num = int(input("num:"))
bin_num = bin(num)
count_0 = 0
count_1 = 0
bin_list_num = list(bin_num[2:])
for i in bin_list_num:
    if int(i) == 0:
        count_0 += 1
    else:
        count_1 += 1
print(f'将{num}转换为二进制为:{bin(num)[2:]}')
print(f'其中0的数量为:{count_0}个')
print(f'其中1的数量为:{count_1}个')

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

python 复制代码
users = []

# 用户类,包含基本信息
class User:
    def __init__(self, name, password, email=None):
        self.name = name
        self.password = password
        self.email = email  # 可选的电子邮件字段

    def __str__(self):
        return f"User(Name: {self.name}, Password: {self.password}, Email: {self.email})"

# 用户管理系统
class UserManager:
    def __init__(self):
        self.users = users  

    def add_user(self, user):
        self.users.append(user.__dict__)
        print(f"User {user.name} added successfully.")

    def get_user(self, name):
        for user_info in self.users:
            if user_info['name'] == name:
                return user_info
        return None

    def list_users(self):
        for user_info in self.users:
            print(user_info)


user_manager = UserManager()

# 添加用户
user1 = User('张三', 'password123')
user2 = User('李四', 'lisi963')
user_manager.add_user(user1)
user_manager.add_user(user2)

# 列出所有用户
print("List of users:")
user_manager.list_users()

# 根据用户名获取用户信息
lisi_info = user_manager.get_user('李四')
if lisi_info:
    print(lisi_info)

3、求1~100之间不能被3整除的数之和

python 复制代码
sum_num = 0
for i in range(1,101):
    if i % 3 != 0:
        print(i)
        sum_num += i
print(sum_num)

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

python 复制代码
n = int(input("int:"))
sum_num = 0
def is_prime(n):
    if n < 2:
        return False
    elif n == 2:
        return True
    else:
        for i in range(2, n):
            if n % i == 0:
                return False
            else:
                return True
            
for i in range(1,n+1):
    if is_prime(i) == True:
        print(i)
        sum_num += i
print("sum_num:",sum_num)

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

python 复制代码
def calculate_pi(iterations):
    pi = 0.0
    for i in range(iterations):
        if i % 2 == 0:
            pi += 1 / (2 * i + 1)
        else:
            pi -= 1 / (2 * i + 1)
    return 4 * pi

pi = calculate_pi(1000)
print(f"pi: {pi}")

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

python 复制代码
def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        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 = [64, 34, 25, 12, 22, 11, 90, 88, 7, 16, 4]
bubble_sort(my_list)
print("Sorted list:")
print(my_list)

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

python 复制代码
def sum_of_series(a, n):
    if not (1 <= a <= 9) or n <= 0:
        print("重新输入")

    sum_i = 0
    current_term = 0
    power_of_ten = 1

    for i in range(n):
        current_term = current_term * 10 + a
        sum_i += current_term
        power_of_ten *= 10

    return sum_i


a = 3  
n = 5  
result = sum_of_series(a, n)
print(f"a + aa + aaa + ... + aaaa (where a={a} and n={n}) is: {result}")

8、合并两个有序数组,合并后还是有序列表

python 复制代码
def merge_sorted_arrays(arr1, arr2):
    merged_array = arr1 + arr2
    merged_array.sort()
    return merged_array

arr1 = [1, 3, 5]
arr2 = [2, 4, 6]

sorted_merged_array = merge_sorted_arrays(arr1, arr2)
print("合并后的排序数组:", sorted_merged_array)

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

python 复制代码
def move(arr):
    index = 0  # 偶数的当前位置

    for num in arr:
        if num % 2 == 0:
            # 将偶数移动到数组的前端
            arr[index], num = num, arr[index]
            # 移动偶数位置指针
            index += 1

    return arr

A = [1, 2, 3, 4, 5, 6, 7, 8]
A = move(A)
print(A)
相关推荐
struggle202544 分钟前
DeepForest开源程序是用于 Airborne RGB 机器学习的 Python 软件包
开发语言·python
杜大哥1 小时前
Python:.py文件如何变成双击可执行的windows程序?(版本1)
开发语言·windows·python
四川兔兔1 小时前
Pytorch 实战四 VGG 网络训练
人工智能·pytorch·python·深度学习·机器学习·回归·vgg网络
猫头虎2 小时前
2025最新Python 100个常用函数在线体验项目
android·java·python·pycharm·django·pandas·pip
学统计的程序员2 小时前
JAVA锁机制:对象锁与类锁
java·开发语言
A.A呐2 小时前
【Linux第四章】gcc、makefile、git、GDB
linux·c语言·开发语言·c++·git
Morpheon2 小时前
使用 R 处理图像
开发语言·计算机视觉·r语言
微信公众号:AI创造财富2 小时前
构建 docket uable to prepar context: path “.“ not found
python·plotly·flask·pillow·ipython·tornado
烛阴2 小时前
Python多进程开发实战:轻松突破GIL瓶颈
前端·python
Bruce_Liuxiaowei2 小时前
Windows核心端口攻防全解析:135、139、445端口的技术内幕与安全实践
windows·网络安全·端口技术