Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 3, 2017 16:40:02

gambrinas13
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам


про range забыл действительно: оно ведь последнее число не включает.
Исправил переменную high на 6, программа все равно продолжает мне предлагать ввести числа, даже если я угадал его.
Сам цикл неправильно составлен? Да и условие 1 задачи я правильно понял. код выполняет поставленную задачу?

Отредактировано gambrinas13 (Июнь 3, 2017 16:40:16)

Офлайн

#2 Июнь 3, 2017 22:50:25

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам

все должно работать если поменять кусок

 while response != number:
    if response > number:
        print("Меньше")
    else:
        print("Больше")
        ask_number("Ваше число:",low,high)
        tries += 1
на тот что я писал
  while response != number:
    if response > number:
        print("Меньше")
    else:
        print("Больше")
    response = ask_number("Ваше число:",low,high)
    tries += 1
и обратите внимание на отступы
response = ask_number(“Ваше число:”,low,high)
tries += 1
должны быть вне блока if else..



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июнь 3, 2017 22:50:56)

Офлайн

#3 Июнь 4, 2017 11:40:39

gambrinas13
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам

PEHDOM
все должно работать если поменять кусок
Благодарю. все теперь работает корректно. Хотелось бы узнать также ваше мнение по первой задаче с шагом.

Офлайн

#4 Июнь 4, 2017 12:14:39

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам

gambrinas13
Хотелось бы узнать также ваше мнение по первой задаче с шагом.
range принимает третьим параметром шаг, range(1,10,2) вернет 1,3,5,7,9



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Июнь 4, 2017 15:27:58

gambrinas13
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам

PEHDOM
Значит мой вариант неверен и указывать шаг нужно было в функции range?

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

import random
number = random.randint(1,5)
tries = 1
low = 1
high = 6

def ask_number(question,low,high):
response = None
while response not in range(low,high,1):
response = int(input(question))
return response

def main():
global tries
response = ask_number("Ваше число:",low,high)
while response != number:
if response > number:
print("Меньше")
else:
print("больше")
ask_number("Ваше число:",low,high)
tries += 1
main()

print("Это действительно",number)
print("Вы затратили",tries,"попыток)
input("\n\nНажмите Enter, чтобы выйти")

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

Офлайн

#6 Июнь 4, 2017 16:25:16

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам

gambrinas13
Значит мой вариант неверен и указывать шаг нужно было в функции range?
нет, ренджу нужно было передать аргумент функции, в задаче стоит “Доработайте функцию ask_numЬer() так, чтобы ее можно было вызывать еще с одним параметром -
кратностью”
 .....
def ask_number(question ,low ,high, step = 1):
.....
     while response not in range(low, high, step):
gambrinas13
Но что-то по-прежнему не так.
у вас response не обновляется, он отаеться таким какой ответ получен первый раз…
 def main():
    global tries          # Глобальная переменная счетчик попыток
    response = ask_number("Ваше число:",low,high) # спрашиваем ответ и помещаем результат в переменную response
    while response != number:  # пока response не равен загаданому числу цикл
        if response > number:    # Если ответ меньше загаданого числа
            print("Меньше")         # пшем Меньше
        else:                            # иначе 
            print("больше")         #  пишем больше
        ask_number("Ваше число:",low,high)  # спрашиваем ответ, результат уходит в страну про@баных переменных
        tries += 1                                         # Увеличиваем счетчик на 1



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#7 Июнь 4, 2017 17:01:01

gambrinas13
Зарегистрирован: 2017-06-01
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

подскажите по 2 простым задачкам

PEHDOM
Огромное спасибо за ваше терпение и помощь. Все работает теперь. Невнимательность сильно подводит конечно.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version