Python 为什么我们在循环之前分配变量“option”1的值?

Python 为什么我们在循环之前分配变量“option”1的值?,python,Python,我是编程新手,我选择python作为我的第一语言,因为它很简单。但我对这段代码感到困惑: option = 1 while option != 0: print "/n/n/n************MENU************" #Make a menu print "1. Add numbers" print "2. Find perimeter and area of a rectangle" print "0. Forget it!" pri

我是编程新手,我选择python作为我的第一语言,因为它很简单。但我对这段代码感到困惑:

option = 1 
while option != 0:
    print "/n/n/n************MENU************" #Make a menu
    print "1. Add numbers"
    print "2. Find perimeter and area of a rectangle"
    print "0. Forget it!"
    print "*" * 28

    option = input("Please make a selection: ") #Prompt user for a selection      
    if option == 1: #If option is 1, get input and calculate 
        firstnumber = input("Enter 1st number: ")
        secondnumber = input("Enter 2nd number: ") 
        add = firstnumber + secondnumber
        print firstnumber, "added to", secondnumber, "equals", add #show results  

    elif option == 2: #If option is 2, get input and calculate
        length = input("Enter length: ")
        width = input("Enter width: ")
        perimeter = length * 2 + width * 2
        area = length * width
        print "The perimeter of your rectangle is", perimeter #show results       
        print "The area of your rectangle is", area

    else: #if the input is anything else its not valid
        print "That is not a valid option!"

好吧,我得到了选项变量下面的所有内容。我只是想知道为什么我们要给Option=1赋值,为什么我们要把它添加到程序的顶部,它的功能是什么。我们也可以改变它的价值。请让我用简单的语言理解它,因为我是编程新手。

如果您没有在程序开始时创建变量选项,则行

 while option != 0:
将中断,因为还不存在选项变量

至于如何更改其值,请注意,每行的值都会更改:

option = input("Please make a selection: ")

发生-将其值重新分配给用户的输入。

如果您没有在程序开始时创建变量选项,则行

 while option != 0:
将中断,因为还不存在选项变量

至于如何更改其值,请注意,每行的值都会更改:

option = input("Please make a selection: ")

发生-这是将其值重新分配给用户的输入。

以便下面的while语句不会尝试检查不存在的名称。它不必被赋值为1,它只是碰巧是第一个非零的自然数。

这样下面的while语句就不会试图检查不存在的名称。它不必被赋值为1,它恰好是第一个非零自然数。

Python要求在使用变量之前声明变量

在这种情况下,将决定选项是设置为1还是2,因此我们将其设置为这些值之一,通常我们可以轻松地将其设置为0或空字符串。虽然有些语言对PHP的变量声明要求不那么严格,但大多数语言在使用前都要求变量存在

Python不要求显式声明变量,只要求为变量指定一个值以保留内存空间。另一方面,默认情况下,VB.NET要求显式声明变量

Dim var as D
它设置变量类型,但不为其提供初始值


请参阅。

Python要求在使用变量之前声明变量

在这种情况下,将决定选项是设置为1还是2,因此我们将其设置为这些值之一,通常我们可以轻松地将其设置为0或空字符串。虽然有些语言对PHP的变量声明要求不那么严格,但大多数语言在使用前都要求变量存在

Python不要求显式声明变量,只要求为变量指定一个值以保留内存空间。另一方面,默认情况下,VB.NET要求显式声明变量

Dim var as D
它设置变量类型,但不为其提供初始值


请参阅。

谢谢您的回复,但我们为什么要将其值指定为1?@user1977722:您可以将其值指定给除0以外的任何对象,这没有任何区别。如果将其指定为0,则while循环将永远不会执行,因为选项!=0将是错误的。试着给它赋值2、3、100或hello,你会发现它没有什么区别1只是一个方便的值第一次分配的值并不重要,只要它不是0,因为它在输入行中被覆盖。重要的是它必须存在于while行之前。任何比较结果不等于零的东西,即-False==0,都不起作用。谢谢。但是我在这段代码中遇到了另一个问题:counter=inpunter一个数字开始倒计时:对于rangecounter中的x,0,-1:print x print SPLAT x在这里是什么,我们能改变它的值吗?还是名字?就像我将在那里分配y或任何其他变量一样?谢谢你的回答,但是为什么我们要分配它的值1?@user1977722:你可以将它的值分配给除0之外的任何东西,这没有任何区别。如果将其指定为0,则while循环将永远不会执行,因为选项!=0将是错误的。试着给它赋值2、3、100或hello,你会发现它没有什么区别1只是一个方便的值第一次分配的值并不重要,只要它不是0,因为它在输入行中被覆盖。重要的是它必须存在于while行之前。任何比较结果不等于零的东西,即-False==0,都不起作用。谢谢。但是我在这段代码中遇到了另一个问题:counter=inpunter一个数字开始倒计时:对于rangecounter中的x,0,-1:print x print SPLAT x在这里是什么,我们能改变它的值吗?还是名字?就像我在这里分配y或任何其他变量一样?你无法理解option=1行一个简单的变量初始化,你说:我得到option变量下面的所有东西,这怎么可能?你不理解option=1行,一个简单的变量初始化,你说:我得到了option变量下面的所有东西,这怎么可能?