У меня нет никакого опыта в программировании, и я только начал изучать Python.
В книге Джона Гуттага "Введение в вычисления и программирование с использованием Python с применением для понимания данных", в началеВ главе 3 приведен пример кода:
#Find the cube root of a perfect cube
x = int(input('Enter an integer: '))
ans = 0
while ans**3 < abs(x):
ans = ans + 1
if ans**3 != abs(x):
print(x, 'is not a perfect cube')
else:
if x < 0:
ans = -ans
print('Cube root of ' + str(x) + ' is ' + str(ans))
Что мне трудно понять, так это то, как «если» за пределами «времени» можно получить с того места, где цикл завершился с помощью итерации?Если это из-за последней итерации ans, которая выводит его из цикла, а также удовлетворяет условию if, как условие if работает для значений ans и, следовательно, x внутри цикла? (Ans ^ 3 не равноx только внутри цикла while, как может эта часть работать:
if ans**3 != abs(x):
print(x, 'is not a perfect cube')
Я действительно не знаю, как еще спросить об этом, но это код, который я придумал, прежде чем заглянуть в кодв книге это сработало, и, возможно, это поможет уточнить, что именно я спрашиваю:
x=int(input('Enter an integer: '))
crx=0
while True:
if crx**3<abs(x):
crx=crx+1
elif crx**3==x:
print('The cube root of',x,'is',str(crx)+'.')
break
elif crx**3==-x:
print('The cube root of',x,'is',str(-crx)+'.')
break
else:
print(x,'is not a perfect cube.')
break
По моему мнению, каким-то образом мне пришлось вставить блоки кода if внутри цикла while ...
Заранее спасибо.