Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
介绍使用Python进行计算和编程,循环_Python_Python 2.7 - Fatal编程技术网

介绍使用Python进行计算和编程,循环

介绍使用Python进行计算和编程,循环,python,python-2.7,Python,Python 2.7,我正在研究上面提到的那本书。我在解决一个问题时犯了一个简单的错误 问题是: 编写一个程序,要求用户输入一个整数并打印两个整数,root和pwr,这样0

我正在研究上面提到的那本书。我在解决一个问题时犯了一个简单的错误

问题是:

编写一个程序,要求用户输入一个整数并打印两个整数,
root
pwr
,这样
0
root**pwr
是 等于用户输入的整数。如果没有这样一对整数 存在时,它应该打印一条这样的消息

这就是我的代码:

x = int(raw_input('Enter an Integer:'))
root= int(x**0.5)
for pwr in range (1, 6) :
    if x == root**pwr:
        print 'root=', root
        print 'pwr=', pwr
else:
    print"There's no such pair"
输出为:

>>> 
Enter an Integer:4
root= 2
pwr= 2
There's no such pair
>>> 
错误在于它仍然输出
,即使答案正确,也没有这样的对。我怎样才能解决这个问题呢?

谢谢@jornsharpe

答案如下:

x = int(raw_input('Enter an Integer:'))
root= int(x**0.5)
for pwr in range (1, 6) :
    if x == root**pwr:
        print 'root=', root
        print 'pwr=', pwr
        break

else:
    print 'no such pair'

当您找到解决方案时,您需要
中断
循环,否则循环自然结束,
else
块运行。再见,非常感谢@jornsharpe