python练习杂糅④——常见编程概念和技巧

  1. 求一个十进制的数值的二进制的0、1的个数
    代码呈现:

    def bits(n):
        count_0 = 0
        count_1 = 0
    
        while n:
            if n & 1:
                count_1 += 1
            else:
                count_0 += 1
            n >>= 1
    
        return count_0, count_1
    
    
    decimal_number = int(input("请输入一个十进制数值:"))
    zero, one = bits(decimal_number)
    print(f"二进制中 0 的个数为:{zero}")
    print(f"二进制中 1 的个数为:{one}")

    结果呈现:

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

    def create_user(username, password):
        return {'username': username, 'password': password}
    
    
    def add_user(users, user):
        users.append(user)
    
    
    def find_user_by_username(users, username):
        for user in users:
            if user['username'] == username:
                return user
        return None
    
    
    def main():
        users = []
    
        while True:
            print("1. 登录")
            print("2. 注册")
            print("3. 退出")
            choice = input("请选择操作:")
    
            if choice == '1':
                username = input("请输入用户名:")
                password = input("请输入密码:")
                user = find_user_by_username(users, username)
                if user and user['password'] == password:
                    print("登录成功!")
                else:
                    print("用户名或密码错误!")
            elif choice == '2':
                username = input("请输入用户名:")
                password = input("请输入密码:")
                user = create_user(username, password)
                add_user(users, user)
                print("注册成功!")
            elif choice == '3':
                print("再见!")
                break
            else:
                print("无效的选择,请重新输入。")
    
    
    if __name__ == "__main__":
        main()
    

    结果呈现:

  3. 求1~100之间不能被3整除的数之和
    代码呈现:

    def sums():
        total = 0
        for i in range(1, 101):
            if i % 3 != 0:
                total += i
        return total
    
    
    print("1~100之间不能被3整除的数之和为:", sums())
    

    结果呈现:

  4. 给定一个正整数N,找出1到N(含)之间所有质数的总和
    代码呈现:

    def prime(num):
        if num <= 1:
            return False
        for i in range(2, int(num ** 0.5) + 1):
            if num % i == 0:
                return False
        return True
    
    
    def sum_primes(n):
        total = 0
        for i in range(2, n + 1):
            if prime(i):
                total += i
        return total
    
    
    num = int(input("请输入一个正整数: "))
    result = sum_primes(num)
    print("1到{}之间所有质数的总和为: {}".format(num, result))

    结果呈现:

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

    def pi(n):
        pi = 0
        sign = 1
        for i in range(1, n + 1, 2):
            pi += sign * (1 / i)
            sign *= -1
        return 4 * pi
    
    
    n = int(input("请输入要计算的项数: "))
    approximate_pi = pi(n)
    print("计算得到的π的近似值为:", approximate_pi)

    结果呈现:

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

    def bubble_sort(l):
        n = len(l)
        for i in range(n - 1):
            for j in range(0, n - i - 1):
                if l[j] > l[j + 1]:
                    l[j], l[j + 1] = l[j + 1], l[j]
    
    
    my_list = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    print("排序前的列表:", my_list)
    
    bubble_sort(my_list)
    print("排序后的列表:", my_list)
    

    结果呈现:

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

    def calculate_sum(a, n):
        total = 0
        term = 0
        for i in range(1, n + 1):
            term = term * 10 + a
            total += term
        return total
    
    
    a = int(input("请输入a的值: "))
    n = int(input("请输入项数n: "))
    
    result = calculate_sum(a, n)
    print("结果为:", result)

    结果呈现:

  8. 合并两个有序数组,合并后还是有序列表
    代码呈现:

    def merge_sorted_arrays(arr1, arr2):
        merged_array = arr1 + arr2
        merged_array.sort()
        return merged_array
    
    
    arr1 = list(map(int, input("请输入第一个有序数组(以空格分隔): ").split()))
    arr2 = list(map(int, input("请输入第二个有序数组(以空格分隔): ").split()))
    
    merged = merge_sorted_arrays(arr1, arr2)
    print("合并后的有序数组:", merged)
    

    结果呈现:

  9. 给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
    代码呈现:

    def arr(A):
        return [x for x in A if x % 2 == 0] + [x for x in A if x % 2 != 0]
    
    
    A = list(map(int, input("请输入非负整数数组(以空格分隔): ").split()))
    
    new_arr = arr(A)
    print("排序后的数组:", new_arr)
    

    结果呈现:

  • 15
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值