Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 15.05.2019, 15:37   #1
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
Репутация: 10
По умолчанию вопрос по обучению 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 в 16:11.
girevikdolbyak вне форума   Ответить с цитированием
Старый 15.05.2019, 15:42   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,682
Репутация: 2631
По умолчанию

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

я исправил код, но вместо этого теперь программа повторяется бесконечно)
Код:
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 в 16:15.
girevikdolbyak вне форума   Ответить с цитированием
Старый 15.05.2019, 16:15   #4
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,682
Репутация: 2631
По умолчанию

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

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

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

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

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

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

Включаем голову. Вам надо в цикле вызвать функцию, делаем это
Код:
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, 16:43   #9
girevikdolbyak
Новичок
Джуниор
 
Регистрация: 15.05.2019
Сообщений: 5
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


17:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.