Напишите программу, которая предлагает пользователю ввести целое число и печатает два целых числа,
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'
Большое вам спасибо! У меня был еще один вопрос: почему ans = ''? –
Он просто инициализирует 'ans' значением, которое не оценивается как' True' (я только что протестировал). Хотя лично я бы инициализировал его как «ans = False» только для удобочитаемости/логики. – Arc676
@AmanBhargava, я считаю, потому что нужно сначала инициализировать эту переменную, так как мы обращаемся к ней, когда цикл выходит, но он устанавливается только один раз во время цикла. – ForceBru