1.简述列举了解的编程语言及语言间的区别?
编译型语言:一次性全部编译成二进制码,再去运行
解释型语言:编译一句,运行一句
一、python 解释型 简洁高效,容易上手
二、 java 混合型 (JVM、JIT编译器)学习成本,开发周期慢,web方向偏重
三、 c 编译型 属于底层语言,只有面向过程,没有面向对象
四、c++ 编译型 属于底层语言,既有面向过程,也有面向对象
五、go 编译型 应用在区块链,高并发高可用,游戏方向
需要代码的同学可以添加群624440745
2.列举Python2和Python3的区别?
python2:
一、print “123”
二、range 返回 list
三、默认编码 --ascii码(无中文)
四、两种类 经典类 和新式类
class Car() : pass 经典类(多继承当中搜索原则以深度优先)
class Car(object) : pass 新式类(多继承当中搜索原则以广度优先)
类.mro() => 继承顺序列表
五、除法:结果是整型
六、int,long(长整型)
七、raw_input => 等价于 python3 input,如光写input 就得输入数字
python3:
一、print()
二、range 返回的是可迭代对象
三、默认编码 --utf-8
四、都是新式类
五、除法:结果是小数(无论整数相除还是浮点数相除)
六、int
七、input
3.看代码写结果
v1 = 1 or 2 输出: 1
v2 = 3 and 7 or 9 and 0 输出: 7
逻辑运算符优先级 () > not > and > or
逻辑短路
and 全真则真,一假则假
or 一真则真,全假则假
True or 表达式 => True (单个运算符和多个运算符的情况,都可以直接判定结果)
False and 表达式 => False(单个运算符的时候可以)
布尔值为假的十种情况: bool() => False
0,0.0,False,0j,’’,[],(),set(),{},None
v1 = 1 or 2
print(v1) # 1
v2 = 3 and 7 or 9 and 0
v2 = 7 or 0
v2 = 7
print(v2)
“”"
数据类型:
Number(int , float , complex , bool)
容器:str list tuple set dict
复数 : 用在数据分析,人工智能中
complexvar = 3 + 4j
3 : 实数
4j: 虚数
j: 如果有一个数,他的平方等于-1 ,那么这个数就是j,科学家认为有,表达高精度类型
“”"
4.比较以下值有什么不同?
v1 = [1,2,3] 数字
v2 = [(1),(2),(3)] 数字 括号写些什么类型数据,就是什么数据
v3 = [(1,),(2,),(3,)] 元组
逗号才是区分是否是元组的标识符
v1 = [1,2,3] # 列表[int , int , int]
v2 = [(89),(2.12),(“abc”)] # [int , float , str]
v3 = [(1,),(2,),(3,)] # [tuple,tuple,tuple,tuple]
res = () # 表达空元组
5.用一行代码实现数值交换。
python 特有
a = 1
b = 2
a,b = b,a
通用
tmp = a
a = b
b = tmp
6.Python中单引号、双引号、三引号的区别?
单双引号没有区别,三引号可以支持跨行
在互相嵌套时需注意:里外不能使用相同的引号
7.is和==的区别
is 是判断两边内存地址是否相同
== 判断两边的值是否相同
8.python里如何实现tuple和list的转化?
int float complex bool str list tuple set dict
list(数据)
tuple(数据)
9.如何实现字符串 name='老男孩’的反转?
name[start🔚step] 语法
name[::-1]
10.两个set如何获取交集、并集、差集?
交集 &
intersection
差集 -
difference
并集 |
union
对称差集 ^
symmetric_difference
11.那些情况下, y != x - (x-y)会成立?
“”"
非空集合且不为子父关系的两个集合
“”"
y != x-(x-y)
x = {“a”,“b”,“c”}
y = {“b”,“d”}
if y != x-(x-y):
print(“ok”)
12.Python中如何拷贝一个对象?
import copy
针对于列表的拷贝,还可以使用[:] , [::],浅拷贝的一种方式
lst1 = [1,2,3]
lst2 = lst1[:]
lst1.append(4)
print(lst2)
13.简述 赋值、浅拷贝、深拷贝的区别?
#赋值 : 将变量和值在内存中形成映射指向关系
#浅拷贝 : 只拷贝第一级里所有的元素 copy.copy
#深拷贝 : 为所有层级的元素都单独开辟新空间 copy.deepcopy() (地址:原不可变数据只是暂时的指向,可变的数据独立开辟新空间)
“”"
可变数据: list set dict
不可变数据: int float bool complex str tuple
“”"
import copy
lst1 = [1,2,3,[4,5,6]]
lst2 = copy.deepcopy(lst1)
lst1[0] = 100
print(lst1)
print(lst2)
print(id(ls