作业 1

Q1:简述Python垃圾回收机制

当变量值的引用计数为0的时候,python会自动回收该变量值的占用
(Python使用引用计数机制作为垃圾回收的主要方式,当一个对象的引用计数降到0时,Python会自动释放它所占用的内存。除了引用计数,Python还使用标记-清除(mark-sweep)和分代回收(generation)算法来处理循环引用的情况。)

Q2:分析下述代码

x = 10
y = 10
z = 10
del y

10的引用计数为2

x = 257
y = x
del x
z = 257

x对应的变量值257在执行del x后的引用计数为1,但在执行z = 257后,其引用计数可能为1或者2,取决于Python解释器是否决定复用已有的整数对象

Q3:简述Python小整数池概念

范围是[-5,256],该范围内的小整数对象是全局解释器范围内被重复使用,永远不会被垃圾回收机制回收,其是避免因创建相同的值而重复申请内存空间所带来的效率问题

Q4:对于x = 10,请用Python代码分别打印变量值、变量值内存地址和变量数据类型

x = 10
print(x)
print(id(x))
print(type(x))

Q5:分析如下程序

x = 257
y = x
z = 257

请判断x、y、z的变量值是否相同?x、y、z的所在的内存地址是否相同?请用python代码阐述为什么?

x = 257
y = x
z = 257
print(x == y == z)          # 检查变量值是否相同,应该输出True
print(id(x), id(y), id(z))  # 打印内存地址
print(id(x) == id(y))       # x和y的内存地址是否相同,应该输出True
print(id(x) == id(z))       # x和z的内存地址是否相同,输出可能为False

Q6:简述Python的五大数据类型的作用、定义方式、方法

Python的五大数据类型是数字(Number)、字符串(String)、列表(List)、字典(Dictionary)和布尔(Boolean)类型。它们各自的作用、定义方式和方法如下:

数字类型(Number)

  • 作用:用于存储数值,包括整型(int)、浮点型(float)、复数(complex)等。
  • 定义方式
    • 整型:num = 10
    • 浮点型:num = 10.5
    • 复数:num = 3.14j
  • 方法:数字类型提供了多种运算符进行数学计算,如+-*/等,以及内置函数如abs()divmod()pow()round()等。

字符串类型(String)

  • 作用:用于存储文本数据,可以包含字母、数字、符号和空格。
  • 定义方式:使用单引号、双引号或三引号定义字符串。
    • 单引号:s = 'hello'
    • 双引号:s = "hello"
    • 三引号:s = """hello"""s = '''hello'''
  • 方法:字符串类型有很多方法,例如upper()lower()join()split()replace()find()format()等。

列表(List)

  • 作用:列表是一个有序的集合,可以包含不同类型的元素,包括数字、字符串、甚至其他列表。
  • 定义方式:使用方括号[]定义列表,并用逗号分隔其中的元素。
    • 例子:lst = [1, 'a', 3.14, [2, 'b']]
  • 方法:列表提供了多种方法,如append()extend()insert()remove()pop()sort()reverse()等。

字典(Dictionary)

  • 作用:字典是一个无序的键值对集合,键必须是唯一的,而值不必。
  • 定义方式:使用大括号{}定义字典,并用冒号:分隔键和值,逗号,分隔不同的键值对。
    • 例子:dct = {'name': 'Alice', 'age': 25, 'is_student': True}
  • 方法:字典提供了多种方法,如get()items()keys()values()update()pop()popitem()等。

布尔型(Boolean)

  • 作用:布尔型用于表示逻辑值,只有两种值:TrueFalse,通常用于条件判断和循环控制。
  • 定义方式:直接使用TrueFalse赋值。
    • 例子:is_valid = True
  • 方法:布尔型没有特殊的方法,但可以参与逻辑运算符如andornot等的运算。

这些基本类型是Python中构建更复杂数据结构和进行数据操作的基础。每种类型都提供了丰富的方法,以便高效地进行数据处理和操作。

Jupyter快捷键

* shift+enter 运行
* ese 退出代码块
* b 往下扩展代码块
* a 往上扩展代码块
* y 代码模式
* m markdown模式
* dd 删除代码块
posted @ 2023-12-02 19:44  好好努力嗷  阅读(43)  评论(0)    收藏  举报