使用while循环输出方块

时间:2017-02-28 19:23:50

标签: python python-3.x

我试图完成输入数字,对于ex 8并让它输出所有的方格,最高为64.所以1,4,9,16,25,36,49,64。我想在不使用指数运算符的情况下执行此操作。我遇到了一个问题,我的循环只是直接跳到64并跳过其他方块。

limit = input('Enter a value for limit: ')
limit = int(limit)
square= (limit)*(limit)
ctr = 1
while ctr <= (limit):
    print(ctr, end=' ')
    ctr = (square) + 1
print("limit =", square )

1 个答案:

答案 0 :(得分:0)

你的计数器(import math #FUnction for calculating area def CalcArea ( a1, b1, c1 ): a = CalcLength (a1, b1) b = CalcLength (a1, c1) c = CalcLength (b1, c1) s = ( a+b+c ) / 2 return math.sqrt( s * (s-a) * (s-b) * (s-c) ) #Function for calculating length of line segment def CalcLength ( a1, b1 ): return math.sqrt( ((b1[0]-a1[0])**2) + ((b1[1]-a1[1])**2) ) #Main function to check if point is inside triangle based on areas def TotalAreaChk ( a, b, c, p ): totalArea = CalcArea( a,b,p ) + CalcArea( a,c,p ) + CalcArea( b,c,p ) TriangleArea = CalcArea( a, b, c ) if totalArea > TriangleArea: print ("The point does not lies inside the triangle") else: print ("The point lies inside the triangle") #Declaring the coords A = ( 1.0, 2.0 ) B = ( 2.0, 2.0 ) C = ( 1.5, 1.5 ) P = ( 1.5, 1.8 ) TotalAreaChk(A, B, C, P) )增量部分是错误的。当你执行ctr时,你所做的更多是第一次迭代本身的限制。例如,假设限制为8,这意味着square为64。

现在你希望你的循环在ctr小于等于限制时运行。

您从ctr = (square) + 1开始,然后在第一次迭代中,将其更新为ctr=1。 这就是问题所在。

根据您的要求,循环计数器应增加1。 因此,您需要将其更改为ctr = 64 + 1ctr = ctr +1

你需要打印ctr * ctr而不是ctr,因为你想要正方形。