专项练习python(一)NKW

第一题:考察python中的内置函数map( )和list( )

考察python3中内置函数map函数的用法

map函数:

  • 描述:它会根据提供的函数对指定序列做映射
  • 语法:map(function,iterable,…)
  • 参数:——function是函数
    ——iterable是一个或多个序列
  • 返回值:一个迭代器。
    迭代器并非是值一个列表或字典,而是一个地址,类似于指针,它是用来访问容器(保存元素的数据结构)中保存的元素;实际上,数组范围内的指针也是一种迭代器

注意:之后记得总结一下迭代器及其作用

  • 实例
def square(x):
        return x ** 2
map(square,[1,2,3,4,5]) #计算列表总各个元素的平方,返回迭代器
#迭代器 <map object at 0X100d3d550>
list(map(square,[1,2,3,4,5])) #使用list()将迭代器所指的东西转化为列表「1,4,9,16,25」
list(map(lambda x:x ** 2,[1,2,3,4,5]))

第二题:考察python中字符串的使用及字符串内建函数

center(width,fillchar)

字符串

  • 描述:python中的字符串是它最常用的数据类型,我们一般用(“ ” 或’ ')来创建字符串,不需要先定义后赋值,直接为变量创建一个值就可以创建好字符串
var 1='HELLO,WORLD'
VAR 2="Runoob"

内建函数center(width,fillchar)
返回值:一个指定宽度为width的字符串,fillchar为填充的字符,默认为空格,代码中会给出用什么填充

第三题: 数组的元素是否改变的问题

Alt
本题:a经过循环操作后,形成了一个二维数组;b是一个新的列表,其实也是一个新的二维数组。在python中, 如果用一个列表a乘一个数字会得到一个新的列表b, 这个新的列表b的元素是a的元素重复

a=[['1','2']for i in range(2)]
b=[['1','2']]*2
#a[0][1]='3'
#b[0][0]='4'
print(a,b)

结果 :
在这里插入图片描述

a=[['1','2']for i in range(2)]
b=[['1','2']]*2
a[0][1]='3'
b[0][0]='4'
print(a,b)

结果 :
在这里插入图片描述
b变量的b「0」和b「1」其实是一个东西,在同一块地址上。因此修改b[0][0]的时候,b[1][0]也会改变,可以从以下代码看出:

#打印b[0]与b[1]的id
print(id(b[0]))
print(id(b[1]))
print(id(b[0][0]))
print(id(b[1][0]))

结果:
在这里插入图片描述

第四题 :关于计算机基本原理

Alt
第一个错:栈是从高地址向低地址增长,而堆是向高地址增长;

查看 1.数据结构中的堆栈和内存中的堆栈,如下

第二个:

去查查,总结一下函数调用,压栈的工作原理

第三个错:python3中int的取值范围

查看2.python3中的int取值范围(64位机子)

第四个正确

如下
1.数据结构中的堆栈和内存中的堆栈

数据结构中的堆栈:是一种数据结构,管理数据的容器。可以用来存放数据和地址。栈只能在栈顶进行操作,例如删除或插入

内存中的堆栈是确切存在的物理结构,可以存放不同数据的内存空间

  • 内存中的,存放函数的函数值,局部变量,是由系统自动分配和释放的,是由高地址向低地址扩展的数据机构,是一段连续的内存区域,是对数据结构中的栈这种手段的实现。栈的顶地址最大容量系统预先设定好的,在程序编译时,它就是一个确定的常数,但注意并不是所有用到栈技术的区域都是栈区,虽然目前是这样,这是概念定义的准确性问题。

只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。

  • 内存中,一般用来动态分配内存的,它的实现跟操作系统和编译器有关,一般内存中的堆貌似是用链表实现的。
    在堆中,队列优先,先进先出。是一种向高地址扩展的数据结构,不连续的内存区域。

在操作系统中,堆一般是由程序员动态分配释放的,分配方式:操作系统有一个专门存储空闲地址的链表,当程序申请分配空间时,OS会遍历这个链表(遍历方向:低地址向高地址),找到第一个大于申请的空间的堆节点,并从空闲节点列表中删除该节点,把空间分配给程序,若找到的空间比申请的空间要大,系统会自动把多余的那部分重新放入空闲链表中。一般来说,操作系统会在内存的首地址处记录分配的空间大小,以便程序能够正确地释放该内存空间。堆的大小取决于计算机有效的虚拟内存。

2.python3中的int取值范围(64位机子)

int的范围*
python3:
  在32位机器上,整数的位数为32位,取值范围为-231~231-1;
  在64位系统上,整数的位数为64位,取值范围为-263~263-1;
python3:
  理论上长度是无限的(只要内存足够大)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值