Python成为专业人士笔记–详解python创建变量并赋值

“专业人士笔记”系列目录:

创帆云: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那样需要重新申明变量,就这么简单!

好了,今天的分享就到这里,转载请注明出处,违者必究!

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值