【无标题】python案例解析

文章介绍了Python编程中的用户登录注册功能实现、质数检查、特定数学问题(如水仙花数、孪生数、硬币取法等)、列表操作(如最大值、最小值、平均值、和、去重)以及生成随机数的示例。
摘要由CSDN通过智能技术生成

用户登录注册案例

users = {}  # 存储用户信息的字典

def register():
    print("用户注册")
    while True:
        username = input("请输入用户名: ")
        if username in users:
            print("该用户名已被注册,请尝试其他用户名。")
        else:
            break

    password = input("请输入密码: ")
    users[username] = password
    print("注册成功!")

def login():
    print("用户登录")
    while True:
        username = input("请输入用户名: ")
        password = input("请输入密码: ")
        
        if username in users and users[username] == password:
            print("登录成功!")
            break
        else:
            print("用户名或密码错误。")

def main():
    while True:
        print("1. 用户注册")
        print("2. 用户登录")
        print("3. 退出")
        choice = input("请选择操作: ")

        if choice == "1":
            register()
        elif choice == "2":
            login()
        elif choice == "3":
            break
        else:
            print("无效的选择,请重新输入。")
        print()

# 运行主程序
main()

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

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

prime_numbers = []
for num in range(50, 151):
    if is_prime(num):
        prime_numbers.append(num)

print("50~150之间的质数是:", prime_numbers)

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

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

def print_armstrong_numbers(start, end):
    armstrong_numbers = []
    for num in range(start, end + 1):
        if is_armstrong_number(num):
            armstrong_numbers.append(num)
    print("标准水仙花数:", armstrong_numbers)

print_armstrong_numbers(100, 999)

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

def is_divisible_by_9(number):
    digit_sum = sum(int(digit) for digit in str(number))
    difference = number - digit_sum
    return difference % 9 == 0

# 测试验证
numbers = [15, 28, 123, 456, 7890, 98765]
for num in numbers:
    if is_divisible_by_9(num):
        print(f"{num}满足被9整除的性质")
    else:
        print(f"{num}不满足被9整除的性质")

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

def find_five_digit_number():
    for x in range(10000, 100000):
        A = 10 * x + 7
        B = 7 * 10**5 + x
        if B == 5 * A:
            return x

# 调用函数查找五位数
result = find_five_digit_number()

print("该五位数为:", result)

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

def min_coins(coins):
    n = len(coins)
    dp = [0] * (n + 1)
    dp[1] = coins[0]  # 拿一个硬币的情况
    dp[2] = coins[1]  # 拿两个硬币的情况

    for i in range(3, n + 1):
        dp[i] = min(dp[i - 1], dp[i - 2]) + coins[i - 1]

    return dp[n]

coins = [10, 8, 5, 3, 27, 99]
min_moves = min_coins(coins)
print("最少需要的次数为:", min_moves)

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

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

def find_twin_primes(limit):
    twin_primes = []
    for num in range(2, limit):
        if is_prime(num) and is_prime(num + 2):
            twin_primes.append((num, num + 2))
    return twin_primes

limit = 100
twin_primes = find_twin_primes(limit)

for twin_prime in twin_primes:
    print(twin_prime)

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

def find_max(lst):
    max_val = lst[0]
    for num in lst:
        if num > max_val:
            max_val = num
    return max_val

def find_min(lst):
    min_val = lst[0]
    for num in lst:
        if num < min_val:
            min_val = num
    return min_val

def find_average(lst):
    total = 0
    count = 0
    for num in lst:
        total += num
        count += 1
    if count > 0:
        average = total / count
        return average
    else:
        return None

def find_sum(lst):
    total = 0
    for num in lst:
        total += num
    return total

# 示例列表
my_list = [5, 2, 9, 1, 7, 3]

# 求最大值
max_value = find_max(my_list)
print("最大值:", max_value)

# 求最小值
min_value = find_min(my_list)
print("最小值:", min_value)

# 求平均值
average_value = find_average(my_list)
if average_value is not None:
    print("平均值:", average_value)
else:
    print("列表为空,无法计算平均值")

# 求和
sum_value = find_sum(my_list)
print("求和:", sum_value)

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

方法一:

my_list = [1, 2, 2, 3, 4, 4, 5, 5]
unique_list = list(set(my_list))
print(unique_list)

方法二:

 

my_list = [1, 2, 2, 3, 4, 4, 5, 5]
unique_list = [x for i, x in enumerate(my_list) if x not in my_list[:i]]
print(unique_list)

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

import random

random_list = []
for _ in range(10):
    random_num = random.randint(0, 10)
    random_list.append(random_num)

print(random_list)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值