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 分钟前
Python入门--函数
开发语言·python·青少年编程·pycharm
Fan_web6 分钟前
jQuery——事件委托
开发语言·前端·javascript·css·jquery
龙图:会赢的9 分钟前
[C语言]--编译和链接
c语言·开发语言
小鹿( ﹡ˆoˆ﹡ )23 分钟前
探索IP协议的神秘面纱:Python中的网络通信
python·tcp/ip·php
卷心菜小温38 分钟前
【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
python·深度学习·语言模型·nlp·bug
陈苏同学1 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
唐家小妹1 小时前
介绍一款开源的 Modern GUI PySide6 / PyQt6的使用
python·pyqt
XKSYA(小巢校长)2 小时前
NatGo我的世界联机篇
开发语言·php
羊小猪~~2 小时前
深度学习项目----用LSTM模型预测股价(包含LSTM网络简介,代码数据均可下载)
pytorch·python·rnn·深度学习·机器学习·数据分析·lstm
Cons.W2 小时前
Codeforces Round 975 (Div. 1) C. Tree Pruning
c语言·开发语言·剪枝