Форум сайта python.su
Здравствуйте, мне нужно написать функцию в которой цеклически подбиралось бы число по определённому условию, когда условие выполнено - выход, запись результата. Вот, что сделал сам:
def delit(f,k,n):
res = 1
e = 2091619
while k:
if res % n == 0:
break
d = res/e
else:
res = f * k + 1
k = k+1
return d
Офлайн
RumatoНалицо непонимание следующих вещей:
Здравствуйте, мне нужно написать функцию в которой цеклически подбиралось бы число по определённому условию, когда условие выполнено - выход, запись результата. Вот, что сделал сам:подскажите где ошибка, заранее спасибоdef delit(f,k,n):
res = 1
e = 2091619
while k:
if res % n == 0:
break
d = res/e
else:
res = f * k + 1
k = k+1
return d
Офлайн
strannik747, я не знаю, сколько Вы потратили на изучение python-а, да и вообще программирования… Но лично я учусь и многое мне не понятно, поэтому создаю такие темы.
Офлайн
RumatoНа изучение питона я потратил около 1/2 года. Это при учете того, что занимаюсь программированием около 15 лет. Поэтому и даю такие ответы :)
strannik747, я не знаю, сколько Вы потратили на изучение python-а, да и вообще программирования… Но лично я учусь и многое мне не понятно, поэтому создаю такие темы.
Офлайн
Для начала break перенесите. У Вас присваивание d = res/e никогда не выполняется из-за этого.
Офлайн
вот смотрите:
def delit(f,n):
res = 1
e = 5
k = 1
while k:
res = f * k + 1
if res%n == 1:
d = res/e
return d
break
else:
k = k + 1
Офлайн
Вопросы
зачем проверка на к (что он не нулевой) в цикле - он же им никогда не станет
зачем после retun d стоит break он тоже никогда не выполнится
else - лишний
Получаем:
def delit(f, n):
res, e, k = 1, 5, 1
while True:
res = f * k + 1
if res%n == 1:
return res/e
k = k + 1
Отредактировано (Апрель 10, 2011 13:05:26)
Офлайн
zheromo на ваши вопросы могу ответить просто - я только начинаю, впредь глупые темы обещаю не создавать,) а за пример спасибо, то что нужно, только всеравно не подбирается, видимо формулу неправильно вывел,))
Офлайн
Помогите пожалуйста, в чём моя ошибка?
Условие задачи: Напишите функцию, рассчитывающую расстояние между двумя точками
на плоскости (координаты (x1, y1) и (x2, y2) даны). Вывести результат в терминал
код:
import math
def coordinate():
x2 = 1; x1 = 2; y2 = 5; y1 = 3;
def distance(coordinate):
k = ((x2-x1)**2 + (y2-y1)**2); #Формула расстояния между двумя точками
math.sqrt(k)
print distance(coordinate);
Терминал пишет ошибку:
ramainen@ramainen:~/проекты$ python prog1.py
Traceback (most recent call last):
File “prog1.py”, line 14, in <module>
print distance(coordinate)
File “prog1.py”, line 11, in distance
k = ((x2-x1)**2 + (y2-y1)**2)
NameError: global name ‘x2’ is not defined <—- Не понимаю, у меня же есть x2
Офлайн
новый вопрос — новая тема.
Офлайн