Python 编程实战:五道经典题目解析与实现

126 阅读3分钟

本文将通过五道常见的编程题目,展示如何使用 Python 解决实际问题,涵盖基础语法、列表操作、字符串处理、字典使用等核心知识点。

题目一:六位数判断与各位数之和

题目描述

输入一个六位数,计算其各位数字之和。若该和在 36 和 45 之间(不包括 36 和 45),则判定为“幸运数字”。

代码实现

while True:
    num_str = input("输入一个六位数:")
    if len(num_str) != 6:
        print("请重新输入")
        continue
    res = sum([int(i) for i in num_str])
    if 36 < res < 45:
        print(f"{num_str}是幸运数字")
    else:
        print(f"{num_str}不是幸运数字")
    break

运行结果

输入一个六位数:234356
234356不是幸运数字

题目二:找出数组中最小的 k 个数

题目描述

给定一个可能包含重复值的数组,找出其中不去重的最小的 k 个数。例如,数组 [4,5,1,6,2,7,3,8] 的最小的 4 个数是 [1,2,3,4]。

代码实现

def num_k(nums, k):
    if k <= 0:
        return []
    sort_nums = sorted(nums)  # 升序排序
    return sort_nums[:k]

# 测试用例
nums = [4,5,1,6,2,7,3,8]
print(num_k(nums, 4))

运行结果

[1, 2, 3, 4]

题目三:统计字符串中各类字符个数

题目描述

输入一行字符串,分别统计其中英文字母、空格、数字和其他字符的个数。

代码实现

s = input("输入字符串:")
num1 = 0  # 英文
num2 = 0  # 空格
num3 = 0  # 数字
num4 = 0  # 其它字符
for char in s:
    if char.isalpha():  # 英文字母
        num1 += 1
    elif char.isspace():  # 空格
        num2 += 1
    elif char.isdigit():  # 数字
        num3 += 1
    else:
        num4 += 1
print(f"英文字母:{num1}个")
print(f"空格:{num2}个")
print(f"数字:{num3}个")
print(f"其它字符:{num4}个")

运行结果

输入字符串:23eee423/
英文字母:3个
空格:0个
数字:5个
其它字符:1个

题目四:寻找数组中出现次数超过一半的数字

题目描述

给定一个长度为 n 的数组,若存在某个数字出现次数超过数组长度的一半,则输出该数字,否则输出 -1。

代码实现

def fun(nums):
    dc = {}  # key:value 数字:次数
    max_num = 0  # 记录最大出现次数 初始化为0
    for num in nums:
        if num not in dc.keys():  # 数字num第一次出现
            dc[num] = 1
        else:
            dc[num] += 1
        if dc[num] > max_num:
            max_num = dc[num]
        if max_num > len(nums) // 2:
            return num

# 测试用例
nums = [1,2,3,2,2,2,5,4,2]
print(fun(nums))

运行结果

2

题目五:两数之和

题目描述

给定一个整数数组 nums 和一个目标值 target,在数组中找出和为目标值的两个整数,并返回它们的下标。

代码实现

def two_num(nums, target):
    df = {}  # 数字:下标
    for i, num in enumerate(nums):
        temp = target - num
        if temp in df:
            return [df[temp], i]
        df[num] = i
    return []  # 没有解

# 测试用例
nums = [2,7,11,15]
target = 9
print(two_num(nums, target))

运行结果

[0, 1]

总结

本文通过五道典型编程题目,展示了 Python 在以下方面的应用:

· 数字处理与条件判断 · 列表排序与切片 · 字符串遍历与字符分类统计 · 字典记录频率与快速查找 · 哈希表优化查找效率