目录
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("用户名已存在,请重新注册。")returnpassword = input("请输入密码: ")confirm_password = input("请再次输入密码: ")if password != confirm_password:print("两次输入的密码不一致,请重新注册。")returnusers[username] = passwordprint("注册成功!")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("感谢使用,再见!")breakelse:print("无效的选择,请重新输入。")if __name__ == "__main__":main()
2、求50~150之间的质数是那些?
def is_prime(num):if num < 2:return Falsefor i in range(2, int(num ** 0.5) + 1):if num % i == 0:return Falsereturn Truefor 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) - 1for 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_digitsreturn difference % 9 == 0for 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 + 7B = 70000 + num# 检查B是否是A的五倍if B == 5 * A:return numspecial_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] -= 2else:coins.pop() # 如果只剩一个硬币,则拿走它picks += 1 # 记录拿硬币的次数return pickscoin_pile = [10, 8, 5, 3, 27, 99]print(f"最少拿硬币的次数是: {min_picks(coin_pile)}")
7、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
def is_prime(num):if num < 2:return Falsefor i in range(2, int(num ** 0.5) + 1):if num % i == 0:return Falsereturn Truedef 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_primestwin_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 = numreturn max_valuedef find_min(lst):"""找出列表中的最小值"""min_value = lst[0]for num in lst:if num < min_value:min_value = numreturn min_valuedef 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 randomrandom_numbers = [random.randint(0, 10) for i in range(11)]
print(f"随机数列表: {random_numbers}")