码迷,mamicode.com
首页 > 其他好文 > 详细

刷题(三)

时间:2020-04-19 01:21:51      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:赋值   前置   text   引用   copy   app   lan   class   ring   

题目一

What gets printed?()

print r"\nwoow"

A. new line then the string: woow
B. the text exactly like this: r"\nwoow"
C. the text like exactly like this: \nwoow
D. the letter r and then newline then the text: woow
E. the letter r then the text like this: nwoow

分析

python中字符串前置r代表原始字符串标识符,该字符串中的特殊符号不会被转义,适用于正则表达式中繁杂的特殊符号表示。不加r表示要转义成换行,一般为了输出字符串"\n",有两种做法:在前面加上r或者对\进行转义(即"\n")

答案

C

题目二

下面代码运行后,a、b、c、d四个变量的值,描述错误的是()

import copy
a = [1, 2, 3, 4, [‘a‘, ‘b‘]]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append(‘c‘)

A. a == [1,2, 3, 4, [‘a‘, ‘b‘, ‘c‘], 5]
B. b == [1,2, 3, 4, [‘a‘, ‘b‘, ‘c‘], 5]
C. c == [1,2, 3, 4, [‘a‘, ‘b‘, ‘c‘]]
D. d == [1,2, 3, 4, [‘a‘, ‘b‘, ‘c’]]

分析

  • 直接赋值:就是对象的引用(别名)
  • 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象
  • 深拷贝(deepcopy):完全拷贝父对象及其子对象
b = a:赋值引用,a和b都指向同一个对象

技术图片

b = a.copy():浅拷贝,a和b都是一个独立的对象,但它们的子对象是指向同一对象(是引用)

技术图片

b = copy.deepcopy(a):深拷贝,a和b完全拷贝了父对象和子对象,两者是完全独立的

技术图片
所以d = [1, 2, 3, 4, [‘a‘, ‘b‘]],a和d是是完全独立的,a的变化不会引起d的变化

答案

D

刷题(三)

标签:赋值   前置   text   引用   copy   app   lan   class   ring   

原文地址:https://www.cnblogs.com/my_captain/p/12729154.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!