我正在尝试创建一个计算算术序列之和的函数。我知道如何设置数学计算,但我不知道如何从用户那里获取输入以实际执行它们。
如何获取用户输入(如下所示),使每行上的三个整数读为A,B,N,其中A为第一个值 序列中,B是步长,N是步数。
8 1 60
19 16 69
17 4 48
接下来会发生什么?
def arithmetic_progression():
a = raw_input('enter the numbers: ')
答案 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()