练习

一.基础题
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

 


 

posted @ 2020-06-01 22:12  H年轻的心  阅读(52)  评论(0)    收藏  举报