О, я тоже новичок в программировании и изучаю Питон по этой книжке. Мне нравится, что там всякие забавные задания надо выполнять. Сейчас с викториной парюсь, что-то не нравится она мне.
Для задачки со случайным списком у меня такой был вариант (но про шуффле пришлось почитать в инетернете, наверное там какое-то другое решение подразумевалось):
words = ["мумми-тролль", "комета", "шляпа", "морра", "ледяная дева", "мю"]
import random
random.shuffle(words)
print(words)
input("\nНажмите Энтер, чтобы выйти")
Задачка про генератор персонажей мне не особо понравилась тем, что получается как бы недоделка без графики и продуманной системы статов (как в играх). Поэтому она у меня без огонька решена)) Но писать генератор довольно просто, нужно взять за пример программу из главы, сделать меню и там одним из пунктов манипуляции с характеристиками. Еще надо бы сделать так, чтоб атрибуты не могли уйти в минус (но мне было лень).
pool = 30
atts = [["Сила", 0], ["Здоровье", 0], ["Мудрость", 0], ["Ловкость", 0]]
a = " "
while a != "0":
a = input('''
0 - выйти
1 - посмотреть характеристики
2 - изменить характеристики\n
''')
if a == "1":
print(atts)
elif a == "2":
b = 8
while b != 5:
print(atts)
print("Свободных очков: " + str(pool) + ".")
b = int(input('''
1 - изменить Силу
2 - изменить Здоровье
3 - изменить Мудрость
4 - изменить Ловкость
5 - назад в меню
'''))
if b == 5:
pass
else:
print("Введите целое число, на которое хотите изменить характеристику.")
print("Если хотите отнять пункты, введите отрицательное число.")
n = int(input())
pool -= n
atts[b - 1][1] += n
elif a!= "1" and a != "2" and a != "0":
print("В меню нет такого варианта.")
input("\nНажмите Энтер, чтобы выйти")
Больше всего из пройденного мне пока что понравилась задачка, где компьютер должен угадать число, которое загадал человек. Тут для более быстрого угадывания нужно всегда делить интервал на два. У меня тут, наверное, немного громоздкие условия, но так уж вышло))
print("Привет, давай поиграем в угадывание числа!\n")
print("Для начала определим интервал.")
a = int(input("Введи число начала интервала: "))
b = int(input("Введи число конца интервала: "))
print("Теперь загадай целое число от", str(a), " до ", str(b) + ", а я буду угадывать.\n")
input("Загадал? Если да, то нажми Enter.\n")
otv = " "
while otv != "ok" and (b - a) > 1:
i = len(range(a, b))
j = int(i / 2)
guess = range(a, b)[j]
print(guess)
otv = input("Попал? 'ok' Больше? 'bol' Меньше? 'men'\n")
if otv == "bol":
b = b
a = guess
elif otv == "men":
a = a
b = guess
while otv != "ok" and (b - a) <= 1 and b != a - 1:
if otv == "bol":
print(b)
otv = input("Попал? 'ok' Больше? 'bol' Меньше? 'men'\n")
elif otv == "men":
print(b - 1)
otv = input("Попал? 'ok' Больше? 'bol' Меньше? 'men'\n")
if otv == "ok":
print("Ах, какой я умный!\n")
else:
print("Да ты мухлюешь!\n")
input("Нажми Enter, чтобы выйти")