1.
import 导入模块
import xxx,xxx,xxx 可以同时导入多个库
建议每次导入一个。
from xxx import xx 从模块中导入指定方法
xx()导入的方法就直接用
2.
python基本数据类型
数字(int float long complex(复数)) 字符串 列表 字典 元组 集合 py3去除long了,拥抱py3吧
其中complex是高中数学知识,不知道的就直接百度。
3.
区分可变数据类型和不可变数据类型
就是变量的内存地址变不变的问题
可变数据类型:字典dict,列表list
不可变数据类型:整型int 浮点数float 字符串str 元组tuple
比较拗口,
地址不能变的叫可变数据,地址能变到叫不可变数据
,完全相反的。。。。。。。。。。。
4.
将"hello world"转换为首字母大写"Hello World"
我开始是这么写的,这里有个map函数,功能是把方法映射到后面的列表中每一位。map(方法,列表)=>2个参数
def q(n):
"""转换大小写方法,没有用for,
因为for遇到return就结束了,
那时候的 b = ["H","W"],自己试一下就知道了 """
return n[:1].upper() + n[1:].lower()
if __name__ == '__main__':
a = ['hello', 'world']
b = list(map(q, a)) # q是方法,a是列表
print(b[0]+" "+b[1])
结果是 Hello World
后来知道有个函数 capitalize() 专门干这个首字母大写的
def q(n):
""" 实现capitalize()方法"""
return name.capitalize()
a = 'hello world'
a1 = a.split(" ")
b = list(map(q, a1))
print(b)
结果是 Hello World
5. 如何检测字符串中只含有数字?
import re
res = str(input("输入一个字符串:"))# 确保输入是字符串
value = re.findall(r'\d+', res)
# 返回一个列表
if len(value) == 0:
# 假如输入都不是数字,那value必然是空列表
print("字符串不是全数字")
elif len(value[0]) == len(res):
# 捕获到全部输入是数字,
#那么一定是在第一个value[0]的位置,然后长度和输入相同就OK了
print("字符串全部是数字")
else:
print("字符串不是全数字")
6. 将字符串"ilovechina"进行反转
#切片法,还可以用 reversed()方法 ,递归,或者其他
value = "ilovechina"
res = value[::-1]
print(res)
reversed()方法
value = "ilovechina"
res = reversed(value)
print(res)
#这里的返回值是一个地址,原因是reversed返回的是一个迭代器
#print(”“.join(res)) 就可以把结果显示出来了
一个函数的输出是print(xxx),把print(xxx)换成 yeild xxx 就变成了生成器函数。结果是一个迭代器,迭代器是一个变量,就是xxx这个变量叫迭代器。效果就是节约内存。
7. Python 中的字符串格式化方式你知道哪些?
百分号%
format
8. 有一个字符串开头和末尾都有空格,比如“ adabdw ”,要求写一个函数把这个字符串的前后空格都去掉。
str = ' adabdw '
newstr = str.split(' ')
print(newstr)
print(newstr[1])
结果
['', 'adabdw', '']
adabdw
9. 获取字符串”123456“最后的两个字符。
str = '123456'
ns = str.split('4')
print(ns[1])
结果 56
10. 一个编码为 GBK 的字符串 S,要将其转成 UTF-8 编码的字符串,应如何操作?
UTF-8=>GBK
import sys
print(sys.getdefaultencoding())
str = "s" #默认是utf-8
str_gbk = str.encode("gbk") #utf-8转成gbk
print(str_gbk)
print(str.encode())
结果
utf-8
b'\xc4\xe3\xb9\xfe'
b'\xe4\xbd\xa0\xe5\x93\x88'
- s=“info:xiaoZhang 33 shandong”,用正则切分字符串输出[‘info’, ‘xiaoZhang’, ‘33’, ‘shandong’]
import re
list = []
s = "info:xiaoZhang 33 shandong"
for i in range(1,5):
res = re.match('(\w+):(\w+)\s(\d+)\s(\w+)', s)
ress = res.group(i)
list.append(ress)
print(list)
结果['info', 'xiaoZhang', '33', 'shandong']
这里说一下group,他是单独取正则表达式括号里的值,然后range是1-5,不是0-5,原因是group是1开始的,写0-5会多加一个变量S
我写的是参考答案
12. 已知 AList = [1,2,3,1,2],对 AList 列表元素去重,写出具体过程。
不看过程写法
AList = [1,2,3,1,2]
print(set(AList))
结果{1, 2, 3} 变成集合了
AList = [1,2,3,1,2]
BList = []
for i in AList:
a1 = i
if a1 not in BList:
BList.append(a1)
print(BList)
结果[1, 2, 3]
13.如何实现 “1,2,3” 变成 [“1”,“2”,“3”]
a = list("1,2,3")
b = []
for i in range(3):
b.append(a[i * 2])
print(b)
结果 ['1', '2', '3']
14. 给定两个 list,A 和 B,找出相同元素和不同元素
A = [1, 6, 8, 9, "iii", 95]
B = [6, 85, 64]
C = [] 不同值放这里
D = [] 相同值放这里
for i in A:
for m in B:
if i == m:
D.append(i)
print(D)
结果 相同值 [6]
new_c = A+B
a = list(set(new_c))
for i in a:
if i not in D:
C.append(i)
print(C)
结果 不同值 [64, 1, 'iii', 8, 9, 85, 95]
15. [[1,2],[3,4],[5,6]]一行代码展开该列表,得出[1,2,3,4,5,6]
a = [[1,2],[3,4],[5,6]]
for x in a:
for y in x:
print(y)
来大佬教一下,一行我也不会,
list = [lambda x,y:x for x in a for y in x]
然后输出结果是
[
.
at 0x0000020287E5CE18>,
.
at 0x0000020287E612F0>,
.
at 0x0000020287E61378>,
.
at 0x0000020287E61400>,
.
at 0x0000020287E61488>,
.
at 0x0000020287E61510>]
怎么整啊求留言!!!!!!!!!!!!!
16. 合并列表[1,5,7,9]和[2,2,6,8]
a = [1,5,7,9]
b = [2,2,6,8]
c = a+b
print(c)
结果
[1, 5, 7, 9, 2, 2, 6, 8]
17. 如何打乱一个列表的元素?
import random
x = [i for i in range(10)]
print(x)
random.shuffle(x)
print(x)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 2, 4, 7, 5, 8, 6, 1, 0, 3]
这个我也是百度的,知识盲区,绝了
18.
字典操作中 del 和 pop 有什么区别
del删除整个字典,变量都给你删了
pop指定删除给键的那个数据
a = {‘a’:‘1’,‘b’:‘2’}
print(a.pop(‘a’))
print(a)
结果
1
{‘b’: ‘2’}
del a
print(a)
结果直接报错说 a不是定义变量 NameError: name ‘a’ is not defined