Python周节作业

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

1.代码

num = int(input("输入一个十进制数:"))  #输入十进制数
binary_num = bin(num)[2:]  #十进制数转换成二进制
count1 = binary_num.count('0')  #该数在二进制中0的个数
count2 = binary_num.count('1')  #该数在二进制中1的个数
print(f"十进制转换成二进制为:{binary_num}")
print(f"0的个数为:{count1}")
print(f"1的个数为:{count2}")

2.运行结果

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

1.代码

class UserManagementSystem:
    def __init__(self):
        self.users = []

    def add_user(self, name, password):
        for user in self.users:
            if user['name'] == name:
                print(f"用户 {name} 已存在")
                return
        new_user = {'name': name, 'password': password}
        self.users.append(new_user)
        print(f"用户 {name} 添加成功")

    def list_users(self):
        if not self.users:
            print("目前没有用户")
        else:
            for user in self.users: 
                print(f"Name: {user['name']}, Password: {user['password']}")

ums = UserManagementSystem()
ums.add_user('user1', 'pass1')
ums.add_user('user2', 'pass2')
ums.list_users()

2.运行结果

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

1.代码

  

sum_i = 0
for i in range(1, 101):
    if i % 3!= 0:
        sum_i += i
print(sum_i)

2.运行结果

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

1.代码

def isPrime(num):
    if num ==1:
        return False
    for i in range(2, int(num ** 0.5)+1):
        if num % i== 0:
            return False
    return True

N = int(input("输入一个正整数N:"))
sum_Prime = 0
for num in range(1, N+1):
    if isPrime(num):
        sum_Prime += num
print(f"1到N之间所有质数的总和为:{sum_Prime}")

2.运行结果

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

1.代码

n = 1000000  # 调整这个值来控制精度,值越大精度越高
pi = 0
sign = 1
for i in range(1, n * 2, 2):
    pi += sign * (1 / i)
    sign *= -1
pi *= 4
print(f"计算得到的圆周率近似值为:{pi}")

2.运行结果

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

1.代码

def selection_sort(ls=[]):
    
    for i in range(len(ls)):
        index_min = i
        for j in range(i+1,len(ls)):
            if ls[index_min] > ls[j]:
                index_min = j
        ls[index_min],ls[i] = ls[i],ls[index_min]
    return ls
 
ls = [55, 8, 12, 67, 64, 87, 3, 9, 2, 28]
print(f'原列表为:{ls}')
print(f'选择排序法排序后的列表为:{selection_sort(ls)}')

2.运行结果

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

1.代码

def one_sum(a,n):
    
    sum_a = 0
    for i in range(1,n+1):
        num = int(f'{a}'*i)
        sum_a += num
    return sum_a
 
a = int(input('请输入一个在区间[1,9]的正整数:'))
n = int(input('请输入指定的项数:'))
print(f'所求多项式的和为:{one_sum(a,n)}')

2.运行结果

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

1.代码

def selection_sort(ls=[]):

    for i in range(len(ls)):
        index_min = i
        for j in range(i+1,len(ls)):
            if ls[index_min] > ls[j]:
                index_min = j
        ls[index_min],ls[i] = ls[i],ls[index_min]
    return ls
 
ls_1 = [1,3,5,7,9]
ls_2 = [2,4,6,8,10]
print(f'原有序列表1为:{ls_1}')
print(f'原有序列表2为:{ls_2}')
ls_1.extend(ls_2)
print(f'合并后的有序列表为:{selection_sort(ls_1)}')

2.运行结果

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

1.代码

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)}')

2.运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值