Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2019, 14:37   #1
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
По умолчанию вопрос по обучению python

всем привет! учу питон, я новичок в программировании и появился вопрос. как правильно помещать циклы в функцию?я попробовал сделать себе такую задачу: компьютер задает вопрос пользователю 5 раз после чего выключается, но что б при вызове функции цикл был многоразовый. я сделал код, но вопрос задается один раз после чего выключается.
Код:
def ans ():
	answer=input("сколько 5+5")
	if answer==5:
		print("ответ правильный")
	else:
		print("ответ неправильный")
	td ()
def td():
	t=0
	while t<5 :
		t=t+1
		if t==5:
			print("")
			
		
ans()
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ

Последний раз редактировалось Serge_Bliznykov; 15.05.2019 в 15:11.
girevikdolbyak вне форума Ответить с цитированием
Старый 15.05.2019, 14:42   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

А вы чего-то другого ожидали? Давайте посмотрим, что у вас в цикле:
Код:
while t<5 :
    t=t+1
if t==5:
    print("")
Вы в цикле поприбавляли 1 к t до 5 и вывели пустую строку. Вы здесь видите что-то о повторе вопросов? Вот и интерпретатор не увидел...
p51x вне форума Ответить с цитированием
Старый 15.05.2019, 15:10   #3
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
По умолчанию

я исправил код, но вместо этого теперь программа повторяется бесконечно)
Код:
def ans ():
	answer=input("сколько 5+5")
	if answer==5:
		print("ответ правильный")
	else:
		print("ответ неправильный")
	td()
	
def td():
	t=0
	while t<5 :
		ans()
		t=t+1
		if t==4:
			print("программа завершена")


			
		
ans()

Последний раз редактировалось girevikdolbyak; 15.05.2019 в 15:15.
girevikdolbyak вне форума Ответить с цитированием
Старый 15.05.2019, 15:15   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Давайте опять посмотрим, что вы написали:
Код:
def ans ():
    ...
    td()

def td():
    t=0
    while t<5 :
        ans()
        t=t+1
   ...
Читаем: вызвать функцию, которая вызывает другую функцую, которая в цикле 5 раз вызывает первую, которая вызывает вторую, которя в цикле ...
p51x вне форума Ответить с цитированием
Старый 15.05.2019, 15:20   #5
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
По умолчанию

t=0
пока т меньше 5:
вызывать ans
прибавлять скаждым вызовом t по1
если т== тому то
вывести то то
girevikdolbyak вне форума Ответить с цитированием
Старый 15.05.2019, 15:23   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Да, только
Цитата:
Сообщение от girevikdolbyak Посмотреть сообщение
вызывать ans
значит опять вызвать первую функцию, которая вызовет вторую и в цикле опять вызвать первую
p51x вне форума Ответить с цитированием
Старый 15.05.2019, 15:25   #7
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
По умолчанию

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

Последний раз редактировалось girevikdolbyak; 15.05.2019 в 15:30.
girevikdolbyak вне форума Ответить с цитированием
Старый 15.05.2019, 15:31   #8
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Включаем голову. Вам надо в цикле вызвать функцию, делаем это
Код:
def ans ():
	answer=input("сколько 5+5")
	if answer==5:
		print("ответ правильный")
	else:
		print("ответ неправильный")
	
def td():
	t=0
	while t<5 :
		ans()
		t=t+1
	
td()
p51x вне форума Ответить с цитированием
Старый 15.05.2019, 15:43   #9
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
По умолчанию

спасибо) не сообразил сделать так
girevikdolbyak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос касаемо Java, Python, Javascript + Web Станислав1995 Свободное общение 2 09.08.2017 23:43
Вопрос по Java и Python ps2xz Свободное общение 5 07.07.2017 17:21
Вопрос по обучению. ArtJava Общие вопросы по Java, Java SE, Kotlin 6 04.07.2016 15:43
Вопрос по функциям Python NeadekWHAT|?| Python 0 05.05.2016 16:40
Советы по обучению Antonio1 Свободное общение 2 22.11.2009 16:45