无论使用什么语言编程,总要处理数据,处理数据就需要使用变量来保存数据。
形象地看,变量就像一个个小容器,用于“盛装”程序中的数据。常量同样也用于“盛装”程序中的数据。常量与变量的区别是:常量一旦保存某个数据之后,该数据就不能发生改变;但变量保存的数据则可以多次发生改变,只要程序对变量重新赋值即可。
Python 使用等号(=)作为赋值运算符,例如 a = 20 就是一条赋值语句,这条语句用于将 20 装入变量 a 中,这个过程就被称为赋值,即将 20 赋值给变量 a。
Python 是弱类型语言,弱类型语言有两个典型特征:
变量无须声明即可直接赋值:对一个不存在的变量赋值就相当于定义了一个新变量。
变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串。
Python 是弱类型语言
对于没有编程基础的读者,可以先不编写真正的 Python 程序,而是先打开 Python 的交互式解释器,在这个交互式解释器中“试验” Python。
下面先在 Python 解释器中输入如下内容:
>>> a = 5 >>>
上面代码没有生成任何输出,只是向交互式解释器中存入了一个变量 a,该变量 a 的值为 5。
如果我们想看到某个变量的值,可以直接在交互式解释器中输入该变量。例如,此处想看到变量 a 的值,可以直接输入 a。
>> a 5 >>
从上面的交互式过程可以看到,交互式解释器输出变量 a 的值:5。
接下来,如果改变变量 a 的值,只要将新的值赋给(装入)变量 a 即可,新赋的值会覆盖原来的值。例如:
a = 'Hello , Charlie' >>>
此时变量 a 的值就不再是 5 了,而是字符串“Hello , Charlie”,a 的类型也变成了字符串。下面再次输入 a ,让交互式解释器显示a的值:
>>> a 'Hello , Charlie'
如果想查看此时 a 的类型,可以使用 Python 的 type() 函数。
形象地说,函数就相当于一个有魔法的“黑盒子”,你可以向这个“黑盒子“提供”一些数据,这个“黑盒子”会对这些数据进行处理,这种处理包括转换和输出结果。比如 print() 也是一个函数,它的作用就是输出传入的数据。此处 type() 函数的作用则用于输出传入数据的类型。
在交互式解释器中输入:
>>> type(a) <class 'str'> >>>
此时可以看到 a 的类型是 str。
将上面的交互过程转换成真正的 Python 程序,只要将交互式过程中输入的每行代码放在一个文件中,并使用 print() 函数来输出变量(在交互式解释器中只要输入变量名,交互式解释器就会输出变量的值;但在 Python 程序中则必须使用 print() 函数来输出变量),将该文件保存为以 .py 结尾的源文件即可。
上面的交互过程对应的程序如下:
#定义一个数值类型变量 a = 5 print(a) #重新将字符串赋值给a变量 a = 'Hello , Charlie' print(a) print(type(a))
运行上面的程序,没有任何问题,可以看到如下输出结果:
5 Hello , Charlie <type 'str'>
使用 print 函数输出变量
前面使用 print() 函数时都只输出了一个变量,但实际上 print() 函数完全可以同时输出多个变量,而且它具有更多丰富的功能。
print() 函数的详细语法格式如下:
print (value,...,sep='',end='\n',file=sys.stdout,flush=False)
从上面的语法格式可以看出,value 参数可以接受任意多个变量或值,因此 print() 函数完全可以输出多个值。例如如下代码:
user_name = 'Charlie' user_age = 8 #同时输出多个变量和字符串 print("读者名",user_name,"年龄:",user_age)
运行上面代码,可以看到如下输出结果:
读者名:Charlie 年龄:8
从输出结果来看,使用 print() 函数输出多个变量时,print() 函数默认以空格隔开多个变量,如果读者希望改变默认的分隔符,可通过 sep 参数进行设置。例如输出语句:
#同时输出多个变量和字符串,指定分隔符 print("读者名:" ,user_name,"年龄:",user_age,sep='|')
运行上面代码,可以看到如下输出结果:
读者名:|Charlie|年龄:|8
在默认情况下,print() 函数输出之后总会换行,这是因为 print() 函数的 end 参数的默认值是“\n”,这个“\n”就代表了换行。如果希望 print() 函数输出之后不会换行,则重设 end 参数即可,例如如下代码:
#设置end 参数,指定输出之后不再换行 print(40,'\t',end="") print(5O,'\t',end="") print(60,'\t',end="")
上面三条 print() 语句会执行三次输出,但由于它们都指定了 end="",因此每条 print() 语句的输出都不会换行,依然位于同一行。运行上面代码,可以看到如下输出结果:
40 50 60
file 参数指定 print() 函数的输出目标,file 参数的默认值为 sys.stdout,该默认值代表了系统标准输出,也就是屏幕,因此 print() 函数默认输出到屏幕。实际上,完全可以通过改变该参数让 print() 函数输出到特定文件中,例如如下代码:
f = open("poem.txt","w")#打开文件以便写入 print('沧海月明珠有泪',file=f) print('蓝回日暖玉生烟',file=f) f.close()
上面程序中的 open() 函数用于打开一个文件,教程后续章节还会详细介绍关于文件操作的内容。
print() 函数的 flush 参数用于控制输出缓存,该参数一般保持为 False 即可,这样可以获得较好的性能。