Top.Mail.Ru
Ответы

Программирование python. словари python

Добрый день, нужна хелпа срочно, кто шарит
тема такая, есть задача, сделать словарь с данными в пайтон, данные, это химические элементы таблицы менделеева, и нужно добавить 2 условия поиска, я решил, что пусть это будем металл/ не металл и больше или меньше какой то массы, я сделал словарь с данными, как мне впихнуть сюда условия, чтобы при выводе он спрашивал те условия и выводил инфу об хим. элементах которые соответствуют критериям?

По дате
По рейтингу
Аватар пользователя
Новичок

У тебя в коде были ошибки из за которых он в принципе не работал:

123
 if stock[i].get('name') == name: 
elif sostoyanie == nemet:
if sostoyanie == met:  

когда переменная name, met, nemet в коде не определены.
От того мет или немет ничего не меняется, циклы одинаковые
Переменные summa и Fl которые нигде не использовались

Вот готовый код

12345678910111213141516171819202122232425262728293031323334353637383940
 stock = []  
n = int(input('Введите количество элементов: '))  
  
for i in range(n):  
    print()  
    product = {}  
    product['sostoyanie'] = input('met/nemet: ')  
    product['название'] = input('наименование хим. эелемента: ')  
    product['символ'] = (input('Символ элемента: '))  
    product['масса'] = int(input('Относительная атомная масса '))  
    stock.append(product)  
     
def vivod_dannih(i): 
    print('название: ',stock[i].get('название')) 
    print('символ: ',stock[i].get('символ'))  
    print('масса: ',stock[i].get('масса'))  
    print() 
     
print('\n Вывод данных по таблице\n')  
sostoyanie = input('Выводить met или nemet: ') 
bolshe_menishe = input('Выводить больше или меньше массы?: ') 
 
if bolshe_menishe == "больше": 
    bolshe_menishe_chislo = int(input('Больше какого числа: ')) 
elif bolshe_menishe == "меньше": 
    bolshe_menishe_chislo = int(input('Меньше какого числа: ')) 
 
print('\nДанные о хим. элементах: ',sostoyanie) 
print(f'Которые {bolshe_menishe} массы {bolshe_menishe_chislo}:\n') 
 
if bolshe_menishe == 'больше':  
    for i in range(n):  
        if stock[i].get('sostoyanie') == sostoyanie and stock[i].get('масса') > bolshe_menishe_chislo:  
            vivod_dannih(i)  
elif bolshe_menishe == 'меньше': 
    for i in range(n):  
        if stock[i].get('sostoyanie') == sostoyanie and stock[i].get('масса') < bolshe_menishe_chislo:  
            vivod_dannih(i) 
else:  
    print("Такие данные отсутствуют") 
Аватар пользователя
Оракул

Программирование это не для тебя