С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Python Как записать цикл в одну строку Добрый день! Начала изучать Python недавно, подскажите пожалуйста - как с помощью while решить данную задачу: Для 6 человек дано их общее число постов и общее число лайков, которые они получили. Посчитайте сколько лайков набирает пост данного человека с помощью while. posts = likes = https://www.cyberforum.ru/ python-beginners/ thread2582746.html Python Форматирование файла
Помогите с алгоритмом форматирования текста. Ниже условие, код и текст. Заранее спасибо: Программа принимает на вход высоту, ширину (--frame-height, --frame-width) блока в символах и имя файла, а на выходе выводит содержимое (начальную часть) файла которое помещается в указанные размеры. Если строка не умещается по длине, то ее нужно перенести. Вся логика форматирования должна быть...
Python Failed to execute script main https://www.cyberforum.ru/ python-beginners/ thread2582719.html
Сделал программку, попробовал перевести в .exe Выдаёт ошибку при открытии значка. Failed to execute script main Бывало ли у кого-нибудь это? Можете сказать как это исправить? (main это название кода)
Python Найти одинаковые элементы в списке и возвратить их индекс https://www.cyberforum.ru/ python-beginners/ thread2582697.html
Есть список s = пройтись по списку и вывести индексы повторяющихся элементов то есть и
Генератор декораторов Python
Напишите генератор декораторов check_password, т. е. функцию, которая возвращает декоратор. Генератор декораторов принимает в качестве параметра пароль, и получившийся декоратор должен закрыть функцию этим паролем. Декоратор будет применяться следующим образом: @check_password(’password’) make_burger(typeOfMeat, withOnion=False, withTomato=True): # ... Т.е при определении функции...
Python Почему нету голоса у голосового ассистента? https://www.cyberforum.ru/ python-beginners/ thread2582547.html
Начал делать своего голосового ассистента, получилось это import speech_recognition as sr import os import sys import webbrowser import pyttsx3 import pyaudio # Функция, позволяющая проговаривать слова # Принимает параметр "Слова" и прогроваривает их
Python Автокликер Здравствуйте, я хочу написать автокликер для игры. Я использую pyautogui. Но насколько я понял - игра блокирует нажатия клавиш сторонними приложениями. Вот код, который я тестировал: import pyautogui, time print('До старта осталось: ') for i in range(0, 3): print(3 - i) time.sleep(1) print('START') https://www.cyberforum.ru/ python-beginners/ thread2582366.html Загрузить данные из Excel в dataset keras Python
Ребята, здравствуйте! Подскажите пожалуйста из-за чего часть данных из Excel могут определяться как "None"? А часть данных норм. В Excel убрал все формулы, перевел в числовой формат, но все равно Вот как пытаюсь сделать: from keras.datasets import boston_housing from keras.models import Sequential from keras.layers import Dense
Python Метроном с потоками https://www.cyberforum.ru/ python-beginners/ thread2582281.html
Добрый вечер. Преподу нужен метроном. Пытался разобраться в потоках, ничего не понял, все функции уже прописаны. Но как их запустить в потоке не знаю. Заранее спасибо за помощь. from threading import Thread from tkinter import * import winsound import time window = Tk() window.title("Metronome")
Python Функция filter() https://www.cyberforum.ru/ python-beginners/ thread2582233.html
print(list(filter(lambda x: x % 2, ))) функция выводит: Подскажите, что не так, как исправить?
Как использовать if/else или try/except чтобы игнорировать ошибки ? Python
Приветствую всех ! У меня есть скрипт ( работает на Python 2.7): import sys a=0 b=7 p=0xB12D x2=0x38F
Python Задача Шнурки https://www.cyberforum.ru/ python-beginners/ thread2582155.html
Вот задача:Обувная фабрика собирается начать выпуск элитной модели ботинок. Дырочки для шнуровки будут расположены в два ряда, расстояние между рядами равно a, а расстояние между дырочками в ряду b. Количество дырочек в каждом ряду равно N. Шнуровка должна происходить элитным способом “наверх, по горизонтали в другой ряд, наверх, по горизонтали и т.д.” (см. рисунок). Кроме того, чтобы шнурки...
Модератор
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
11.02.2020, 19:21 0

Телефонная книга - Python - Ответ 14245523

