Python Forum
need help what is the error here
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
need help what is the error here
#1
i am trying to find the cube root and print
cube=-64
for i in range(abs(cube)+1):
    if i**3 >=abs(cube):
	break
if i**3 !=abs(cube):
	print(cube," is not a perfect cube")
else:
   if  cube<0:
     	i = -i
    print('Cube root of ' + str(cube) + ' is ' + str(cube))
error is line no 4

Error:
C:\Users\solas\Documents>cubert.py File "C:\Users\s\Documents\cubert.py", line 4 passed all potential cube roots ^ SyntaxError: invalid syntax
1)sure there is a syntax error ?
2) here "i" i in range in line no 2 , does it initializes to zero for first iteration.Could you please explain the control how it is passing line by line
Reply
#2
The 'if' statement must have a code block. Perhaps that 'break' statement? If that is the case, the indentation is wrong.
range() starts with 0. In order to start with 1, for example, add it as a second parameter: range(var, 1).

Do you initialize cube with a value of -64? Also, 'i' in line 9?


cube=-64 # ?
for i in range(abs(cube)+1): 
    if i**3 >=abs(cube):
        break

    if i**3 !=abs(cube):
        print(cube," is not a perfect cube")
    else:
    if  cube<0:
        i = -i # ??

    print('Cube root of ' + str(cube) + ' is ' + str(cube))
"As they say in Mexico 'dosvidaniya'. That makes two vidaniyas."
https://freedns.afraid.org
Reply
#3
it worked fine got 201 as answer,dont know what is the error but got output ,maybe like you said indentation

cube = 8120601
for guess in range(abs(cube)+1):
    # passed all potential cube roots
    if guess**3 >= abs(cube):
        # no need to keep searching
        break
if guess**3 != abs(cube):
    print(cube, 'is not a perfect cube')
else:
    if cube < 0:
        guess = -guess
    print('Cube root of ' + str(cube) + ' is ' + str(guess))
Reply


Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020