python第四次作业
用户登录注册案例
1.def register(): username = input("请输入用户名:") password = input("请输入密码:") with open("users.txt", "a") as f: f.write(f"{username} {password} ") print("注册成功!") def login(): username = input("请输入用户名:") password = input("请输入密码:") with open("users.txt", "r") as f: for line in f: if line.strip() == f"{username} {password}": print("登录成功!") return print("用户名或密码错误!") while True: operation = input("请选择操作(1. 注册 2. 登录 3. 退出):") if operation == "1": register() elif operation == "2": login() elif operation == "3": break else: print("输入错误,请重新输入!")
2. 求50~150之间的质数是那些?
primes = [] for num in range(50, 151): is_prime = True for i in range(2, int(num ** 0.5) + 1): if num % i == 0: is_prime = False break if is_prime: primes.append(num)
print(primes)
3. 打印输出标准水仙花数,输出这些水仙花数
for num in range(100, 1000): units = num % 10 tens = (num // 10) % 10 hundreds = num // 100 sum_of_cubes = units ** 3 + tens ** 3 + hundreds ** 3 if sum_of_cubes == num: print(num)
4. 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.
for num in range(10, 1000): sum_of_digits = 0 temp = num while temp > 0: sum_of_digits += temp % 10 temp //= 10 difference = num - sum_of_digits if difference % 9 == 0: print(f"{num} 减去它的各位数字之和所得的差 {difference} 能被9整除。") else: print(f"{num} 减去它的各位数字之和所得的差 {difference} 不能被9整除。")
5. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数
for i in range(10000,100000): num = str(i) a = int(num + '7') b = int('7' + num) if b == 5*a: print(i) break
6. 有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
[10, 8, 5, 3, 27, 99]
coins = [10, 8, 5, 3, 27, 99] count = 0 while sum(coins) > 0: max_coin = max(coins) if max_coin <= 2: coins.remove(max_coin) else: coins[0] -= 2 count += 1 print(count)
7. 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数"
import math primes = [] for num in range(2, 101): isPrime = True for i in range(2, int(math.sqrt(num)) + 1): if num % i == 0: isPrime = False break if isPrime: primes.append(num) twin_primes = [] for i in range(len(primes)-1): if primes[i+1] - primes[i] == 2: twin_primes.append([primes[i], primes[i+1]]) print(twin_primes)
8. 给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和
nums = [5,3,6,2,10] max_num = nums[0] for num in nums: if num > max_num: max_num = num print("Max:", max_num) min_num = nums[0] for num in nums: if num < min_num: min_num = num print("Min:", min_num) sum_num = 0 for num in nums: sum_num += num length = len(nums) average = sum_num / length print("Average:", average) sum_num = 0 for num in nums: sum_num += num print("Sum:", sum_num)
9. 将list中的重复数据去重,至少使用两种方案. 如何将0-10随机存入列表中
①
nums = [5,3,6,2,5,10,3] unique_nums = list(set(nums)) print(unique_nums)
②
nums = [5,3,6,2,5,10,3] unique_nums = [] for num in nums: if num not in unique_nums: unique_nums.append(num) print(unique_nums)
③
import random nums = random.sample(range(1,11), 10) print(nums)

浙公网安备 33010602011771号