Python 编程实战:从基础语法到算法实现 (2)

32 阅读2分钟

一、判断数字位数并逆序输出

这个问题需要我们从键盘获取一个不多于 5 位的正整数,然后判断它的位数并将其逆序输出。

while True:
    try:
        num = int(input("输入一个不多于5位的正整数:"))
        if num <= 0:
            print("请输入正整数!")
            continue
        num_str = str(num)
        if len(num_str) > 5:
            print("输入的位数不对,请重新输入")
        else:
            print(num, "的位数为:", len(num_str))
            print(num, "的逆序输出为", num_str[::-1])
            break
    except ValueError:
        print("请输入有效的整数!")

二、计算 1、2、3、4 组成的不重复三位数

给定数字 1、2、3、4,要求计算能组成多少个各数位数字不重复的三位数。

result = []
# 百位
for a in range(1, 5):
    # 十位
    for b in range(1, 5):
        if a == b:
            continue
        # 个位
        for c in range(1, 5):
            if c != a and c != b:
                number = a * 100 + b * 10 + c
                result.append(number)
                count += 1
print(f"有4个数字:1、2、3、4,其能组成{count}组三位数")
print("结果为:", result)
from itertools import permutations

# 生成从4个数字中选3个的排列
perms = permutations([1, 2, 3, 4], 3)
result = []
for p in perms:
    number = p[0] * 100 + p[1] * 10 + p[2]
    result.append(number)
count = len(result)
print(f"有4个数字:1、2、3、4,其能组成{count}组三位数")
print("结果为:", result)

总结

通过以上几个编程实例,我们不仅巩固了 Python 的基础语法,还学习了一些常用的算法思想和优化技巧:

  1. 模块的使用:合理利用 Python 内置模块(如datetimemathitertools)可以大大提高编程效率。
  2. 算法优化:在素数判断和完数求解中,通过减少循环次数来优化算法性能,体现了算法优化的重要性。
  3. 代码健壮性:在处理用户输入时,添加异常处理和输入验证可以增强程序的健壮性和用户体验。