我试图完成输入数字,对于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 )
答案 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 + 1
或ctr = ctr +1
。
你需要打印ctr * ctr而不是ctr,因为你想要正方形。