你的代码第5行判断时 对n本身少用了一个 int()
方法有两大类,一种用字串,一种用整数
# 用字串做:
n = input()
a = int(n[0])
b = int(n[1])
c = int(n[2])
if a**3 + b**3 + c**3 == int(n): #你对n本身少用了一个 int()
print('yes')
else:
print('no')
# 用整数做:
n = int(input())
a = n//100
b = (n-100*a)//10
c = n%10
if a**3 + b**3 + c**3 == n:
print('yes')
else:
print('no')
这个例子里切片只能对字符串使用, 所以 n = input() 就不要使用eval函数了,会把输入的字符串转换成整数,所以后面就不能再切片了
把eval去掉然后在if的双等号后面添加int转换试试看
n = input()
su = [int(i)**3 for i in n]
print("yes" if sum(su) == int(n) else "no")