Python - 算术级数的用户输入

时间:2015-11-27 11:25:09

标签: python

我正在尝试创建一个计算算术序列之和的函数。我知道如何设置数学计算,但我不知道如何从用户那里获取输入以实际执行它们。

如何获取用户输入(如下所示),使每行上的三个整数读为A,B,N,其中A为第一个值 序列中,B是步长,N是步数。

8 1 60
19 16 69
17 4 48

接下来会发生什么?

def arithmetic_progression():
    a = raw_input('enter the numbers: ')

2 个答案:

答案 0 :(得分:2)

raw_input你通常会得到一个字符串

>> a = raw_input('enter the numbers')

您输入数字8 1 60,因此a将是一个字符串'8 1 60'。然后你可以将字符串拆分为3个子串

>> b = a.split()

这会返回一个列表['8', '1', '60']。除此之外你可以得到你的数字

>> A = int(b[0])
>> B = int(b[1])
>> N = int(b[2])

要读取多行,您可以添加类似于此

的功能
def readlines():
     out = raw_input('enter the numbers\n')
     a = 'dummy'
     while(len(a)>0):
         a = raw_input()
         out += '\n' + a
     return out

此函数将读取任何输入并将其写入out字符串,直到您有一个空行。要从字符串中获取数字,请再次执行与单行相同的操作。

答案 1 :(得分:0)

AP的n个项的总和是:Sn = (n/2) [ 2a + (n-1)d ]

def arithmetic_progression():
    inp = raw_input('enter the numbers: ').split(' ')
    if not len(inp) == 3:               # in case of invalid input
        return arithmetic_progression() # prompt user to enter numbers again

    a = float(inp[0])
    d = float(inp[1])
    n = float(inp[2])

    s = ( (2 * a) + ((n - 1) * d) ) * (n / 2)

    print('Sum to n terms of given AP is: ' + str(s))

arithmetic_progression()