目录
4、验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
5、一个五位数,若在它的后面写上一个7,得到一个六位数A, 若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此 五位数.
6、有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币 [10, 8, 5, 3, 27, 99]
7、如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".
8、给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
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}")