11.02.2020, 19:21. Показов 4623. Ответов 6
Метки (Все метки)

Ответ

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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
# файл *.pyw (расширение .pyw необходимо для подавления окна DOS)
 
from tkinter import *
import shelve
 
 
class PhoneBook:
    def __init__(self, nameBook, dicRec={}):
        self.nameBook = nameBook
        self.dicRec = dicRec
 
    def loadBook(self):
        db = shelve.open(self.nameBook)
        self.dicRec = dict(db.items())
        db.close()
 
    def saveBook(self):
        db = shelve.open(self.nameBook)
        for (key, record) in self.dicRec.items():
            db[key] = record
        db.close()
 
 
class PhoneRec:
    def __init__(self, keyRec, char, label, phone, familyName, comment, delR=''):
        self.keyRec = keyRec
        self.char = char
        self.label = label
        self.phone = phone
        self.familyName = familyName
        self.comment = comment
        self.delR = delR
 
 
fieldnamesRec = ('keyRec', 'char', 'label', 'phone', 'familyName', 'comment', 'delR')
activCh = 'А'
dicRem = {}
 
 
def makeWidgets():
    global entriesRec, entRec
    entRec = {}
    window = Tk()
    window.title('Телефоны')
    window.geometry('1260x600+0+0')
    form1 = Frame(window)
    form1.pack()
    alph = ["А", "Б", "В", "Г", "Д", "Е", "Ж", "З", "И", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т",
            "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Э", "Ю", "Я"]
    for i in range(len(alph)):
        Button(form1, text=alph[i], command=(lambda x=alph[i]: fetchChr(x))).pack(side=LEFT)
    ent = Entry(form1, width=27)
    ent.pack(side=LEFT)
    entRec['entFind'] = ent
    Button(form1, text="Поиск", command=fetchFind).pack(side=LEFT)
 
    form2 = Frame(window)
    form2.pack()
    entriesRec = {}
    for (ix, label) in enumerate(fieldnamesRec):
        lab = Label(form2, text=label)
        lab.grid(row=2, column=ix)
    for i in range(1, 26):
        for (ix, label) in enumerate(fieldnamesRec):
            if label == 'keyRec' or label == 'char' or label == 'delR':
                ent = Entry(form2, state='normal', width=6)
            else:
                ent = Entry(form2, width=40)
            ent.grid(row=i + 2, column=ix)
            entriesRec[label + str(i)] = ent
    form3 = Frame(window)
    form3.pack()
    Button(window, text="Следующая страница", command=fetchNext).pack()
    Label(window, text='      ', width=10).pack(side=LEFT)
    labKeyRec = Label(window, text='keyRec').pack(side=LEFT)
    ent = Entry(window, width=10)
    ent.pack(side=LEFT)
    entRec['entKeyRec'] = ent
    Button(window, text="Удалить", command=delKeyRec).pack(side=LEFT)
    Label(window, text='      ', width=20).pack(side=LEFT)
    btns = Button(window, text="Сохранить страницу", command=saveRec).pack(side=LEFT)
    Label(window, text='      ', width=40).pack(side=LEFT)
    Label(window, text='      ', width=10).pack(side=LEFT)
    Button(window, text="Выход", command=lambda: window.destroy()).pack(side=LEFT)
    return window
 
 
def clear_sheet():
    for i in range(1, 26):
        for field in fieldnamesRec:
            if field == 'keyRec' or field == 'delR':
                entriesRec[field + str(i)].config(state='normal')
                entriesRec[field + str(i)].delete(0, END)
                entriesRec[field + str(i)].config(state='readonly')
            else:
                entriesRec[field + str(i)].delete(0, END)
 
 
def fetchChr(ch):
    global activCh
    activCh = ch
    dicRecChr = {}
    for key in t1.dicRec.keys():
        if t1.dicRec[key].char == ch:
            dicRecChr[key] = t1.dicRec[key]
    fetch(dicRecChr)
 
 
def fetch(dicR):
    global dicRem
    clear_sheet()
    count = 1
    dicRe = dicR.copy()
    while count <= 25 and len(dicRe):
        for key in dicR.keys():
            record = dicR[key]
            for field in fieldnamesRec:
                if field == 'keyRec' or field == 'delR':
                    entriesRec[field + str(count)].config(state='normal')
                    entriesRec[field + str(count)].insert(0, getattr(record, field))
                    entriesRec[field + str(count)].config(state='readonly')
                else:
                    entriesRec[field + str(count)].insert(0, getattr(record, field))
            count += 1
            dicRe.pop(key)
            if count > 25:
                break
    dicRem = dicRe.copy()
 
 
