Python基础复习案例4:阿姆斯特朗数以及python代码缩进管理
程序员文章站
2022-06-01 11:34:35
...
昨天完成了阿姆斯特朗数的设计,但是进行问答循环时候发生代码缩进问题。今天终于解决了。分享给大家参考。
复习的python基础知识参考如下:
- for,while 循环
- 数值类型转换
- 如何获取数字的位数(巧用len()函数)
- 如何获取某个数特定位置的数字
- range函数的+/- 步进利用
- 加法和减法赋值运算符
- 基本输入输出
- if 条件控制
- exit()程序退出使用
- 最重要一点:python 缩进管
其中第十条,体会深刻。大家可以参考下我的百度提问。
另外建议小白学习另一篇博文。
回到正题,代码分享如下:
# 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 + 5^3 + 3^3 = 153。
# 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。
def Armstrongnumber(num):
for i in range(1,num+1):
n=len(str(i)) # 获取该数字的位数
sum=0
flag=i
if i<10:
sum=i**1
if sum==i:
print(i)
else:
for j in range(n,0,-1): # 从最高位开始进行循环获取每位数的n次方
div=10**(j-1) # 获取对应位数的分位值(即10,100,1000)
k=flag//div # 获取对应位的数字
m=k**n # 获取对应位的数字的n次方
sum+=m # 获取对应位的数字的n次方
flag-=k*div
if sum==i:
print(i)
while True :
while True:# 判断输入是否数字,并处理异常
n=input('请输入您需要显示的阿姆斯特朗数的目标范围:1~ ? \n')
try:
f = float(n)
break
except ValueError:
print("您输入的不是正整数!")
if int(n)<0:
print("您输入的不是正整数!")
continue
Armstrongnumber(int(n))
while True:
Q=input('请问主人是否重新显示目标范围内的阿姆斯特朗数:Y / N ? \n')
if Q=='Y' or Q=='y':
break
elif Q=='N' or Q=='n':
exit()
else:
print('您输入的不是 Y/N !')
上一篇: 内部类详解————静态嵌套类
下一篇: Java嵌套类