“专业人士笔记”系列目录:
创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!
要在Python中创建一个变量,您所需要做的就是指定变量名,然后为它赋值
格式如下
<variable name> = <value>
Python使用“=”来为变量赋值,不需要预先声明一个变量(或为其分配一个数据类型),只需为变量本身分配一个值就可以用该值声明并初始化该变量
注意:不能声明一个变量而不给它赋初值,这点和JAVA等编程语言有本质不同
下面在python3云环境上实际操作:
接下来开始讲述python变量相关内容:
python变量赋值
打开pycharm软件,参照上面文章应该已经与云环境同步了,输入代码:
# Integer 整数型
a =2print(a)
# 输出: 2
# Integer 整数型
b =9223372036854775807
print(b)
# 输出: 9223372036854775807
# Floating point 小数型
pi =3.14
print(pi)
# 输出: 3.14
# String 字符串型
c ='A'
print(c)
# 输出: A
# String
name ='John Doe'
print(name)
# 输出: John Doe
# Boolean 布尔值 真或假 True 或False
q =True
print(q)
# Output: True
# 空值或null类型
x =None
print(x)
# Output: None
变量赋值从左到右工作,下面会给出一个错误样例
0= x
=> 将会输出: SyntaxError: can't assign to literal 因为赋值方向反了
注意:不能使用python的关键字作为有效的变量名,你可以通过如下代码看到内置关键字列表
import keyword
print(keyword.kwlist)
运行代码后打印出来的,不能作为变量名的列表
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
变量命名规则:
1、变量名必须以字母或下划线开头
2、变量名的其余部分可能由字母、数字和下划线组成
3、名称区分大小写
尽管在Python中声明变量时不需要指定数据类型,但当为变量在内存中分配必要的区域时,Python解释器会自动为它选择最合适的内置数据类型
现在你已经知道了赋值的基础知识,让我们来看看python中赋值的微妙之处
当使用=号执行赋值操作时,=号左边的名称是右边对象引用的代名词
然后,=所做的是将右边对象的引用分配给左边的名称
因此,从上面的许多赋值示例中,如果我们选择pi =3.14,那么pi就是对象3.14的一个代名词(而一个对象可以有多个名)。如果你不明白下面的内容,回到这一点,再读一遍!同样,你也可以看看这个来更好地理解
变量级联赋值
您可以在一行中为多个变量分配多个值。注意,在=操作符的左右两边必须有相同数量的参数
a, b, c =1,2,3
print(a, b, c)
# 输出: 1 2 3
a, b, c =1,2
#会报错: need more than 2 values to unpacka 因为有3个变量,但只赋了2个值
a,b =1,2,3
#同样会报错,因为只有2个变量,却赋了3个值
当然, 你还可以同时将单个值分配给多个变量 ,如下代码:
a = b = c =1
print(a, b, c)
# 输出: 1 1 1
在使用这种级联赋值时,需要注意的是,所有三个变量a、b和c都指向内存中的同一个对象,即值为1的int对象。换句话说,a、b和c是给同一int对象的三个不同的名称。正如所期望的那样,之后为其中一个对象分配不同的对象并不会改变其他对象
级联赋值对list对象引用需特别注意
这里有一点要注意的是,当list等可变类型进行级联赋值时,情况会很大的不同,看以下代码:
x = y =[7,8,9] #级联赋值 list列表
x[0]=13 #给列表中索引为0的(即当前值为7的那个),将值改成13
print(y) #输出列表y的值
#输出 [13, 8, 9]
看到了吗?很奇怪,我明明改的是列表x的值,可是打印出y的值时候却发现y的值也发生变化了!
这是因为,在内存中,对于list列表类型存储的是引用,其中x和y都是同一个值的代名词,一旦其中一个发生更改,其他所有的都会同步更改!
嵌套list列表赋值
嵌套列表在python中也是有效的。这意味着一个列表可以包含另一个列表作为元素,如下代码
x =[1,2,[3,4,5],6,7]
print x[2]
# 输出: [3, 4, 5]
print x[2][1]
# 输出: 4
python数据类型变化
Python中的变量不必保持它们最初定义时的类型——您可以简单地使用=将一个新值赋给一个变量,即使该值是另一种类型的值
如果您对此感到困扰,请考虑这样一个事实:
=左边的只是对象的名称。首先申明一个整数类型变量为a,其值为2
然后改变主意,决定将变量a变为一个string字符串对象,直接用a=‘new value’就可以自动切换数据类型,而不像java那样需要重新申明变量,就这么简单!
好了,今天的分享就到这里,转载请注明出处,违者必究!