def fetchNext():
    fetch(dicRem)
 
 
def delKeyRec():
    # физическое удаление из базы данных
    key = entRec['entKeyRec'].get()
    del t1.dicRec[key]
    db = shelve.open(t1.nameBook)
    del db[key]
    db.close()
    for i in range(1, 26):
        if entriesRec['keyRec' + str(i)].get() == key:
            entriesRec['delR' + str(i)].config(state='normal')
            entriesRec['delR' + str(i)].insert(0, 'у')
            entriesRec['delR' + str(i)].config(state='readonly')
    entRec['entKeyRec'].delete(0, END)
    # пометить как удаленную
 
 
#    key = entRec['entKeyRec'].get()
#    record = t1.dicRec[key]
#    setattr(record, 'delR', 'у')
#    print(t1.dicRec[key].delR)
#    entRec['entKeyRec'].delete(0, END)
def fetchFind():
    clear_sheet()
    strF = entRec['entFind'].get()
    dicFind = {}
    for key in t1.dicRec.keys():
        record = t1.dicRec[key]
        for field in fieldnamesRec:
            if (field != 'keyRec' and field != 'char' and field != 'delR' and
                    getattr(record, field).find(strF) != -1):
                dicFind[key] = record
                break
    fetch(dicFind)
 
 
def saveRec():
    for i in range(1, 26):
        key = entriesRec['keyRec' + str(i)].get()
        if entriesRec['delR' + str(i)].get() == 'у':
            continue
        elif key:
            record = t1.dicRec[key]
            for field in fieldnamesRec:
                setattr(record, field, entriesRec[field + str(i)].get())
            t1.dicRec[key] = record
        else:
            existRec = False
            for field in fieldnamesRec:
                if entriesRec[field + str(i)].get(): existRec = True  # Если существует запись в поле на этой строке
            if existRec:
                if entriesRec['char' + str(i)].get():
                    char = entriesRec['char' + str(i)].get()
                else:
                    char = activCh
                label = entriesRec['label' + str(i)].get()
                phone = entriesRec['phone' + str(i)].get()
                familyName = entriesRec['familyName' + str(i)].get()
                comment = entriesRec['comment' + str(i)].get()
                if len(t1.dicRec) > 0:
                    L = sorted(t1.dicRec.items(), key=lambda item: int(item[0]))
                    keyRec = str(int(L[-1][0]) + 1)
                else:
                    keyRec = "1"
                record = PhoneRec(keyRec, char, label, phone, familyName, comment)
                t1.dicRec[keyRec] = record
    t1.saveBook()
    fetchChr(activCh)
 
 
if __name__ == '__main__':
    t1 = PhoneBook("Телефоны")
    t1.loadBook()
 
    window = makeWidgets()
    window.mainloop()


Вернуться к обсуждению:
Телефонная книга Python
0
Заказать работу у эксперта
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2020, 19:21
Готовые ответы и решения:

Телефонная книга
Здравствуйте уважаемые, прошу вашей помощи,в весьма тривиальной задаче, которая тем не менее...

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

Телефонная книга
Телефонная книга. Коля стал замечать, что иногда в его телефонную книгу попадают номера в...

Телефонная книга
Вводятся номера телефонов в формате: +7xxxxxxxxxx +6xxxxxxxxxx +7xxxxxxxxxx +5xxxxxxxxxx ......

Телефонная книга
import pickle import sys address_book_data = {} #создаем словарь def...

6
11.02.2020, 19:21
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2020, 19:21
Помогаю со студенческими работами здесь

Телефонная книга
Доброго времени суток. нужно выполнить несколько заданий в тел.книги. уже сломал всю голову....

Телефонная книга
В следующей программе я создаю телефонную книгу в которую пользователь может вводить и создавать...

Телефонная база
Отсортируйте список телефонов по возрастанию и используя сортировку выбором. Телефон задан в виде...

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

Телефонная книга
Помогите дописать,туплю что-то как дальше делать. //Условие задачи: //Создайте приложение...

0
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru