Python 基础编程小结测试

1.定义一个函数,实现不使用set( ),从列表中删除重复的元素

my_list = [1, 2, 2, 3, 4, 4, 5, 1]


def remove_duplicates(lst):
    """
    从列表中删除重复的元素,返回一个不包含重复元素的新列表。
    不使用 set() 或类似的高级数据结构。

    参数:
    lst -- 输入的列表(可能包含重复元素)

    返回:
    新列表,包含原列表中的所有唯一元素,顺序保持不变。
    """
    unique_list = []  # 创建一个空列表来存储不重复的元素
    for item in lst:  # 遍历原始列表中的每个元素
        if item not in unique_list:  # 检查元素是否已在新列表中
            unique_list.append(item)  # 如果不在,则添加到新列表
    return unique_list  # 返回去重后的列表


# 调用函数
result = remove_duplicates(my_list)
print(result)  # 输出: [1, 2, 3, 4, 5]

2.给一个不多于 5 位的正整数(如 a = 12346),求它是几位数和逆序打印出各位数字

# 获取用户输入
num = input("请输入一个不多于5位的正整数: ")

# 输入验证
if not num.isdigit() or len(num) > 5 or int(num) <= 0:
    # num.isdigit() 检查输入是否全为数字
    # len(num) > 5 检查是否超过5位
    # int(num) <= 0 检查是否为正整数(大于0)
    print("错误:请输入一个不超过5位的正整数!")
else:
    # 计算位数
    length = len(num)  # 直接获取字符串长度即数字位数
    # 逆序打印各位数字
    reversed_digits = num[::-1]  # 使用切片反转字符串,-1表示步长为负1,即从后向前取值

    print(f"该数字是 {length} 位数")
    print("逆序打印各位数字:", "-".join(reversed_digits))
    # 使用 join() 方法以空格分隔逆序数字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值