十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
前两个都封装成了函数。最后一个直接运行的。没有定义函数。
成都创新互联是一家专注于成都网站建设、成都做网站与策划设计,清河网站建设哪家好?成都创新互联做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:清河等地区。清河做网站价格咨询:18982081108
中间那个问题,是因为你忘记做类型转换,你试着运行这个number=int(number)。应该 就对了。
python中,想要表示a的b次方时,有两种方法:
1,math.pow()这个内置函数
2,**运算符
这两种方法效果是一样的,但是当
b为分数,a为负数:当幂运算符的底数为负数、幂为分数时,Python会抛出ValueError: negative number cannot be raised to a fractional power异常,
这时有两种方法可以解决此问题:
1,底数a正负均可不影响你的算法的话,加一个绝对值就行了即abs(a);
2,如果底数a必须是正、或必须是负的话,需要采用复数进行运算。因此凡是遇到幂为分数的项,都将底数用complex()转换为复数。
推荐学习《python教程》。
Python标准库math中用来求幂运算的函数是pow(x,y)
pow(x,y)函数和x**y是等效的,都是计算x的y次方
用法:
import math
print(math.pow(4,2))
Python中幂运算可以使用**表示,Python中三次方可以表示为x**3,即为x的3次方。
**是Python中算术运算符表示幂运算,Python中算术运算符还有加、减、乘、除、取模、取整除。
Python自定义函数在运行时,最初只是存在内存中,只有调用时才会触发运行。
# -*- coding:utf-8 -*-
import math
'''
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。
如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数
'''
n=int(input("请输入自幂数位数:\n"))
if n==1:
print "独身数:"
print "0\t"
elif n==2:
print "两位自幂数:"
print "没有自幂数!"
elif n==3:
print "水仙花数:"
elif n==4:
print "玫瑰花数:"
elif n==5:
print "五角星数:"
elif n==6:
print "六合数:"
elif n==7:
print "北斗七星数:"
elif n==8:
print "八仙数:"
elif n==9:
print "九九重阳数:"
elif n==10:
print "十全十美数:"
else:
print "其它自幂数:"
#定义一数字,从10^(n-1)开始自加,到10^n结束
for i in range(int(math.pow(10,n-1)),int(math.pow(10,n))):
num = 0
for j in str(i):
num += int(math.pow(int(j), n))
if i == num:
print i
运行结果:
请输入您所要查的自幂数位数:
3
水仙花数:
153
370
371
407