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)
相关推荐
前端不太难2 分钟前
RN 项目安全如何强化?(逆向、API安全、JS泄露)
开发语言·javascript·安全
小白学大数据3 分钟前
实时监控 1688 商品价格变化的爬虫系统实现
javascript·爬虫·python
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ4 分钟前
throw new Exception 如何指定返回code
java·开发语言
Darkershadow8 分钟前
Python学习之使用笔记本摄像头截屏
python·opencv·学习
ekprada11 分钟前
Day 40 深度学习训练与测试的规范写法
人工智能·python
fegggye12 分钟前
创建一个rust写的python库
开发语言·后端·rust
全靠bug跑14 分钟前
Spring Cloud Gateway 实战:统一鉴权与用户信息全链路透传
java·开发语言·gateway·拦截器
Blossom.1181 小时前
基于时序大模型+强化学习的虚拟电厂储能调度系统:从负荷预测到收益最大化的实战闭环
运维·人工智能·python·决策树·机器学习·自动化·音视频
往今~1 小时前
Matlab: 绘制GDS图纸
开发语言·matlab
深蓝海拓2 小时前
PySide6从0开始学习的笔记(四)QMainWindow
笔记·python·学习·pyqt