python基础面试必备(一)
来源:互联网 发布:中国海外并购数据 编辑:程序博客网 时间:2024/05/18 10:45
1.元组,字典和列表的区别
Python 元组
元组是另一个数据类型,类似于List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
以下是元组无效的,因为元组是不允许更新的。而列表是允许更新的:
实例(Python 2.0+)
Python 字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
实例(Python 2.0+)
输出结果为:
This is oneThis is two{'dept': 'sales', 'code': 6734, 'name': 'john'}['dept', 'code', 'name']['sales', 6734, 'john']
2.什么是lambda函数?它有什么好处?
答:lambda 表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数
lambda函数:首要用途是指点短小的回调函数
lambda [arguments]:expression
>>> a=lambdax,y:x+y
>>> a(3,11)
3.Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
int(x [,base])
将x转换为一个整数
long(x [,base] )
将x转换为一个长整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
4.Python算术运算符
以下假设变量: a=10,b=20:
5.Python运算符
(1)以下假设变量a为10,变量b为20:
(2)下表中变量 a 为 60,b 为 13,二进制格式如下:
a = 0011 1100b = 0000 1101-----------------a&b = 0000 1100a|b = 0011 1101a^b = 0011 0001~a = 1100 0011
(3)Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
(4)除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
6.is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
>>> a = [1, 2, 3]>>> b = a #传的是地址>>> b is a True>>> b == aTrue>>> b = a[:] #相当于重新开辟一个空间>>> b is aFalse>>> b == aTrue
python中会为每个出现的对象分配内存,哪怕他们的值完全相等(注意是相等不是相同)。如执行a=2.0,b=2.0这两个语句时会先后为2.0这个Float类型对象分配内存,然后将a与b分别指向这两个对象。所以a与b指向的不是同一对象:
a=2.0b=2.0a is b # 结果为Falsea == b # 结果为True
但是为了提高内存利用效率对于一些简单的对象,如一些数值较小的int对象,python采取重用对象内存的办法,如指向a=2,b=2时,由于2作为简单的int类型且数值小,python不会两次为其分配内存,而是只分配一次,然后将a与b同时指向已分配的对象:
a=2b=2a is b # 结果为Truea == b # 结果为True
如但果赋值的不是2而是大的数值,情况就跟前面的一样了:
a=4444b=4444a is b # 结果为Falsea == b # 结果为True这里 is 和 == 类似编译原理中传值与传地址。又或者说是 is 只是传递的指针,判断是否指向同一个地址块,这样 is 两边的参数指向内存中同个地址块,毕竟我家电视跟你电视不是同一个东西。而 == 则是仅仅判断值相同
如果变量写在同一行,将会指向同一个对象
>>> a=4444; b=4444; # 写在同一行>>> a is bTrue>>> a == bTrue>>> c = 5555 # 写在不同一行>>> d = 5555 # 写在不同一行>>> c is dFalse>>> c == dTrue>>>
以上情况在交互模式会出现,使用脚本运行,不管是否同一行,都是指向同一个地址:
# -*- coding: utf-8 -*-a = 4444; b = 4444print(a is b) # truec = 5555d = 5555print(c is d) # true
- python基础面试必备(一)
- 网络工程师必备基础(一)
- sql server 必备基础(一)
- Linux基础及常用命令(笔试面试必备)
- Python 基础(一)
- Python基础(一)
- Python基础(一)
- Python基础(一)
- Python基础(一)
- Python基础(一)
- Python基础(一)
- Python基础(一)
- python基础(一)
- Python基础(一)
- python 基础(一)
- python基础(一)
- python基础(一)
- Python基础(一)
- thinking in java 4
- WKWebView的OC和JS交互
- lombok自动生成set,get,方法
- Spring Boot 快速入门
- CI框架去除index.php(Nginx)
- python基础面试必备(一)
- 解决127.0.0.1无法访问本地tomcat服务器
- Android补间动画之ScaleAnimation、AlphaAnimation、RotateAnimation、TranslateAnimation、AnimationSet详解
- 关于<merge/>
- postman使用教程二
- linux和网络编程笔记
- 指数哥伦布码
- MATLAB变量
- mysql 分库分表