Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
50 / 37 / 9
Регистрация: 25.06.2014
Сообщений: 406

Список не добавляется в кортеж, который находится в бинарном файле

24.06.2015, 17:42. Показов 810. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выводится только первое введенное имя и список. Остальные игнорируются, но записываются в файл.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def top(file_name,scores):
    """Таблица рекордов"""
    t = open(file_name, "ab+")
    if t:
        top=[]
    else:
        t.close()
        t = open(file_name, "rb")
        g=top
        t.close
        t = open(file_name, "wb")
        top=g
    name = input("Ваше имя?")
    entry = (scores, name)
    top.append(entry)
    top.sort(reverse=True)
    pickle.dump(top, t)
    t.close()
Python
1
2
3
4
5
6
7
8
9
def vivod_top(file_name):
    t=open(file_name, "rb")
    top = pickle.load(t)
    print('Scores')
    print('Name\tScore')
    for entry in top:
        score, name = entry
        print(name, "\t", score)
    t.close()
весь текст программы:
Кликните здесь для просмотра всего текста
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import sys, pickle
 
def open_file(file_name, mode):
    """Открытие файла"""
    try:
        the_file = open(file_name, mode)
    except IOError as e:
        print("Не возможно открыть файл", file_name, "Конец программы.\n", e)
        input("\n\nPress the enter key to exit.")
        sys.exit()
    else:
        return the_file
 
def next_line(the_file):
    """Следующая линия"""
    line = the_file.readline()
    line = line.replace("/", "\n")
    return line
 
def next_block(the_file):
    """Следующий блок"""
    category = next_line(the_file)
    
    question = next_line(the_file)
    
    answers = []
    for i in range(4):
        answers.append(next_line(the_file))
        
    correct = next_line(the_file)
    if correct:
        correct = correct[0]
    store = next_line(the_file)
    if not(store==''):    
        store = int(store)
    
        
    explanation = next_line(the_file) 
 
    return category, question, answers, correct, store, explanation
 
def welcome(title):
    """Приветствие игрока"""
    print("\t\tДобро пожаловать в викторину!\n")
    print("\t\t", title, "\n")
 
def top(file_name,scores):
    """Таблица рекордов"""
    t = open(file_name, "ab+")
    if t:
        top=[]
    else:
        t.close()
        t = open(file_name, "rb")
        g=top
        t.close
        t = open(file_name, "wb")
        top=g
    name = input("Ваше имя?")
    entry = (scores, name)
    top.append(entry)
    top.sort(reverse=True)
    pickle.dump(top, t)
    t.close()
 
def vivod_top(file_name):
    t=open(file_name, "rb")
    top = pickle.load(t)
    print('Scores')
    print('Name\tScore')
    for entry in top:
        score, name = entry
        print(name, "\t", score)
    t.close()
    
def main():
    trivia_file = open_file("trivia.txt", "r")
    title = next_line(trivia_file)
    welcome(title)
    scores = 0
 
    # get first block
    category, question, answers, correct, score, explanation = next_block(trivia_file)
    while category:
        # ask a question
        print(category)
        print(question)
        for i in range(4):
            print("\t", i + 1, "-", answers[i])
 
        # get answer
        answer = input("Ваш ответ: ")
 
        # check answer
        if answer == correct:
            print("\nRight!", end=" ")
            scores += score
        else:
            print("\nWrong.", end=" ")
        print(explanation)
        print("Score:", scores, "\n\n")
        
        # get next block
        category, question, answers, correct, score, explanation = next_block(trivia_file)
    top("top.txt",scores)
    trivia_file.close()
 
    print("Это был последний вопрос!")
    print("Вы набрали", scores,"очков")
    yn=input("Вывсети список рекордов?(y/n)")
    if yn=="y":
        vivod_top("top.txt")
        
main()
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.06.2015, 17:42
Ответы с готовыми решениями:

В бинарном файле F.dat находится матрица действительных четырех байтных чисел A (7,7)
1) Написать функцию, которая возвращает количество цифр в десятичной записи переданного ей целого числа. 2) С бинарного файла F1.dat...

В бинарном файле F.dat находится матрица действительных четырех байтных чисел A (7,7)
1) С бинарного файла F1.dat прочитать матрицу действительных четырех байтных чисел A (7,7). Найти сумму элементов, расположенных под...

Заполнить список [a1, …, an] элементами и сохранить его в бинарном файле
Используя генератор случайных чисел, заполнить список элементами и сохранить его в бинарном файле. Вывести на экран элементы всех заданных...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.06.2015, 17:42
Помогаю со студенческими работами здесь

Как получить в кортеж не в бинарном формате?
Как получить в кортеж не в бинарном формате?/ # 1. Подключить модуль struct import struct # 2. Заданный список разнотипных данных:...

Заменить фон сайта на другой фон, который существует, но который находится в другом файле
Появилась экстренная потребность сделать сайт, самое тело сайта я сделал, но хочется к нему сделать нормальный фон. Сам я javascript не...

Используя генератор случайных чисел, заполнить список элементами и сохранить его в бинарном файле
Используя генератор случайных чисел, заполнить список элементами и сохранить его в бинарном файле. Вывести на экран элементы всех...

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

Вызов в html-странице Vue, который находится в отдельном файле
Здравствуйте! Гуглю, гуглю, но так и не могу найти хорошее объяснение на вопрос, как банально имея html-страницу вызвать код Vue, который я...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru