循环python时,s = s + 1

时间:2015-03-31 06:53:20

标签: python while-loop

我试图制作一个要求2个值s和n的程序。 然后它将为s> 0打印s * n,直到它达到s。 例如,我们为s输入5,为n输入3 输出应为:

 1 * 3 = 3
 2 * 3 = 6
 3 * 3 = 9
 4 * 3 = 12
 5 * 3 = 15

我知道以下代码完全错误,因为“s * n =”是一个字符串。但我不知道怎么做。

 s = int(input("Enter a number: "))
 n = int(input("Enter a number: "))
 while s>0:
 s = s+1
 print("s * n =", s*n)

3 个答案:

答案 0 :(得分:0)

您可以尝试:

s = int(input("Enter a number: "))
n = int(input("Enter a number: "))
index = 0

while index < s:
    index = index + 1
    print("{} * {} = {}" .format(index, s, index * s))

答案 1 :(得分:0)

问题是s等于5,如果s>0你将在循环时执行,但你总是增加s,这意味着while循环永远不会停止。

我想你可以试试:

s = int(input("Enter a number: "))
n = int(input("Enter a number: "))

i = 0
while i < s:
    i += 1
    print("%d * %d = %d" % (i, n, i*n))

答案 2 :(得分:0)

很少有理由在Python中增加计数器。如果迭代列表,请使用for object in objects:。如果您需要索引,请使用for index,object in enumerate(objects)。在您的情况下,有range

s = int(input("Enter a number: "))
n = int(input("Enter a number: "))
for i in range(1,s+1):
    print('{} * {} = {}'.format(i,n,i*n))

输出:

Enter a number: 5
Enter a number: 3
1 * 3 = 3
2 * 3 = 6
3 * 3 = 9
4 * 3 = 12
5 * 3 = 15

请注意,range(a)生成0a-1range(a,b)生成ab-1

.format是一种从参数构造字符串的强大方法。

参考文献:

range
format
Format Specification Mini-Language