Python函数变量赋值 python变量赋值操作( 二 )


a是b?True
a是c? False
可以看到 , a,b, c所指向的对象的值都相同(a==b为True). a和b都是代表同一个对象(a is b为True) 。当我们通过变量b对该列表进行修改时 , 由于a也指向该列表,所以当打印a,b时,我们得到相同的值 。而a和c则是代表不同的对象(a is c为False),所以修改b所指向得列表不会改变c梭子乡的列表的值.
在Python中 , 所有的变量都代表了对象 , 即便是简单的数字类型(int, float, bool),也是以对象的形式存在的 。我们看下面的代码:
输出结果是:
a==b为True
a is b为True
可见,a, b都是指向同一个对象 。接下来 , 进行下面的操作,
输出结果是:
a = 1, b = 2
a is b为False
与前面的列表不同,当我们对b做修改时,实际上是给b赋予了一个新生成的对象,对数值类型来说,所有的数值运算都会创建一个数值对象,并将这个对象指定给变量 。因此,a与b指向了不同的对象,数值也不同 。
再回过头来看列表对象,
我们知道,b是与a指向同一对象的变量,使用b对该对象进行修改,与使用a对该对象进行修改 , 效果是完全一样的 。如果我们需要需要一个与a完全相同又与a相互独立的列表,那么就需要复制这个对象,也就是新建一个内容和源对象相同的对象 。
对于列表来说 , 最简单的复制方法是通过下标索引的方式创建新的列表:
对于各种数据类型通用的对象拷贝复制,我们可以使用python内建的copy模块 。
对于复杂对象(如嵌套列表)的复制,则需要注意区分浅拷贝和深拷贝 。我们来看下面的代码:
得到的结果是:
a[0] is b[0]为 True
a[0] is c[0]为 False
a = [[-1, 2, 3], [4, 5, 6]]
b = [[-1, 2, 3], [7, 8, 9]]
c = [[1, 2, 3], [4, 5, 6]]
a[1] is b[1]为False
从上面的代码我们可以看到,copy函数为浅拷贝,只拷贝了对象的外层,而对象内部所包含的对象仍然指向原有的对象 。而deepcopy则为深拷贝,对象内部的对象也进行了复制 。
以上我们对变量的赋值和对象的复制做了更加深入的分析 。在具体的使用中 , 我们需要根据具体来决定使用赋值、浅拷贝、深拷贝 。
Python笔记之input和变量赋值在Python中,默认所有正确的语法,包括标点符号都是【英文】,若输入Python函数变量赋值了中文标点 , 则会报错【syntaxError:invalid syntax】(语法错误Python函数变量赋值:无效语法)
Print() 打印内容
1. 输出显示数字Python函数变量赋值:print(0),结果是0
2. 输出显示运算:print(1+1) , 结果是2
3. 输出任意内容,只要用单引号'括起来即可:print('牛') , 结果是牛
4. 若碰到输出的内容,比如英文里有单引号的,则两种方法:
4.1 使用双引号括"起来即可:print("Let's go!"),结果是Let's go!
4.2 使用转义字符\': print('Let\'s go!')
5. 若输出的内容里,需要换行 , 则有两种方法:
5.1 需要用到三引号'''括起来即可:print('''第一行
第二行''')
结果如下:
第一行
第二行
5.2 使用转义字符:\n
Print("第一行\n第二行")
######延伸########
转义字符的用法:反斜杠+想要实现的转义功能首字母
eg:\n: newline 换行
\b: backspace 退格
\r: return 回车
常用的转义字符总结如下所示:
变量:
命名规范:
? 只能是一个词;
? 只能包含字母、数字和下划线;
? 不能以数字开头;
? 尽量描述包含的数据内容;

推荐阅读