请帮忙看下这段代码...
number = 1
while number < 13:
print("{0} squared = {1}".format(number, number*number))
我不确定为什么循环在运行时没有结束,有人可以帮忙吗?
请帮忙看下这段代码...
number = 1
while number < 13:
print("{0} squared = {1}".format(number, number*number))
我不确定为什么循环在运行时没有结束,有人可以帮忙吗?
从 python 3.8 开始,您可以使用赋值表达式来修改变量并内联返回新值:
number = 1.01
while number < 13:
print("{} squared = {}".format(number, number := number*number))
顺便说一句,开始1是个坏主意。
您正在运行一个无限循环。一个while循环一直执行,直到给定的条件为真。number 不递增。所以你必须每次都增加它。喜欢:number = number**2
'number' 变量在那个 while 循环中甚至从未改变过。为了真正使“数字”改变值(我假设你每次都想平方它)你需要这样的东西:
number = 1
while number < 13:
print("{0} squared = {1}".format(number, number*number))
number = number * number
# ^ This actually changes the value of 'number' in each loop
(还要注意,如果你从 1 开始,它永远不会上升:1² = 1)
有点不清楚你想在这里实现什么。您是否想要:
你可以这样做Python 3.8
number = 1
while number < 13:
print(f"{number} squared = {((number:=number+1)-1)**2}")
1 squared = 1
2 squared = 4
3 squared = 9
4 squared = 16
5 squared = 25
6 squared = 36
7 squared = 49
8 squared = 64
9 squared = 81
10 squared = 100
11 squared = 121
12 squared = 144
阅读:PEP-572
你的意思:
for number in range(1, 13):
print("{0} squared = {1}".format(number, number*number))
格式化字符串的最新选项是使用f-strings,因此打印行可能是:
print(f"{number} squared = {number*number}")