2014-02-13 84 views
0

由于某些原因,此代码不起作用?我已经尝试过返回1并中断,但由于某种原因,它给了我一个错误,我希望代码返回到开头,如果数字太长,但没有理想的如何去做。Python代码不能按预期工作

# Find the cube root of a perfect cube 

x = int(input('Enter an integer: ')) 
if x > 5000: 
    break: 
    print('too long') 
### this code is broken ^^^^^ 



ans = 0 
while ans**3 < x: 
    ans = ans + 1 
if ans**3 != x: 
    print(str(x) + ' is not a perfect cube') 
else: 
    print('Cube root of ' + str(x) + ' is ' + str(ans)) 


IndentationError: unexpected indent 
>>> runfile('/home/dux/pyyyyy.py', wdir=r'/home/dux') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile 
    execfile(filename, namespace) 
    File "/home/dux/pyyyyy.py", line 7 
    print('wrong'): 
       ^
SyntaxError: invalid syntax 
>>> runfile('/home/dux/pyyyyy.py', wdir=r'/home/dux') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile 
    execfile(filename, namespace) 
    File "/home/dux/pyyyyy.py", line 7 
    break: 
     ^
SyntaxError: invalid syntax 
>>> runfile('/home/dux/pyyyyy.py', wdir=r'/home/dux') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile 
    execfile(filename, namespace) 
    File "/home/dux/pyyyyy.py", line 8 
    print('wrong') 
    ^
IndentationError: unexpected indent 
>>> runfile('/home/dux/pyyyyy.py', wdir=r'/home/dux') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 540, in runfile 
    execfile(filename, namespace) 
    File "/home/dux/pyyyyy.py", line 7 
    break: 
     ^
SyntaxError: invalid syntax 
>>> 
+0

你确定你知道[什么'break'确实](http://docs.python.org/2/tutorial/controlflow.html)? – goncalopp

+0

您是否为breakpoint或yield而产生了“break”? – ereOn

回答

0

休息会停止循环。由于你的代码不在循环中,我不明白你为什么要使用它。另外,休息后不需要冒号。只是让你知道我会举一个例子。

count = 0 
while True: 
    print('Hello') #Prints Hello 
    if count == 20: #Checks if count is equal to 20 
     break #If it is: break the loop 
    count += 1 #Add 1 to count 

当然,这可以通过只是做了while count < 20:,但我出点来完成更容易。

编辑:另外,看看你收到的一些其他错误,你不要print也需要冒号。

3

我想你在这里想要的是检查用户是否输入一个有效的数字。尝试:

while True: 
    x = int(input('Enter an integer: ')) 
    if x > 5000: 
     print('too long') 
    else: 
     break