Loopin';Python中的乘法?

Loopin';Python中的乘法?,python,python-3.x,Python,Python 3.x,我正在制作一个程序,要求你输入一个数字,然后打印出该数字的时间表的前1000项。我使用的是Python 3x,输出应该是: 但它却给了我这个: 代码如下: multiplication = 0 firstnumber = int(input("Enter a number: ")) number = firstnumber for j in range(0, 1001): for i in range(0, 1001): multiplication = multipl

我正在制作一个程序,要求你输入一个数字,然后打印出该数字的时间表的前1000项。我使用的是Python 3x,输出应该是:

但它却给了我这个:

代码如下:

multiplication = 0
firstnumber = int(input("Enter a number: "))
number = firstnumber
for j in range(0, 1001):
    for i in range(0, 1001):
        multiplication = multiplication+1
    number = number*multiplication
    print(str(multiplication) + " times " + str(firstnumber) + " is " + str(number))

谢谢

我发现在开始编写代码之前更容易思考这个问题

第一步:从用户那里获取一个数字

我认为第二步是从0到1000再乘以这个数字。在psuedo代码中:

users_number = some_number
for num from 0 - 1000:
  print(num * usernumber)

您的问题是您更新了
number
并不断将其相乘。您预见到了这个问题,并创建了一个名为
firstnumber
的变量来解决它,但您忘记了使用它。以下是您打算做的:

>>> multiplication = 0
>>> firstnumber = int(input("Enter a number: "))
Enter a number: 17
>>> number = firstnumber
>>> number = firstnumber
>>> for j in range(0, 1001):
...     for i in range(0, 1001):
...         multiplication = multiplication+1
...         number = firstnumber * multiplication
...         print(str(multiplication) + " times " + str(firstnumber) + " is " + str(number))
... 
1 times 17 is 17
2 times 17 is 34
3 times 17 is 51
4 times 17 is 68
5 times 17 is 85
6 times 17 is 102
7 times 17 is 119
8 times 17 is 136
9 times 17 is 153
10 times 17 is 170
11 times 17 is 187
12 times 17 is 204
13 times 17 is 221
14 times 17 is 238
15 times 17 is 255
16 times 17 is 272
然而,你可能会做这样的事情,情况会好得多:

number = int(input("Enter a number: "))
mult = int(input("How many multiples: "))
for i in range(mult+1):
    print("%d times %d is %d" %(number, i, number*i))

可能不是最好的代码,但比您尝试的代码要好

given_number = int(input("Enter a number: "))
for multiplier in range(1,1001):
    print("{0:4} times {1} is {2}".format(multiplier, given_number, multiplier*given_number))

为什么有两个循环?@dm03514:如果没有,请改进一下,回答我的问题。谢谢你在做1-1000乘以1001^1000的阶乘。那很有趣。无论如何,它看起来应该是
firstnumber*multiply
,而不是
number*multiply
。将
1001
更改为一个较小的数字,如
5
,您可能会看到您的代码有什么问题。为什么有两个循环?@minitech:因为这与问题关系不大。我试图先演示OP代码中更大的问题。下一次编辑将包含OP想要的内容的优化版本。当我尝试你告诉我的内容时,它将不起作用,它给出以下信息:输入一个数字:1 1001乘以1是1001乘以1是2002乘以1是2002 3003乘以1是3003 4004乘以1是4004 5005乘以1是5005 6006乘以1是6006 7007乘以1是7007我该怎么做?我想要1乘以1是1,2乘1等于12@Discovery那么,如果这个答案没有给出你想要的结果,它是否比dm03514的答案更好?你的答案和其他答案都不起作用。如果您向我解释发生此错误的原因,我可能会选择此错误:对于0-1000之间的num:^SyntaxError:无效syntax@Discovery,它不是有效的python,它是伪代码,因为您正在学习我留给您的练习,以实际编写正确的python!:)我没有足够的声望去投票,尽管我想要更简单的代码。无论如何,谢谢。我只是添加了一些字符串格式来美化输出,您可以在运行我的脚本时看到这些输出。数字0、1、2表示传递给format方法的参数的索引。而且,帮助是首要任务。:)