Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как создать на питоне следующее:

Кузнецов Арсений Ученик (144), открыт 2 недели назад
Как сделать что то подобное тому, что я нарисовал...(у меня слов нету чтобы описать как полагается без рисунка это, я питон изучаю всего денек). Мне надо чтобы я мог хранить в data айди людей и для каждого айди хранить имя и возраст (для примера). Самое главное чтобы айди людей можно было до бесконечности туда класть с данными внутри.
4 ответа
MTW Профи (892) 2 недели назад
Для этого нужны бд, учи SQL
Кузнецов АрсенийУченик (144) 2 недели назад
Этож целый язык другой, как он поможет
Кузнецов Арсений, Язык запросов SQL нужен для работы с базой данных
contrlc contrlc Ученик (149) 2 недели назад
 data = {} 

def add_person(id, name, age):
data[id] = {"name": name, "age": age}

add_person("id_1", "name1", 30)
add_person("id_2", "name2", 25)
add_person("id_3", "name3", 35)
add_person("id_4", "name4", 40)

print(data)
Defline Профи (700) 2 недели назад
sqlite3 + tortoise orm (или напрямую запросы на sql), на любой платформе дофига примеров
 import sqlite3 

def create_table():
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER NOT NULL
)
''')

conn.commit()
conn.close()

def insert_user(name, age):
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''
INSERT INTO users (name, age) VALUES (?, ?)
''', (name, age))

conn.commit()
conn.close()

def fetch_users():
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('SELECT * FROM users')
rows = cursor.fetchall()

conn.close()
return rows

def update_user(user_id, name, age):
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''
UPDATE users SET name = ?, age = ? WHERE id = ?
''', (name, age, user_id))

conn.commit()
conn.close()

def delete_user(user_id):
conn = sqlite3.connect('example.db')
cursor = conn.cursor()

cursor.execute('''
DELETE FROM users WHERE id = ?
''', (user_id,))

conn.commit()
conn.close()

# Основная часть программы
if __name__ == '__main__':
create_table()

# Вставка примеров данных
insert_user('Alice', 30)
insert_user('Bob', 25)

# Получение и вывод всех пользователей
users = fetch_users()
for user in users:
print(user)

# Обновление данных пользователя
update_user(1, 'Alice', 31)

# Удаление пользователя
delete_user(2)

# Получение и вывод всех пользователей после изменений
users = fetch_users()
for user in users:
print(user)
Kil002 Мастер (2416) 2 недели назад
Жесть. Человек только открыл для себя питон, так вы его завалили функциями, классами, базами данных.
Чел, конкретно под твою задачу используется такая структура данных как словарь (dict)

 data = { 
'id_1': {'name':'Имя', 'age':20},
'id_2': {'name':'Имя', 'age':52},
'id_3': {'name':'Имя', 'age':42},
'id_4': {'name':'Имя', 'age':34},
'id_5': {'name':'Имя', 'age':85}
}

#Присваевание ключу 'id_6' данных {'name':'Имя', 'age':20}
#Если такого ключа в базе ещё нет, то он создаётся
data['id_6'] = {'name':'Имя', 'age':20}
print(data['id_6'])

#изменяем внутри 'id_6' данные в ключе 'name'
data['id_6']['name'] = 'Арсений'
print(data['id_6'])
В общем в питоне всего 2 постоянно использующиеся структуры (остальные изредка под конкретные задачи).
Списки List и словари Dict

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

А вот в Словаре, данные перемешаны и данные из словаря берутся по ключу, которые ты изначально присвоил данным.

Между собой они отлично ладят и хранение данных в списке словарей или в словаре списков, это норма.

Изучишь словари, потом изучи JSON, почти тоже самое, но зачастую именно в этом формате передаются данные между программами, компами и серверами.
Похожие вопросы