Sumowanie wartości w pętli

Sumowanie wartości w pętli
meiji
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 6 lat
  • Lokalizacja:Mysłowice
  • Postów:12
0

Cześć, jak w temacie potrzebuję zasięgnąć rady jak sumować wartości podczas działania pętli. Szkielet programu jest następujący:

Kopiuj
unicode = 97

for i in range(1, 26):
    print(i * chr(unicode))
    unicode += 1

Ogólnie chodzi o to, aby program wyświetlił ciąg znaków postaci:

Kopiuj
a # 1
bb # 2 
ccc # 2+1 = 3
ddddd # 3+2 = 5
eeeeeeee # 5+3 = 8
itd.

W każdym kolejnym rzędzie powinna się wyświetlić suma znaków z dwóch poprzednich. Z góry dzięki za pomoc :D

DB
  • Rejestracja:ponad 9 lat
  • Ostatnio:5 miesięcy
  • Postów:227
1

Pierwsze moje "skojarzenie" to ciąg Fibonacciego:

"Dirty" solution:

Kopiuj


from string import lowercase


def fib(n):
    return n if n <= 1 else fib(n-1) + fib(n-2)


for index, letter in enumerate(lowercase, 2):
    print(fib(index) * letter)

Zobacz pozostały 1 komentarz
Guaz
W pythonie3.5.2 i 3.6.5 na pewno jeszcze jest string. Tylko nie lowercase, a: string.ascii_lowercase :)
Althorion
Ale to robi zupełnie co innego — zwraca listę małych liter (np. aby sprawdzić, czy dana litera jest mała, można użyć litera in string.ascii_lowercase). Do konwertowania do małych liter służy metoda lower(), np. małe_litery = 'MóJPOkeMon'.lower().
Althorion
A nie, stój, robi to samo (z dokładnością do locali), a ja jestem niewyspany i pomyliłem wątki.
DB
znowu wyszło szydło z worka - do niedawna pisałem wszystko w 2.7 teraz fifty fifty... to chyba był Python 2.7 (2.7.13 zdaje się że supportuje print() ze względu na kompatybilność z 3)
enedil
O boszu, that's gonna explode.
enedil
  • Rejestracja:prawie 12 lat
  • Ostatnio:7 dni
  • Postów:1027
1
DolBo napisał(a):

Pierwsze moje "skojarzenie" to ciąg Fibonacciego:

"Dirty" solution:

Kopiuj


from string import lowercase


def fib(n):
    return n if n <= 1 else fib(n-1) + fib(n-2)


for index, letter in enumerate(lowercase, 2):
    print(fib(index) * letter)

Less dirty one:

Kopiuj

from string import ascii_lowercase

def fib():
    a, b  = 0, 1
    while True:
        a, b = b, a+b
        yield a

for letter, f in zip(ascii_lowercase, fib()):
    print(f * letter)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.