Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 29.01.2019
Сообщений: 7

Угадай число

30.01.2019, 07:43. Показов 3590. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем хорошего настроения! я ломлюсь в ряды программёров уже 4-й день фантазия бурная, а вот принять язык машин мой мозг ещё пока не хочет, ну, в общем, я как и все новички, зашедшие в тупик и уставшие от гугломучения, пришёл сюда попрошайничать помощь, да и вообще любую полезную информацию, ибо "я же всё правильно указал, но она не хочет работать так как мне это нужно !"
итак, в двух словах: необходимо, чтобы программа "угадала" число от 1 до 100 загаданное человеком, человек помогает подсказывая больше или меньше, пришёл к выводу что методом исключения будет проще всего добраться до требуемого результата, по задумке, на каждой итерации цикла, ограниченного количеством попыток, программа будет отсекать ненужные числа
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
    import random
    tries = int ()
    tries_limit = 10
    num_list = list ( range ( 1, 101 ) )
    answer = random.choice( num_list )
    while tries < tries_limit:
        tries +=1
        print ( " Попытка № ", tries)
        print ( " Программа предполагает, что это число: ", answer )
        num_choice = input ( " /n Ваш ответ: /n 1 - больше, 2 - меньше, 3 - угадано -->> " )
        if num_choice == '1':
            del num_list [:answer]
            answer = random.choice ( num_list )
            print (num_list)
        elif num_choice == '2':
            del num_list [answer:]
            answer = random.choice ( num_list )
            print (num_list)
        elif num_choice == '3':
            print ( " \n \t \t Алилуйя " )
            print ( " " )
            break
        else:
            break
и ещё не могу докумекать как заставить программу хотя бы не прерываться, а в лучшем случае предлагать повторить игру, имхо нужно задать цикл, в который будет вложена сама вышенаписанная программа, а после завершения вложенных циклов и ввода с клавиатуры пользователем инструкции этого внешнего цикла будут выполняться.
хотя, быть может, для начала и того что есть достаточно)) а запал энтузиазма приберечь на будущие опыты

Добавлено через 11 часов 48 минут
Если всё таки кому то станет интересно: проблемка в коде в том, что он работает, но не всегда.
а именно второе условие, если задать для него параметр в самом начале (точнее самым первым) исполнения, то срабатывает, а если вторым, третьим и т.д. то нет
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2019, 07:43
Ответы с готовыми решениями:

Игра «Угадай число». Программа задает псевдослучайное число из заданного диапазона
Игра «Угадай число». Программа задает псевдослучайное число из заданного диапазона. Диапазон и количество попыток пользователь вводит с ...

Реализовать игру «Угадай число», где в качестве игрока, угадывающего число, выступает компьютер
Игра «Угадай число» Реализовать игру «Угадай число», где в качестве игрока, угадывающего число, выступает компьютер. Дополнительная...

Угадай число
Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет...

5
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
30.01.2019, 09:51
Лучший ответ Сообщение было отмечено mik-a-el как решение

Решение

_Skreper_, а вот так работает (привел к формату PEP8)

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import random
tries = int()
tries_limit = 10
num_list = list(range(1, 101))
answer = random.choice(num_list)
while tries < tries_limit:
    tries += 1
    print (" Попытка № ", tries)
    print (" Программа предполагает, что это число: ", answer)
    num_choice = input(" /n Ваш ответ: /n 1 - больше, 2 - меньше, 3 - угадано -->> ")
    if num_choice == '1':
        del num_list[:answer]
        answer = random.choice(num_list)
        print (num_list)
    elif num_choice == '2':
        del num_list[answer:]
        answer = random.choice(num_list)
        print (num_list)
    elif num_choice == '3':
        print (" \n \t \t Алилуйя ")
        print (" ")
        break
    else:
        break
1
0 / 0 / 1
Регистрация: 17.02.2014
Сообщений: 12
30.01.2019, 12:55
IRIP, Т.е Питон настолько зависим от правил написания кода, что программа может и не рабоать?
0
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
30.01.2019, 13:05
Kitsani, если понять, то становится проще, ведь здесь нет кучи скобочек, точек с запятыми и тому подобного
всего-то нужно форматировать текст, с чем АВТОМАТИЧЕСКИ справляются почти все редакторы

