变量
任何编程语言都需要处理数据,比如数字、字符串、字符等,我们可以直接使用数据,也可以将数据保存到变量中,方便以后使用。
变量(Variable)可以看成一个容器,专门用来“盛装”程序中的数据。每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据。从底层看,程序中的数据最终都要放到内存(内存条)中,变量其实就是这块内存的名字。
1 定义变量(给变量赋值)
Python中定义变量来保存数据的语法如下:
变量名 = 值
- 变量名
- 程序员自己命名,要求是标识符但是不能是关键字
- 避免和Python内置函数名重名
- 满足PEP8命名规范(所有的字母都小写,多个单词之间用下划线隔开)
- 见名知义(看到变量名能够知道这个变量中大概存的是什么数据)
- 值
- 可以是任何有结果的表达式,比如:具体的数据、已经定义过的变量、运算表达式等
注意: Python中定义变量和给变量赋值的语法是一样的
例如,下面的语句将整数10赋值给变量n:
n = 10
从此以后,n就代表整数10,使用n也就是使用10。
更多赋值的语句:
# 给变量age赋值为20
age = 20
# 给变量name赋值为'小明'
name = '小明'
# 将布尔值赋值给变量real
real = True
变量的值不是一成不变的,它可以随时被修改,只要重新赋值即可;另外你也不用关心数据的类型,可以将不同类型的数据赋值给同一个变量。请看下面的演示:
age = 18 # 将18赋值给变量age
age = 30 # 将30赋值给变量age
age = 50 # 将50赋值给变量age
abc = 12.5 # 将小数赋值给变量abc
abc = 100 # 将整数赋值给变量abc
abc = 'http://1000phone.com' # 将字符串赋值给变量abc
注意,变量的值一旦被修改,之前的值就被覆盖了,不复存在了,再也找不回了。换句话说,变量只能容纳一个值。
除了赋值单个数据,你也可以将表达式的运行结果赋值给变量,例如:
# 将数学运算的结果赋值给变量
sum1 = 10 + 2 +3
result = 10 / 2 * 3 - 4
# 将字符串拼接结果赋值给变量
str1 = 'hello' + 'Python!'
2 变量的使用
使用 Python 变量时,只要知道变量的名字即可。
几乎在 Python 代码的任何地方都能使用变量,请看下面的演示:
n = 10
print(n) # 将变量传递给函数,作为函数的实参
m = n * 2 + 10 # 将变量作为四则运算的一部分
print(m)
print(m+n+100) # 将由变量构成的运算表达式作为函数的实参传递给函数
结果:
10
30
140
3 Python是弱类型的语言
在强类型的编程语言中,定义变量时要指明变量的类型,而且赋值的数据也必须是相同类型的,C语言、C++、Java 是强类型语言的代表。
下面我们以 C++ 为例来演示强类型语言中变量的使用:
// 定义变量n,并且赋初值为10
int n = 10; // int表示整型类型
n = 100; // 重新给变量n赋值为100
n = "http://www.1000phone.com"; //错误!不能将字符串赋值给整数类型的变量
url = "http://www.1000phone.com"; //错误!没有指定类型的变量是没有定义的变量,不能使用
和强类型语言相对应的是弱类型语言,Python、JavaScript、PHP 等脚本语言一般都是弱类型的。
弱类型语言有两个特点:
- 变量无须声明就可以直接赋值,对一个不存在的变量赋值就相当于定义了一个新变量。
- 变量的数据类型可以随时改变,比如,同一个变量可以一会儿被赋值为整数,一会儿被赋值为字符串。
注意,弱类型并不等于没有类型!弱类型是说在书写代码时不用刻意关注类型,但是在编程语言的内部仍然是有类型的。我们可以使用 type() 内置函数类检测某个变量或者表达式的类型,例如:
x = 10
print(type(x))
x = 12.5
print(type(x))
结果:
<class 'int'>
<class 'float'>