一、判断数字位数并逆序输出
这个问题需要我们从键盘获取一个不多于 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 的基础语法,还学习了一些常用的算法思想和优化技巧:
- 模块的使用:合理利用 Python 内置模块(如
datetime、math、itertools)可以大大提高编程效率。 - 算法优化:在素数判断和完数求解中,通过减少循环次数来优化算法性能,体现了算法优化的重要性。
- 代码健壮性:在处理用户输入时,添加异常处理和输入验证可以增强程序的健壮性和用户体验。