взять тот же wing 101
0
102 / 75 / 38
Регистрация: 08.11.2017
Сообщений: 272
30.01.2019, 14:29
IRIP, но у вас же тоже не PEP8
0
1 / 1 / 0
Регистрация: 29.01.2019
Сообщений: 7
30.01.2019, 14:45  [ТС]
Цитата Сообщение от IRIP Посмотреть сообщение
_Skreper_, а вот так работает (привел к формату PEP8)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import random
tries = int()
tries_limit = 10
num_list = list(range(1, 101))
answer = random.choice(num_list)
while tries < tries_limit:
    tries += 1
    print (" Попытка № ", tries)
    print (" Программа предполагает, что это число: ", answer)
    num_choice = input(" /n Ваш ответ: /n 1 - больше, 2 - меньше, 3 - угадано -->> ")
    if num_choice == '1':
        del num_list[:answer]
        answer = random.choice(num_list)
        print (num_list)
    elif num_choice == '2':
        del num_list[answer:]
        answer = random.choice(num_list)
        print (num_list)
    elif num_choice == '3':
        print (" \n \t \t Алилуйя ")
        print (" ")
        break
    else:
        break
спасибо конечно, хотя бы за толчок, но дело было не в бобине, проблема в двух строках '12' и '16' : del num_list[:answer] то есть оператор del удалял от начала списка до значения индекса которому,в свою очередь, было присвоено значение answer

в общем, с небольшим дополнением, вышел из положения так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
input (" старт программы ")
import random
Play = 'y'
it = 1
input (" запуск цикла Play == 'y' ")
while Play == 'y':
    tries = 1
    tries_limit = 100
    num_list = list (range(1,101))
    answer = ()
    print (" осталось попыток: ", tries_limit - tries)
    while tries < tries_limit:
        print (" \t \t \t  iteration == ", it, " старт ")
        print (" значение answer", answer)
        answer = random.choice(num_list)
        print (" Попытка № ", tries)
        print (" Программа предлагает свой ответ: ", answer)
        num_choice = input (" 1 - больше, 2 - меньше, 3 - угадано -->> ")
        if num_choice == '1':
            print (" \n цикл по 1 условию ")
            print (" \n num_list = ", "[", min(num_list), ",", max(num_list), "]", " до обрезки " )
            i_answer = num_list.index(answer)
            del num_list[:i_answer]
            print (" num_list = ", "[", min(num_list), ",", max(num_list), "]", " после обрезки " )
            print (" значение answer", answer)
            print (" \t \t \t  iteration == ", it, " финиш ")
            it += 1
        elif num_choice == '2':
            print (" \n цикл по 2 условию ")
            print (" num_list = ", "[", min(num_list), ",", max(num_list), "]", " до обрезки " )
            i_answer = num_list.index(answer)
            del num_list[i_answer:]
            print (" num_list = ", "[", min(num_list), ",", max(num_list), "]", " после обрезки " ) 
            print (" значение answer", answer)
            print (" \t \t \t iteration == ", it, " финиш ")
            it += 1
        elif num_choice == '3':
            print (" \n \t \t Алилуйя ")
            print (" ")
            break
        else:
            print (" по условию ELSE ")
            it += 1
            continue
        tries += 1
    Play = input (" Повторим игру? y - да ")
input()
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2019, 14:45
Помогаю со студенческими работами здесь

Угадай число
Надо составить программу,в которой можно будет угадывать числа. Пользователь должен ввести количество попыток и от какого до какого числа...

Угадай число
Здравствуйте. Подскажите, пожалуйста, как можно оптимизировать мою программу по скорости ее выполнения: n=int(input()) ...

Угадай число
Здравствуйте, не могу определиться с ошибкой. Условие Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n....

Угадай число
Задача: Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она...

Угадай число
Составьте программу «Угадай число», но обратный вариант: пусть число загадал человек, а компьютер должен его отгадать за минимальное число...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru