用户登录注册案例
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)