Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: 'дележ яблок питон решение' - как лучше поделить яблоки в Питоне?

  1. 'дележ яблок питон решение' - как лучше поделить яблоки в Питоне?

    Йо ребзя! Возникла задачка: Надо написать на Питоне скрипт, который будет делить яблоки между людьми. У каждого человека может быть разное количество яблок, и нужно поделить их поровну. Но вот фишка - если яблоки не делятся нацелое, остаток остается у владельца. Моя голова уже кипит от этой задачи! Кто в Питоне шарит, чо делать? Как лучше реализовать дележ яблок? Кодики, примеры, пояснения приветствуются!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Чувак, почитай про оператор // и %. Определить, кто получает остаток, можно через проценты. Глянь, тут пример:

    Программный код:
    def divide_apples(applespeople):
      
    quotient apples // people
      
    remainder apples people
      
    return quotientremainder
      
    total_apples 
    17
    num_people 
    3
    result 
    = []
      
    for 
    i in range(num_people):
      
    qdivide_apples(total_applesnum_people)
      
    result.append(+ (if else 0))
      
    print(
    result
    Используй разделение яблок и не забудь проверку количества людей (нельзя ведь делить на 0).

  4. Цитата Сообщение от Jdanov
    Чувак, почитай про оператор // и %. Определить, кто получает остаток, можно через проценты. Глянь, тут пример:

    Программный код:
    def divide_apples(applespeople):
      
    quotient apples // people
      
    remainder apples people
      
    return quotientremainder
      
    total_apples 
    17
    num_people 
    3
    result 
    = []
      
    for 
    i in range(num_people):
      
    qdivide_apples(total_applesnum_people)
      
    result.append(+ (if else 0))
      
    print(
    result
    Используй разделение яблок и не забудь проверку количества людей (нельзя ведь делить на 0).
    Бум, ты прав насчет // и %. Но на что этот (1 if i < r else 0)? Проверь логику для больших чисел.

  5. Йоу, для дележа яблок можно использовать вообще листы и циклить их. Вот небольшой пример:

    Программный код:
    def share_apples(applespeople):
      
    base_share apples // people
      
    extra_apples apples people
      shares 
    = [base_share + (if extra_apples else 0) for i in range(people)]
      return 
    shares
      
    print(share_apples(173)) 
    Погляди в сторону comprehension lists в Питоне. Заработает!

  6. Цитата Сообщение от Эммануэль
    Йоу, для дележа яблок можно использовать вообще листы и циклить их. Вот небольшой пример:

    Программный код:
    def share_apples(applespeople):
      
    base_share apples // people
      
    extra_apples apples people
      shares 
    = [base_share + (if extra_apples else 0) for i in range(people)]
      return 
    shares
      
    print(share_apples(173)) 
    Погляди в сторону comprehension lists в Питоне. Заработает!
    Неплохой вариант с comprehension, бро. Но че будет, если людей меньше 1?

  7. Не забудь добавить обработку ошибок, типа, если яблоки или люди равны нулю:

    Программный код:
    def advanced_sharing(applespeople):
        if 
    people <= 0:
            
    raise ValueError('Чувак, не может быть меньше одного человека!')
        
    elif apples 0:
            
    raise ValueError('Йо, яблоки не могут быть отрицательными!')
        
        
    share apples // people
        
    remainder apples people
        
    return [share if remainder else share for i in range(people)]
      
    print(
    advanced_sharing(173)) 
    Так лучше.

  8. Цитата Сообщение от Виктория Андреевна
    Не забудь добавить обработку ошибок, типа, если яблоки или люди равны нулю:

    Программный код:
    def advanced_sharing(applespeople):
        if 
    people <= 0:
            
    raise ValueError('Чувак, не может быть меньше одного человека!')
        
    elif apples 0:
            
    raise ValueError('Йо, яблоки не могут быть отрицательными!')
        
        
    share apples // people
        
    remainder apples people
        
    return [share if remainder else share for i in range(people)]
      
    print(
    advanced_sharing(173)) 
    Так лучше.
    Йо, хорошие проверки! Так надежнее будет.

  9. Идея в том, чтобы делить яблоки через модуль и целочисленное деление отличная. Всегда можно добавить нескольких проверок и упрощений. Например, можно сделать проверку на деление на ноль и отрицательные значения так:

    Программный код:
    def apple_sharing(applespeople):
        if 
    people <= 0:
            
    raise ValueError('Нельзя делить на ноль или отрицательное число людей.')
        
    base_apples apples // people
        
    extra_apples apples people
        result 
    = [base_apples + (if extra_apples else 0) for i in range(people)]
        return 
    result

    print(apple_sharing(173)) 
    Таким макаром можно решить любую очередную задачку по разделению ресурсов.

  10. Цитата Сообщение от VoidWalker
    Идея в том, чтобы делить яблоки через модуль и целочисленное деление отличная. Всегда можно добавить нескольких проверок и упрощений. Например, можно сделать проверку на деление на ноль и отрицательные значения так:

    Программный код:
    def apple_sharing(applespeople):
        if 
    people <= 0:
            
    raise ValueError('Нельзя делить на ноль или отрицательное число людей.')
        
    base_apples apples // people
        
    extra_apples apples people
        result 
    = [base_apples + (if extra_apples else 0) for i in range(people)]
        return 
    result

    print(apple_sharing(173)) 
    Таким макаром можно решить любую очередную задачку по разделению ресурсов.
    Красава, четкий ответ! Но обработка лишних условий все таки нужна иногда, маякни.

Страница 1 из 2 12 ПоследняяПоследняя