我有一个较大的代码,为此我需要解决一个小问题,因此我制作了仅包含该问题的测试脚本。
如何更改打印的内容 4 9 16 25 36 现在它打印 4 4 4 4 4
x = 2
y = x**2
for i in range(5):
print(y)
x += 1
答案 0 :(得分:6)
创建一个函数!
x = 2
def y(x):
return x**2
for i in range(5):
print(y(x))
x += 1
如果您想要更精致,更冗长的内容,但又有点不可读(尽管在这种情况下,由于功能太短,我还是建议您这样做),您也可以使用lambda:
y = lambda x: x**2
这些语句是等效的
答案 1 :(得分:0)
您可以将其包装在列表理解中
x = 2
[(x+i) ** 2 for i in range(5)]
[4, 9, 16, 25, 36]
答案 2 :(得分:0)
我想你想要这样。
x = 2
def Square(x):
y = x ** 2
打印(y)
对于范围(5)中的i:
平方(x)
x + = 1
您使用了数学方程式,但是使y为全局变量。 因此,如果您想每次插入一个值并获得新的结果,则应定义自己的函数。使用已经创建的内容也很好。
我希望无论如何都会有帮助。
答案 3 :(得分:0)
另一种方法可能是:
用两个参数定义一个函数。列表范围的下限和上限。然后返回带有这些数字平方的列表。
def squared(start, upper):
return [n**2 for n in range(start, upper)]
print squared(2, 10)
但是,如果您只需要一个函数来返回给定的输入平方,则:
def squared(x):
return x**2
print squared(10)
答案 4 :(得分:0)
x = 2
for i in range(5):
y = x**2
print(y)
x += 1
说明:您一次只计算了y。根据您的要求,每当x更改时都应进行计算。因此添加为循环。