Форум сайта python.su
14
unnamed_xd
Раз у тебя такие проблемы, то тебе нужно почитать про алгоритмизацию + попробуй строить блок-схемы перед тем как пишешь код. То есть, делай как учат в (школах, техах, универах), сначала рисуешь блок схему и продумываешь, что тебе надо сделать, а потом уже по этой блок-схеме пишешь код.
В общем учись приводить свои мысли в порядок.
Офлайн
alex925
Какие есть действительно хорошие книги про алгоритмизацию? Я сейчас пробую строить не блок схемы, а как написано в книге, которую читаю: сначала написать “псевдокод”, то есть выстроить и описать последовательность действий программы человеческим языком, грубо говоря создать план последовательностей.
Офлайн
857
unnamed_xdПсевдокод пишется по блок-схеме. Блок-схема строится по словесному описанию. Смысл в том, чтобы на каждом шаге иметь возможность оптимизировать алгоритм до его реализации.
сначала написать “псевдокод”
Офлайн
Сейчас у меня проблема в том, что тяжело читать то, что написал не я. Вот в книге дается пример игры “крестики нолики” и нужно её модифицировать, вроде бы и расписывается что да как работает, а я смотрю на код и понять ничего не могу. Смотрю на функции по отдельности, разбираю их, в итоге понимаю какая функция, что делает. А потом смотрю на общую функцию которая задает последовательность вызова функции и в целом работу программы и понять не могу. То есть не могу сформировать в голове общей картинки происходящего. В общем нужно больше практики и почаще смотреть и разбирать чужие работы.
Офлайн
1
unnamed_xd
То есть не могу сформировать в голове общей картинки происходящего.
Это норм, я думаю.
Офлайн
alekscooper
Как раз с таким подходом сейчас и занимаюсь.
Офлайн
0
unnamed_xd
Вот, как получилось у меня
import random # начальные значения x = 1 y = 100 the_number = random.randint(x, y) tries = 1 print("Привет! Давай поиграем в игру.") print("\nТы загадываешь натуральное число из диапозона от 1 до 100.") print("А я попытаюсь угадать его за наименьшее число попыток.\n") input("Готов?") print("\nИтак, ты загадал число", the_number) guess = input("Я угадал? (Да/Меньше/Больше): ").lower() # цикл отгадывания while guess != "да": if guess == "меньше": y = the_number-1 the_number = random.randint(x, y) print("\nВозможно, ты загадал число", the_number) guess = input("Я угадал? (Да/Меньше/Больше): ").lower() tries += 1 elif guess == "больше": x = the_number+1 the_number = random.randint(x, y) print("\nИли, ты загадал число", the_number) guess = input("Я угадал? (Да/Меньше/Больше): ").lower() tries += 1 else: print("Ну не хочешь играть, как хочешь. Пока!") break if guess == "да": print("\nАй да компьютер! Ай да сукин сын!") print("Угадал число и всего лишь за", tries, "попыток") input("\n\nНажмите Enter, чтобы выйти.")
Офлайн
103
z00t
print("А я попытаюсь угадать его за наименьшее число попыток.\n")
the_number = random.randint(x, y)
Офлайн
0
terabaytСогласен.
противоречат друг другу
Офлайн
103
z00tну эт я понял ))
Но просто хотелось создать иллюзию игры с человеком.
z00t
print(“\nАй да компьютер! Ай да сукин сын!”)
Офлайн