2015-12-05 4 views
-1

Напишите программу, которая предлагает пользователю ввести целое число и печатает два целых числа, root и pwr, так что 0 < pwr < 6 и root**pwr равно целому числу, введенному пользователем. Если такой пары целых чисел не существует, она должна напечатать сообщение об этом.Может кто-нибудь объяснить этот блок кода Python?

У меня есть ответ на вопрос (через Google), но у меня возникли проблемы с его пониманием, может ли кто-нибудь предложить объяснение строки за строкой кода?

num = int(raw_input('Enter a positive integer: ')) 
pwr = 2 
root = 1 
ans = '' 
while pwr < 6: 
    while root**pwr <= num: 
     if root**pwr == num:  
      print 'the root is ',root, 
      print 'the power is ', pwr 
      ans = True 
     root += 1   
    pwr += 1 
    root = 1 
if ans != True: 
    print'No such pair of integers exist' 

ответ

2

По существу, он имеет 2 петли, в которых он просто пытается все возможные опции, пока эти два числа root и pwr не найдено (перебор).

#get input 
num = int(raw_input('Enter a positive integer: ')) 
#initialize variables 
pwr = 2 
root = 1 
ans = '' 
#exhaustively try each possible exponent from 0 to 6 
while pwr < 6: 
    #exhaustively try each base until overshooting or finding the answer 
    while root**pwr <= num: 
     if root**pwr == num: #found 
      print 'the root is ',root, 
      print 'the power is ', pwr 
      ans = True 
     root += 1 #next base (note that the loop doesn't break, so all possible answers will be printed) 
    pwr += 1 #next exponent 
    root = 1 #reset base or you could immediately overshoot 
if ans != True: #not found 
    print'No such pair of integers exist' 
+0

Большое вам спасибо! У меня был еще один вопрос: почему ans = ''? –

+1

Он просто инициализирует 'ans' значением, которое не оценивается как' True' (я только что протестировал). Хотя лично я бы инициализировал его как «ans = False» только для удобочитаемости/логики. – Arc676

+2

@AmanBhargava, я считаю, потому что нужно сначала инициализировать эту переменную, так как мы обращаемся к ней, когда цикл выходит, но он устанавливается только один раз во время цикла. – ForceBru

Смежные вопросы