1,Python中的数据类型有哪些
Python基本数据类型一般分为:数字、字符串、列表、元组、字典、集合这六种基本数据类型。
2,Python中的三元运算符是什么,怎么写?
a = 1
b = 2
h = ""
h = "变量1" if a>b else "变量2"
3,计算1到100的和(进阶:用一行代码实现)
print(sum(range(1,101)))
4,字典如何删除键和合并2个字典
删除key
dic1={'name':'laowang','age':18}
del dic1['name']
print(dic1)
合并2个字典
dic2.update(dic1)
print(dic2)
5,字典操作中 del 和 pop 有什么区别?
del 语句和 pop() 函数作用相同,pop() 函数有返回值。
names.pop("alex") # 删除指定key
names.popitem() # 随便删除1个key
del names["oldboy"] # 删除指定key,同pop方法
names.clear() # 清空dict
6,如何把元组("a","b")和元组(1,2),变为字典{"a":1,"b":2}
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。
实现代码:
t1=("a","b")
t2=(1,2)
c=zip(t1,t2)
l1=[]
for iin c:
l1.append(i)
print(dict(l1))
7,列表如何按值删除,按下标删除和合并2个列表,列表去重。
1.按值删除可以使用remove函数删除。del 和pop均可以按照下边删除。
2.合并列表可以采用extend函数,例如:
l1=[1,2,3,4]
l2=["a","b","c"]
l2.extend(l1)
print(l2)
列表去重可以采用set方法去重后再转换回来,例如:
l1=[1,2,3,4,3,2]
print(list(set(l1)))
8,两个列表[1,5,7,9]和[2,2,6,8]合并为[1,2,2,3,6,7,8,9]
冒泡算法
l1=[1,5,7,9]
l2=[2,2,6,8]
l3=l1+l2
for i in range(len(l3)-1):
for j in range(len(l3)-1-i):
if l3[j]>l3[j+1]:
l3[j],l3[j+1]=l3[j+1],l3[j]
print(l3)
9,如何打乱一个有序的列表
random.shuffle(item) #打乱item的顺序,相当于"洗牌"
10,列表 [:: - 1]是什么意思
将列表倒过来排列(-1这个位置代表的是步长)
切片[开始:结束:步进]
11,列出python中可变数据类型和不可变数据类型,并简述原理
可变类型(mutable):变量进行append、+=等这种操作后 == 改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
list
dict
set
bytearray
user-defined classes (除非是特别定义的不可变)
a = [1,2]
b = [1,2]
print(id(a))
print(id(b))
不可变类型(immutable):改变了变量的值 == 新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象(一个地址), python的id() 方法让你明白
int
float
decimal
complex
bool
string
tuple
range
frozenset
bytes
12,s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"
sort方法还有两个可选参数:key和reverse
1、key在使用时必须提供一个排序过程总调用的函数:
1
2
3
x = ['mmm', 'mm', 'mm', 'm' ]
x.sort(key = len)
print x # ['m', 'mm', 'mm', 'mmm']
2、reverse实现降序排序,需要提供一个布尔值:
1
2
3
y = [3, 2, 8 ,0 , 1]
y.sort(reverse = True)
print y #[8, 3, 2, 1, 0]
实现代码:
s = "ajldjlajfdljfddd"
# 将s转换成set类型去重
ss = set(s)
print(ss)
# 将去重的set转换成列表,用于排序
ss = list(ss)
ss.sort(key=s.index)
print(ss)
# 将排好序的列表转换成字符串
ss = ''.join(ss)
print(ss)
13,字典dict={"name":"alex","age":18,"city":"北京","tel":"1381111111"}根据键从小到大排序输出
dict = {"name": "alex", "age": 18, "city": "北京", "tel": "1381111111"}
l1 = []
for i in dict:
l1.append(i)
l1.sort()
for i in l1:
print(i, dict[i])
14,a=(1,)b=(1),c=("1") 分别是什么类型的数据?试着用type测试一下看看和你想的一样不一样
15,python中交换两个数值是如何做的
a,b=b,a
第三种办法本质上是元组之间的赋值
16,[1,2,3]+[4,5,6]的结果是多少?试试看
[1, 2, 3, 4, 5, 6]
17," hehheh "去除首尾空格 ps:字符串的操作也很多,大多数很常用,想想(首字母大写,字符串全部转换成大写,全部转换成小写,字符串拼接,字符串查找,判断字符串是否全是数字等等,有很多,试试自己知道这些对应的方法是什么?)
s=" HehHeh "
print(s.strip())
print(s.upper())
print(s.index("h"))
print(s.count("h"))
print(s.center(50,"*"))
print(s.isdigit())
print(s.zfill(20))
print(s.casefold())
print(s.rfind("e"))
print("**********")
print(s.isspace())
print(s.replace("h","g"))
print(s.swapcase())
18,r、r+、rb、rb+文件打开模式区别
#只读模式
with open ( "file.txt" ,'r' ) as f:
for line in f.readlines():
print ( line )
# 读写,可以写,内容在文件最开头
with open ( "file.txt" ,'r+' ) as f:
#for line in f.readlines():
f.write('r+ ...')
# w : 普通的写模式,如文件不存在,则建立
# w+ : 如果文件不存在,则建立
with open ( "file.write2.txt" , 'w+' ) as f:
for line in f.read():
print (line)
f.write('w+ ...2 ')
# rb : read binary 读取一些非文本形式,二进制形式文件用到
# wb : write binary 写一些PDF,二进制形式的文件需要
19,什么是相对路径,什么是绝对路径
绝对路径,从根目录为起点到你所在的的目录;
相对路径,从一个目录为起点到你所在的目录。
绝对路径: C:\A文件夹
相对路径(如果你在B文件夹时): ..\B文件夹 (‘..\’向上一级意思)
20,Python中is和==有什么区别
== 比较操作符:用来比较两个对象值是否相等。
is 同一性运算符:比较两个对象的id值是否相等,即是否是同一对象,是否指向同一个内存地址。
补充:当两个对象值相同时,只有其为数值型或字符串型,a is b才为True,当a和b是tuple,list,dict或set型时,a is b为False 。
21,文件操作的read,readline,readlines的区别
read
1.读取整个文件,将文件内容放到一个字符串变量中。
2.如果文件非常大,尤其是大于内存时,无法使用read()方法。
3.read()直接读取字节到字符串中,包括了换行符
readline
1.readline()方法每次读取一行;返回的是一个字符串对象,保持当前行的内存
2.比readlines慢得多
3.readline() 读取整行,包括行结束符,并作为字符串返回
readlines 一次性读取整个文件;自动将文件内容分析成一个行的列表。