Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 7, 2011 08:48:58

Rumato
От:
Зарегистрирован: 2010-10-03
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

Здравствуйте, мне нужно написать функцию в которой цеклически подбиралось бы число по определённому условию, когда условие выполнено - выход, запись результата. Вот, что сделал сам:

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
подскажите где ошибка, заранее спасибо



Офлайн

#2 Апрель 7, 2011 08:59:09

strannik747
От:
Зарегистрирован: 2011-02-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

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
подскажите где ошибка, заранее спасибо
Налицо непонимание следующих вещей:
- что такое поток исполнения
- что такое инициализация переменных
- что такое условный оператор (и зачем в нем break)
- что такое цикл (условие продолжения, инкремент)
- что означают отступы в питоне
- что такое функция и зачем она нужна

Посоветовать можно лишь одно: начните изучение с самых основ и простейших примеров.
Затем разберитесь вот с этим:
http://docs.python.org/tutorial/controlflow.html



Офлайн

#3 Апрель 7, 2011 09:33:45

Rumato
От:
Зарегистрирован: 2010-10-03
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

strannik747, я не знаю, сколько Вы потратили на изучение python-а, да и вообще программирования… Но лично я учусь и многое мне не понятно, поэтому создаю такие темы.



Офлайн

#4 Апрель 7, 2011 11:50:13

strannik747
От:
Зарегистрирован: 2011-02-19
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

Rumato
strannik747, я не знаю, сколько Вы потратили на изучение python-а, да и вообще программирования… Но лично я учусь и многое мне не понятно, поэтому создаю такие темы.
На изучение питона я потратил около 1/2 года. Это при учете того, что занимаюсь программированием около 15 лет. Поэтому и даю такие ответы :)



Офлайн

#5 Апрель 7, 2011 13:04:35

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Функция, цикл, условие

Для начала break перенесите. У Вас присваивание d = res/e никогда не выполняется из-за этого.



Офлайн

#6 Апрель 10, 2011 10:13:05

Rumato
От:
Зарегистрирован: 2010-10-03
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

вот смотрите:

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
программа впринципе-то работает, но параметр res не подбирается, хотя он должен быть найден примерно на 10-й итерации, в чём моя ошибка? (про гугл и умственные спасобности прошу не писать - сам знаю)



Офлайн

#7 Апрель 10, 2011 13:04:47

zheromo
От:
Зарегистрирован: 2010-10-02
Сообщения: 356
Репутация: +  2  -
Профиль   Отправить e-mail  

Функция, цикл, условие

Вопросы
зачем проверка на к (что он не нулевой) в цикле - он же им никогда не станет
зачем после 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)

Офлайн

#8 Апрель 12, 2011 06:50:13

Rumato
От:
Зарегистрирован: 2010-10-03
Сообщения: 93
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

zheromo на ваши вопросы могу ответить просто - я только начинаю, впредь глупые темы обещаю не создавать,) а за пример спасибо, то что нужно, только всеравно не подбирается, видимо формулу неправильно вывел,))



Офлайн

#9 Апрель 14, 2011 19:08:23

ramainen
От:
Зарегистрирован: 2011-04-14
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция, цикл, условие

Помогите пожалуйста, в чём моя ошибка?
Условие задачи: Напишите функцию, рассчитывающую расстояние между двумя точками
на плоскости (координаты (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



Офлайн

#10 Апрель 14, 2011 19:11:11

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Функция, цикл, условие

новый вопрос — новая тема.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version