Python 魔法书/03.变量
好的,让我们回到编码。我们之前在哪里?啊,是的。我们解释了数据类型,比如整数和字符串。但是,如果我们能够以某种方式存储数据,在您的计算机已经在硬盘、内存、在线等位置存储数据之后,这是否很酷?数据一直在变化,所以存储是必须的。
编程语言将数据存储在变量中。让我们看看这个例子。
a = 12
b = "I have"
c = "ideas"
print(b+" "+str(a)+" "+c)
好的,让我们一步一步地来。在第一行,我们定义一个名为“a”的变量,并在其中存储 12,一个 int 值。分配变量就是这么简单。您只需提供名称、等号和一个值。在第二行,我们定义一个名为“b”的变量,并在其中存储“我拥有”,一个 str 值。最后,第三行定义了“c”,并为其分配了“想法”,另一个 str 值。
下一行需要解释一下,但很容易理解。它是一个打印函数。它是一个函数,因为它有一个名称、一个参数以及括号的开头和结尾。“+”用作运算符来连接字符串。一个变量可以是任何类型,但正如我所说,Python 不喜欢您混合不同的类型,因为我们的打印函数只接受字符串值。如果我们只是让它成为“+a”,它会因为这是一个整数(int 值)而报错。我们需要做的是将变量“a”的值转换为字符串。由于我们可以使用 int() 和 float() 将类型转换为整数或浮点数,因此我们应该可以使用 str() 将类型转换为字符串。因此,**函数** str() 与参数“a”一起使用。
请注意,我们使用了 +" " 作为打印函数参数的一部分,以便在字符串之间输入空格。我们也可以在分配变量时在字符串中包含这些空格。编码的妙处在于它允许我们灵活地进行操作。
一个不与用户交互的程序不是一个很有用的程序。如果我们能够以某种方式与用户交流呢?我们可以使用 input() 函数。在运行此代码之前,请确保您的操作系统终端/控制台已打开,否则它可能会冻结 Blender。
name = input("What's your name?")
print("Hello "+name+". My name is Python, nice to meet you." )
(贡献者 9-1-2012 注:示例代码因“NameError: name 'John' is not defined”而崩溃)
这段代码会冻结 Blender,但不要担心,这段代码不会损坏它;实际上,它会冻结是因为它正在等待输入。切换到终端/控制台窗口,它会显示“您的姓名?”这行。继续输入您的姓名并按回车键。如果您输入了 John,它会打印“你好 John。我的名字是 Python,很高兴认识你”。Python 不好玩吗?!
正如您所见,我们将 input() 函数的输出分配给一个变量。函数可以用参数接收输入,并可以通过返回类型输出数据。在这种情况下,它返回数据类型“str”,更准确地说,是一个包含我们输入的姓名的字符串。从那里,我们将 name 变量与另外 2 个字符串连接起来,形成最终的打印内容。
让我们尝试以下代码
number1 = int(input("Give me the first number : "))
number2 = int(input("Give me the second number : "))
print( "If I add " + str(number1) + " and "+str(number2)+" it equals to "+str(number1+number2))
不要让这让你感到复杂;它仍然很容易理解。您首先看到的是,函数可以将另一个函数作为参数。我们在第 1 行和第 2 行所做的是从用户那里获取输入并将其转换为整数,记住 input() 函数只能返回字符串。然后在打印函数中,我们将变量重新转换为字符串,以便将它们连接成一个字符串。之后,我们将变量 _number1_ 和 _number2_ 加在一起。结果被转换为字符串,然后与最终字符串连接起来。
还有另一种方法可以做到这一点,如下所示
number1 = input("Give me the first number : ")
number2 = input("Give me the second number : ")
print( "If I add %s and %s it equals to %d" %(number1 ,number2, int(number1)+int(number2)))
所以这在做完全相同的事情,只是方法不同。“%s” 在我们的字符串中实际上不是字符串的一部分。它只告诉 print() 在这里放置一个字符串,该字符串在 %() 中定义。所以第一个 %s 放置了 number1 的字符串值,第二个 %s 放置了 number2 的字符串值。但是,%d 放置了一个**整数**,它是将 number1 变量和 number2 变量转换为整数并将其加在一起的结果。正如您所见,通过这种方式,我们不必转换我们的变量,除非在我们将它们加在一起时。这个过程被称为字符串格式化。它在您进行许多不同类型之间的转换并且想要将所有内容连接到一个字符串中时非常有用。您使用什么取决于您。想要了解更多关于字符串格式化的信息吗?然后去这里。
变量有一些规则需要遵守。首先,在您命名它们时,您可以在其中使用数字,但变量的名称必须以字母开头。以下是**不能**做的事情
123 = 3
也不要这样做
123b = 3
不要在变量名中添加空格
number 1= 3
您可以这样做
number_1= 3
奇怪的是,您也可以这样做,因为可以随时为变量分配一个不同的值
number_1= 3
number_1 = 4
变量也可以被分配包含在其他变量中的值。在这种情况下,变量的最终值将是 4。
number_1= 3
number_2 = 4
number_1 = number_2
但是,如果我们这样做,同样,number_1 的最终值将是 4。为什么呢?因为 number_2 的变量改变不会在赋值后改变 number_1 的值。
number_1= 3
number_2 = 4
number_1 = number_2
number_2 =10
另一个适用于 Python 中所有内容的非常重要的规则是区分大小写。区分大小写指的是字母的大小写。例如,Var1 和 var1 是两个不同的变量。这意味着大小写非常重要。许多程序员使用它进行命名。MyFirstVariable 当然与 myfirstvariable 或 mYfirsTvariable 等不同。就我个人而言,我不使用大小写来命名我定义或分配的任何内容。我更喜欢使用下划线,但这完全取决于您。请记住,大小写适用于 Python 中的所有内容,因此您需要小心输入命令。