0. 以下哪个变量的命名不正确?为什么?
(A) MM_520 (B) _MM520_ (C) 520_MM (D) _520_MM
c,因为 Python 中的变量名不能以数字开头。
1. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
× 黑夜 (见下面总结)
小甲鱼
2. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
× 黑夜(见下面总结)
小甲鱼
3. 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?
520
会打印:520,注:这里没有单引号括起来,但是他是一个字符串,因为使用 print() 打印,所以不包含单引号。可以试试直接>>>first,它是一个字符串的。
4. 除了使用反斜杠(\)进行字符转义,还有什么方法可以打印:Let's go! 这个字符串?
(1)
>>> "Let's go!"
"Let's go!"
(2)
>>> print("Let's go!")
Let's go!
5. 如果非要在原始字符串结尾输入反斜杠,可以如何灵活处理?
>>> print("Let's go!\\")
Let's go!\
6. 在这一讲中,我们说变量的命名需要注意一些地方,但小甲鱼在举例的时候貌似却干了点儿“失误”的事儿,你能看得出小甲鱼例子中哪里有问题吗?
动动手:
0. 还记得我们第一讲的动动手的题目吗?这一次要求使用变量,计算一年有多少秒?
提示:可以以 DaysPerYear(每年天数),HoursPerDay(每天小时数),MinutesPerHour(每小时分钟数),SecondsPerMinute(每分钟秒数)为变量名。
>>> DaysPerYear = 365
>>> HoursPerDay = 24
>>> MinutesPerHour = 60
>>> SecondsPerMinute = 60
>>> ans = DaysPerYear * HoursPerDay * MinutesPerHour * SecondsPerMinute
>>> ans
31536000
1. 关于最后提到的长字符串(三重引号字符串)其实在 Python3 还可以这么写,不妨试试,然后比较下哪种更方便?
总结
赋值,掌握的不够好。
自己理解:针对数组,列表等对象通用,对于单个数据,字符串等都不通用。
列表:
>>> a = [1 , 2 , 3 , 4]
>>> b = a
>>> a.append(6)
>>> a
[1, 2, 3, 4, 6]
>>> b
[1, 2, 3, 4, 6]
字符串:
>>> a = 'asd'
>>> b = a
>>> a = 'asd' + 'asd'
>>> a
'asdasd'
>>> b
'asd'
-
直接赋值:其实就是对象的引用(别名)。
-
浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。
-
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
-
解析
1、b = a: 赋值引用,a 和 b 都指向同一个对象。
2、b = a.copy(): 浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。
b = copy.deepcopy(a): 深度拷贝, a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。