python 基础练习题3

目录

1、用户登录注册案例

2、求50~150之间的质数是那些?

3、打印输出标准水仙花数,输出这些水仙花数

4、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

5、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.

6、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]

7、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

8、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

9、将list中的重复数据去重,至少使用两种方案

10、如何将0-10随机存入列表中


1、用户登录注册案例

users = {}

def register():
    username = input("请输入用户名: ")
    if username in users:
        print("用户名已存在,请重新注册。")
        return
    password = input("请输入密码: ")
    confirm_password = input("请再次输入密码: ")
    if password != confirm_password:
        print("两次输入的密码不一致,请重新注册。")
        return
    users[username] = password
    print("注册成功!")

def login():
    username = input("请输入用户名: ")
    password = input("请输入密码: ")
    if username not in users or users[username] != password:
        print("用户名或密码错误,请重试。")
    else:
        print("登录成功!")

def main():
    while True:
        print("\n欢迎使用用户系统")
        print("1. 注册")
        print("2. 登录")
        print("3. 退出")
        choice = input("请选择操作: ")
        if choice == "1":
            register()
        elif choice == "2":
            login()
        elif choice == "3":
            print("感谢使用,再见!")
            break
        else:
            print("无效的选择,请重新输入。")

if __name__ == "__main__":
    main()

 

2、求50~150之间的质数是那些?

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

for number in range(50, 151):
    if is_prime(number):
        print(number)

 

3、打印输出标准水仙花数,输出这些水仙花数

def is_narcissistic(number):
    n = len(str(number))
    return number == sum(int(digit) ** n for digit in str(number))

for n in range(1, 7):  
    start = 10 ** (n - 1)
    end = (10 ** n) - 1
    for number in range(start, end + 1):
        if is_narcissistic(number):
            print(number)

4、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

def sum_of_digits(number):
    return sum(int(digit) for digit in str(number))

def is_divisible_by_nine(number):
    sum_digits = sum_of_digits(number)
    difference = number - sum_digits
    return difference % 9 == 0


for number in range(10, 10000):  
    if not is_divisible_by_nine(number):
        print(f"{number} 未能满足条件。")
        break
else:
    print("所有大于9的整数都满足条件。")

5、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.

def find_special_number():
    for num in range(10000, 100000):
        A = num * 10 + 7
        B = 70000 + num
        # 检查B是否是A的五倍
        if B == 5 * A:
            return num


special_number = find_special_number()
print(f"找到的五位数是: {special_number}")

6、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]

def min_picks(coins):
    coins.sort(reverse=True)
    picks = 0  # 记录拿硬币的次数
    while coins:
        if coins[-1] > 1:
            coins[-1] -= 2
        else:
            coins.pop()  # 如果只剩一个硬币,则拿走它
        picks += 1  # 记录拿硬币的次数
    return picks

coin_pile = [10, 8, 5, 3, 27, 99]

print(f"最少拿硬币的次数是: {min_picks(coin_pile)}")

7、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

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

def find_twin_primes(limit):
    twin_primes = []
    primes = [num for num in range(2, limit) if is_prime(num)]
    for i in range(len(primes) - 1):
        if primes[i + 1] - primes[i] == 2:
            twin_primes.append((primes[i], primes[i + 1]))
    return twin_primes


twin_primes_under_100 = find_twin_primes(100)
print("100以内的所有孪生素数:")
for pair in twin_primes_under_100:
    print(pair)

8、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

def find_max(lst):
    """找出列表中的最大值"""
    max_value = lst[0]
    for num in lst:
        if num > max_value:
            max_value = num
    return max_value

def find_min(lst):
    """找出列表中的最小值"""
    min_value = lst[0]
    for num in lst:
        if num < min_value:
            min_value = num
    return min_value

def calculate_average(lst):
    """计算列表中数值的平均值"""
    return sum(lst) / len(lst)

def calculate_sum(lst):
    """计算列表中数值的总和"""
    return sum(lst)

numbers = [10, 20, 30, 40, 50]


max_value = find_max(numbers)
print(f"最大值: {max_value}")


min_value = find_min(numbers)
print(f"最小值: {min_value}")


average = calculate_average(numbers)
print(f"平均值: {average:.2f}")


total_sum = calculate_sum(numbers)
print(f"总和: {total_sum}")

9、将list中的重复数据去重,至少使用两种方案

方法一:
old_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(old_list))
print(unique_list)

方法二:
old_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(dict.fromkeys(old_list))
print(unique_list)

10、如何将0-10随机存入列表中

import random

random_numbers = [random.randint(0, 10) for i in range(11)]
print(f"随机数列表: {random_numbers}")

相关推荐

  1. python 基础练习题3

    2024-03-17 23:34:03       20 阅读
  2. python 基础练习题

    2024-03-17 23:34:03       14 阅读
  3. python基础练习题4

    2024-03-17 23:34:03       15 阅读
  4. python基础练习题5

    2024-03-17 23:34:03       19 阅读
  5. python基础练习题6

    2024-03-17 23:34:03       15 阅读
  6. python练习3

    2024-03-17 23:34:03       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-17 23:34:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-17 23:34:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-17 23:34:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-17 23:34:03       20 阅读

热门阅读

  1. mvcc介绍

    2024-03-17 23:34:03       19 阅读
  2. Linux内核开发与优化

    2024-03-17 23:34:03       27 阅读
  3. QT 状态机的使用

    2024-03-17 23:34:03       18 阅读
  4. 折半搜索 笔记

    2024-03-17 23:34:03       21 阅读
  5. [小程序开发] 组件生命周期

    2024-03-17 23:34:03       22 阅读
  6. 力扣爆刷第97天之hot100五连刷71-75

    2024-03-17 23:34:03       18 阅读
  7. 克服大型语言模型幻觉使用检索增强生成(RAG)

    2024-03-17 23:34:03       18 阅读
  8. Leetcode 1046. 最后一块石头的重量

    2024-03-17 23:34:03       21 阅读
  9. c# 的ref 和out

    2024-03-17 23:34:03       23 阅读
  10. 安卓UI面试题 45-50

    2024-03-17 23:34:03       19 阅读
  11. bootstrap精选模板tabler下载

    2024-03-17 23:34:03       18 阅读
  12. C#+datax实现定时增量同步

    2024-03-17 23:34:03       23 阅读