练习
一.基础题
1、计算100-300之间所有能被3和7整除的所有数之和
tatal = 0
for i in range(100, 300):
if i % 3 == 0 and i % 7 == 0:
tatal += i
2、定义一个函数,统计一个字符串中大写字母、小写字母、数字的个数,并返回结果;
str = "ADSlkj1923"
def my_func(str):
"""
接受一个字符串,返回大写、小写和数字的个数
:param str:字符串
:return:返回大写、小写和数字的个数
"""
num, upper, lower = 0,0,0
for i in str:
# print(i)
if i.isdigit():
# print(i)
num += 1
else:
if i.isupper():
upper += 1
else:
lower += 1
print("大写小写和数字的个数分别是{},{},{}".format(num, upper, lower))
return num,upper,lower
n = my_func(str)
print(n)
3、获取两个列表l1=[11,22,33], l2=[22,33,44] 中相同元素的集合;
l1=[11,22,33]
l2=[22,33,44]
li = []
for i in range(len(l1)):
for j in range(len(l2)):
if l1[i] == l2[j]:
li.append(l1[i])
print(li)
4、将字符串“老男人”转换成UTF-8的字节类型;
str = "老男人"
byte_str = bytes(str, encoding='utf-8')
print(byte_str)
5、如何计算数字的绝对值;
num = -9
print(abs(num))
6、简述深浅拷贝的原理;
深拷贝是拷贝了嵌套里面的对应的所有指向的内存地址,而浅拷贝只是拷贝了第一层;
7、列举bool值为False的值;
0、空的列表字典元组、none
8、内置函数any和all的区别;
any接受的对象是可迭代的,只要有一个为真就返回真
all接受可迭代对象,只有全部为真才返回真,否则返回false
9、利用内置函数将十进制数字12转换成二进制、八进制、十六进制、表示的字符串;
num = 12
b = bin(num) # 二进制
h = hex(num) # 十六进制
o = oct(num) # 八进制
10、简述内置函数dir、help、id、type作用
11、简述内置函数globals()、locals()作用
12、简述三元运算书写格式
13、简述lambda表达式的书写格式
14、利用内置函数zip(),实现功能:
l1 = ['alex', 22,33,44,55]
l2 = ['is', 22,33,44,55]
l3 = ['good', 22,33,44,55]
l4 = ['guy', 22,33,44,55]
请获取字符串s = alex_is_good_guy
#############################
l1 = ['alex', 22,33,44,55]
l2 = ['is', 22,33,44,55]
l3 = ['good', 22,33,44,55]
l4 = ['guy', 22,33,44,55]
s = zip(l1, l2, l3, l4)
l = []
for i, index in enumerate(s):
l.append(index)
print(i, index)
print(l[0])
st = '_'
print(st.join(l[0]))
15、简述文件打开模式'r'和'rb'的区别和影响
16、文件操作时with的作用
17、利用with实现两个文件同时打开,一读一写
18、函数的默认返回值是什么
19、简述函数的普通参数、指定参数、默认参数、动态参数的特点以及注意事项
20、通过字符串格式化将7.88123输出时仅保留小数点后两位,例如“bala7.88bala”
21、判断以下字符串格式化是否正确,如不正确请改正
tpl1 = "i am {name}, age{age},really{name}".format(name = 'seven',age = '18')
tpl2 = "i am {0}, age{1}".format(["seven", 18]) # .format(*["seven", 18])
22、python有几种导入模块的方式
from xxx import xxx as xxx
import xxx
23、分页
如果有192个商品, 每页显示10个商品,问共需要几页?
n = divmod(192, 10)
print(n)
24、函数传递参数时,是引用还是复制值
25、python3中的range函数和python2.7中的range函数有什么区别?
26、python中导入模块时,如何搜索其路径
sys.path
27、sys.argv 的作用
28、如何获取一个路径的上级目录的路径
import os
print(os.path.dirname(__file__))
29、请将下一个路径按照a b c 的顺序拼接起来
a = "/Users/seven"
os.path.join(a,b,c)
30、简述获取一个随机字母的思路
31、简述re模块中match、search、以及findall方法的特点
32、简述正则表达式中分组的作用
33、请书写输出结果:
1 import re 2 origin = "hello/bin/uuu/haa/d" 3 result = re.findall(r"(\w+)/", origin) 4 5 print(result)
34、简述计算1*2+3*4+5*6+7*8...+99*100的实现思路
35、python中两种序列化json和pickle的区别
36、简述json模块中的方法:dumps、dump、loads、load的区别
37、有如下变量
l1 = ["alex", 123, "eric"]
l2 = ["alex", 123, 'eric']
s1 = """["alex", 123, "eric"]"""
s2 = """["alex", 123, 'eric']"""
请判断以下四个操作是否正确
a.json.loads(l1)
b.json.loads(l2)
c.json.loads(s1) #
d.json.loads(s2)
e.json.dumps(l1) #
f.json.dumps(l2) #
g.json.dumps(s1)
h.json.dumps(s2)
38、Http请求时间,其本质返回的是什么类型
39、书写邮箱的正则表达式
40、使用冒泡算法将li=[13, 22, 6, 99, 11]排序
41、简述对象和类的关系
二、阅读代码,输出结果
1、如下代码:
1 a = "old boy %" 2 print(a)
输出结果为:
1 b = "oldboy %d%%"%(12) 2 print(b)
输出结果为:
2、如下代码:
1 def func(): 2 return a1 + 100 3 func = lambda a1: a1 + 200 4 ret = func(10) 5 print(ret)
输出结果为:
3、如下代码:
1 def f1(arg): 2 print(arg+100) 3 4 def f2(arg): 5 ret = f1(arg+1) 6 print(arg) 7 print(ret) 8 9 ret = f2(7) 10 print(ret)
输出结果为:
4、如下代码:
1 def f1(arg): 2 print(id(arg)) 3 n = 1111111 4 print(id(n)) 5 f1(n)
输出的两个值是否相同:
5、如下代码:
1 def func(arg): 2 arg.append(55) 3 4 li = [11,22,33,44] 5 li = func(li) 6 print(li)
输出结果为:
6、如下代码:
a.
1 NAMELIST = ["alex", "eric"] 2 def func(): 3 NAMELIST = 123 4 func() 5 print(NAMELIST)
输出结果为:
b.
1 NAMELIST = ["alex", "eric"] 2 def func(): 3 global NAMELIST 4 NAMELIST = 123 5 func() 6 print(NAMELIST)
输出结果为:
c.
1 NAMELIST = ["alex", "eric"] 2 def func(): 3 NAMELIST.append("seven") 4 func() 5 print(NAMELIST)
输出结果为:
7、如下代码:
1 r1 = eval("1+10*10") 2 r2 = exec("1+10*10") 3 print(r1, r2)
输出结果为:
8、如下代码:
1 import re 2 r = re.match("\d", "123abc") 3 print(r)
输出结果为:
9、如下代码:
1 def outer(func): 2 def inner[]: 3 ... 4 return inner() 5 @outer() 6 def f1(arg): 7 ...
请列举出上述装饰器的所有错误之处:
注:注释代码...请忽略
三、编程题
1、利用filter、自定义函数、获取l1中元素大于33的所有元素l1 = [11,22,33,44,55]
2、利用filter、lambda表达式、获取l1中元素大于33的所有元素l1 = [11,22,33,44,55]
3、利用map、自定义函数将所有是奇数的元素加100 l1 = [11,22,33,44,55]
4、利用map、lambda表达式将所有是奇数的元素加100 l1 = [11,22,33,44,55]
5、使用for循环打印9*9乘法口诀表
6、递归实现1*2*3*4*5*6*7
7、写函数:
有如下两个列表
l1 = [...]
l2 = []
第一个列表中的数字无序不重复排列,第二个为空列表
需求:
取出第一个列表中的最小值,放到第二个列表的首个位置;
取出第一个列表中的最小值(仅大于上一次取得值),放到第二个列表的首个位置;
取出第一个列表中的最小值(仅大于上一次取得值),放到第二个列表的首个位置;
...
以此类推
8、写装饰器
有如下两个函数,请书写一个装饰器,在函数执行前分别打印"before"和"after"
1 def func1(arg): 2 return arg + 1 3 4 def func2(arg1, arg2): 5 return arg1 + arg2
四、应用题
1、使用requests和xml模块实现天气查询,并友好展示
API:http://www.webxml.com.cn/WebServices/WeatherWebservice.asmx/getWeatherbyCityName?theCityName=上海
2、文件操作
文件内容如下:
1 global 2 log 127.0.0.1 local2 3 daemon 4 maxconn 256 5 log 127.0.0.1 local2 info 6 defaults 7 log global 8 mode http 9 timeout connect 5000ms 10 timeout client 50000ms 11 timeout server 50000ms 12 option dontlognull 13 14 listen stats :8888 15 stats enable 16 stats uri /admin 17 stats auth admin:1234 18 19 frontend oldboy.org 20 bind 0.0.0.0:80 21 option httplog 22 option httpclose 23 option forwardfor 24 log global 25 acl www hdr_reg(host) -i www.oldboy.org 26 use_backend www.oldboy.org if www 27 28 backend www.oldboy.org 29 server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000 30 31 backend buy.oldboy.org 32 server 100.1.7.90 100.1.7.90 weight 20 maxconn 3000

浙公网安备 33010602011771号