Python 日常

作业一:

输入一个大于0的正整数n,如果n == 1 ,则返回1, 如果n是偶数,则返回 n // 2 ,如果n是奇数,则返回 3n + 1,将所有的返回值存放到一个列表中,注意:n是第一个元素,其他的元素根据上述要求生成。最后求返回的列表和列表长度。

n = int(input("输入一个大于0的正整数"))
result = [n]
for _ in range(10000000):
    if n == 1:
        break
    elif n % 2 == 0:
        n = n // 2
    else :
        n = 3 * n + 1
    result.append(n)
print(f"列表为:{result};列表长度为:{len(result)}")

作业二:

猜拳游戏:石头、剪刀、布的游戏

import random
choices = ["石头", "剪刀", "布"]
while True:
    user_choice = input("输入你的选择(石头、剪刀、布)或者输入‘退出’退出游戏:").lower()
    if user_choice == "退出":
        break
    elif user_choice not in choices:
        print("输入错误,请重新输入")
        continue
    computer_choice = random.choice(choices)
    print(f"电脑选择了:{computer_choice}")
    if user_choice == computer_choice:
        print("平局!")
    elif (user_choice == "石头" and computer_choice == "剪刀") or (user_choice == "剪刀" and computer_choice == "布") or (user_choice == "布" and computer_choice == "石头"):
        print("你赢了!")
    else:
        print("你输了!")

作业三:

求50~150之间的质数是那些?存储在列表中

nums = []
for i in range(50, 151):
    is_num = True
    for j in range(2, i):
        if i % j == 0:
            is_num = False
            break
    if is_num:
        nums.append(i)
print(nums)

作业四:

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

for num in range(100, 1000):
    hundreds_digit = num //100
    tens_digit = (num // 10) % 10
    ones_digit = num % 10
    if num == hundreds_digit ** 3 + tens_digit ** 3 + ones_digit ** 3:
        print(num)

作业五:

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

num = 10
while num < 1000000:
    digits_sum = sum(int(digit) for digit in str(num))
    i = num - digits_sum
    if i % 9 ==0:
        print(f"{num} = True")
    else:
        print(f"{num} = False")
    num += 1

作业六:

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

i = 10000
while i < 100000:
    A = 10 * i + 7
    B = 700000 + i
    if B == 5 * A:
        print(i)
        break
    i += 1

作业七:

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

coins = [10, 8, 5, 3, 27, 99]

def min_moves(coin_value):
    return coin_value // 2 + coin_value % 2

total_moves = 0
for coin in coins:
    total_moves += min_moves(coin)

print(total_moves)

作业八:

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

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True
for i in range(2, 100):
    if is_prime(i) and is_prime(i + 2):
        print(f"({i}, {i + 2})")

作业九:

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

def find_max_min_avg_sum(lst):
    if not lst:
        return None, None, 0, 0
    n = len(lst)
    current_max = lst[0]
    current_min = lst[0]
    total_sum = lst[0]
    for num in lst[1:]:
        if num > current_max:
            current_max = num
        if num < current_min:
            current_min = num
        total_sum += num
    average = total_sum / n
    return current_max, current_min, average, total_sum
my_list = [12, 45, 6, 32, 78, 23]
max_value, min_value, avg_value, sum_value = find_max_min_avg_sum(my_list)
print(f"最大值:{max_value}")
print(f"最小值:{min_value}")
print(f"平均值:{avg_value}")
print(f"总和:{sum_value}")

作业十:

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

original_list = [1, 2, 3, 2, 4, 1, 5]
new_list = []
for item in original_list:
    if item not in new_list:
        new_list.append(item)
print(new_list)
original_list = [1, 2, 3, 2, 4, 1, 5]
unique_list = list(set(original_list))
print(unique_list)

作业十一:

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

import random

result = random.sample(range(0, 11), 10)  # 从0 - 10这11个数中取10个不重复的数
print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值