2015-10-10 3 views
0

гистограмма (xs): заданный список целых чисел с именем xs, возвращает строку, которая при печати отображает гистограмму, соответствующую целым числам. Используйте символ «o» в качестве символа дисплея.проект функции python, функция histo, возвращающая o

  • Предположим: xs - список целых неотрицательных чисел; xs может быть пустым.
  • Ограничения: в настоящее время не указано.
  • гистограмма ([3,10,0,5]) → 'ооо \ noooooooooo \ п \ Nooooo'
  • гистограмме ([]) → ''

Это то, что я пробовал:

def histogram(xs): 
    last = len(xs) 
    histo = '' 
    for number in xs: 
     while number > 0: 
      histo += 'o' 
      number -= 1 
      last -= 1 
      if last == 0: 
       if histo == None: 
        return '' 
       return histo 
      histo += '\n' 
+2

Дайте ему попробовать себя, то, если он не работает вернуться и вставьте свой код. – Jason

+0

вот что я сделал. – Rida

+0

четкость гистограмма (хз): \t последнего = LEN (хз) \t Histo = '' \t для числа в хзе: \t \t в то время как число> 0: \t \t \t гисты + = 'о' \t \t \t число - = 1 \t \t последнее - = 1 \t \t если в прошлом == 0: \t \t \t \t, если гисто == Нет: \t \t \t \t возвращение '' \t \t \t возвращение гисто \t \t гисто + = '\ п' – Rida

ответ

0

Возможно, у меня был неправильный отпечаток, когда я редактировал ваш вопрос. Я должен был догадаться, потому что я вытаскивал его из комментария. Кроме того, у вас может быть проблема с отступом. В любом случае, это похоже на работу (это исходный код с правильным отступом):

def histogram(xs): 
    last = len(xs) 
    histo = '' 
    for number in xs: 
     while number > 0: 
      histo += 'o' 
      number -= 1 
     last -= 1 
     if last == 0: 
      if histo == None: 
       return '' 
      return histo 
     histo += '\n' 

Вот более компактное решение:

def histogram(xs): 
    output = "" 
    for number in xs: 
     output += "o" * number + "\n" 
    return output 
Смежные вопросы