Код в Python работает неправильно

Рейтинг: 0Ответов: 1Опубликовано: 22.01.2023

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

list = ['MacBook'], ['iPhone'], ['iPad'], ['AirPods'], ['AppleWatch'], ['iMac']
moneys = 10000
buy = input('Введите товар который хотите купить: ')
price = int(input('Введите цену за которую хотите купить товар: '))

if buy == 'MacBook' or 'iPhone':
  print ('Вы купили ', buy, 'за', price, '$')
  moneys -= price
  print (moneys, '$ у вас осталось после покупки')
  
if buy == 'iPad' or 'AirPods':
  print ('Вы купили ', buy, 'за', price, '$')
  moneys -= price
  print (moneys, '$ у вас осталось после покупки')

if buy == 'AppleWatch' or 'iMac':
  print ('Вы купили ', buy, 'за', price, '$')
  moneys -= price
  print (moneys, '$ у вас осталось после покупки')
else: 
  print('Товара нет в наличии.')

if price < 1500:
  print ('Цена слишком маленькая.')

Подскажите пожалуйста, как можно решить эти проблемы.

Ответы

▲ 1Принят
  1. У вас условия выглядит так:
if buy == 'MacBook' or 'iPhone':
  print ('Вы купили ', buy, 'за', price, '$')
if buy == 'iPad' or 'AirPods':
  print ('Вы купили ', buy, 'за', price, '$')
if buy == 'AppleWatch' or 'iMac':
  print ('Вы купили ', buy, 'за', price, '$')

Для питона условие if "Какая-то строка" всегда будет истиной, поэтому надо уточнять:

if buy == 'MacBook' or buy == 'iPhone':
  print ('Вы купили ', buy, 'за', price, '$')
if buy == 'iPad' or buy == 'AirPods':
  print ('Вы купили ', buy, 'за', price, '$')
if buy == 'AppleWatch' or buy == 'iMac':
  print ('Вы купили ', buy, 'за', price, '$')

Но так мы делать не будем, так как все возможные товары у нас лежат в списке list, поэтому, правильно сделать так:

list = ['MacBook', 'iPhone', 'iPad', 'AirPods', 'AppleWatch', 'iMac']
moneys = 10000
buy = input('Введите товар который хотите купить: ')
price = int(input('Введите цену за которую хотите купить товар: '))

if price > 1500:
  if buy in list:
    print (f'Вы купили {buy} за {price}$')
    moneys -= price
    print (f'{moneys}$ у вас осталось после покупки')
  else:
    print('Товара нет в наличии.')
else:
  print ('Цена слишком маленькая.')