此代码用于确定第4次系数为2的数字是否为1。
a = int(input())
terms = 4
result = list(map(lambda x: a ** x, range(terms)))
for i in range(terms):
print(a, "^2 = ", result[i])
if result == 1:
print('True')
else:
print('False')
如果我输入14,这就是结果:
14 ^2 = 1
14 ^2 = 14
14 ^2 = 196
14 ^2 = 2744
False
但我希望它是这样的。
1^2 + 4^2 = 17
1^2 + 7^2 = 50
5^2 + 0^2 = 25
2^2 + 5^2 = 29
False
试试这个:
a = str(int(input()))
def split_and_print(a):
x = [int(y) for y in list(str(a))]
return sum([y**2 for y in x])
def split_sum_print(a):
a_split = list(str(a))
print(' + '.join([x+'^2' for x in a])+ ' = '+str(split_and_print(a)))
return str(split_and_print(a))
n = 4
for i in range(n):
a = split_sum_print(a)
if a == '1':
print(True)
else:
print(False)
输出:
14
1^2 + 4^2 = 17
1^2 + 7^2 = 50
5^2 + 0^2 = 25
2^2 + 5^2 = 29
False
我做了两个功能,一个负责计算,另一个负责打印。然后将它们组合并使用for
循环。针对不同的迭代次数更改n
。
首先,a = str(int(input()))
似乎完全没有必要,因为input()
自己返回字符串。
其次,再次将其强制转换为字符串... in str(a):
(同样是不必要的)。
第三,您正在对某个字符串(在本例中为a
)进行迭代,这将产生一个单字符流,但您的代码编写时就好像您期望的是元组一样。。。?
例如
for char in "abc":
print(char)
将打印
a
b
c
您基本上拥有的东西
for a, b in "abc":
print(a, b)
这里应该发生什么?
你希望你的代码会发生什么?