Как я могу создать геометрическую программу прогресса, кратную 10 - PullRequest
0 голосов
/ 24 ноября 2018

Я хочу написать программу на Python 3, которая включает функцию myprice, которая возвращает значения X, которые геометрически прогрессируют, начиная с 1 .. Я хочу, чтобы значение X, которое является числом значений, равным 3, и геометрическим прогрессом, чтобы быть10 .. так что моя программа напечатает (1,10,100).

Как я могу это сделать?

заранее спасибо .. Nantia

def myprice(X,geometrical progress):
    i=0
    i += 1 
    while i < X:
        i =

        yield i

for i in my price(3,10):
    print(i)

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

На основе решения @ eapetcho,

def myprice(x, fctr=10):
    """A generator of a geometrical progression. The default factor is 10.

    The initial term is 1.

    Args:
        x   (int): number of terms to generate
        ftr (int): geometrical factor. Default is 10

    """

    start = 1

    i = 0
    while i < x:
        if i == 0:
            yield start
        else:
            start = start * fctr
            yield start
        i += 1

for n in myprice(20, 2):
  print(n)

Вывод

1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
0 голосов
/ 24 ноября 2018

@ techUser.Вы можете написать что-то вроде следующего:

def myprice(x, geometrical_factor=10):
    """
    A generator of a geometrical progression. The default factor is 10.

    The initial term is 'start = 1';

    Parameter:
    x : int
      number of terms to generate
    geometrical_factor: int
      geometrical factor [default: 10]
    """
    start = 1

    i = 0 # Geometrical term counter
    while i < xterm:
        if i == 0:
            yield start
        else:
            start = start * geometrical_factor
            yield start
        i += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...