|
1.执行脚本的两种方式 Python a.py 直接调用Python解释器执行文件 chomd +x a.py ./a.py #修改a.py文件的属性,为可执行,在用 ./ 执行a.py 文件 2、简述位、字节的关系 1bytes=8bit ,2**8=256,可以代表256中变化,
5 A( V/ R: A' T& n" H3、简述 ascii、unicode、utf-8、gbk 的关系ascii 是最早美国用的标准信息交换码,把所有的字母的大小写,各种符号用 二进制来表示,共有256中,加入些拉丁文等字符,1bytes代表一个字符, Unicode是为了统一世界各国语言的不用,统一用2个bytes代表一个字符,可以表达2**16=65556个,称为万国语言,特点:速度快,但浪费空间, 可以用在内存处理中,兼容了utf-8,gbk,ASCII, utf-8 为了改变Unicode的这种缺点,规定1个英文字符用1个字节表示,1个中文字符用3个字节表示,特点;节省空间,速度慢,用在硬盘数据传输,网络数据传输,相比硬盘和网络速度,体现不出来的, gbk 是中文的字符编码,用2个字节代表一个字符,
8 K6 N5 {0 ~1 X3 {( K8 b4、请写出 “李杰” 分别用 utf-8 和 gbk 编码所占的位数utf-8 是3 bytes=24bit gbk 是2bytes=16bit
7 S3 e# J* x6 f; s5、Pyhton 单行注释和多行注释分别用什么?单行注释 # 多行注释 """ """三个双引号或是三个单 引号把要解释的内容放中间, ‘’‘ ’’’
9 I0 j5 Q# q: q1 g+ B6 ?. p6、声明变量注意事项有那些?万能避错规则,以小写字母开头命名,可以加上下划线,或者数字, 不能以Python的关键字命名, 能表明变量的意义 , c+ w! w7 N: Z: q3 c3 E: u
8、如何查看变量在内存中的地址?# K" N8 \5 c. R& J; f ^
z=1: u- c) Z) d$ y3 G) N, q
print(id(z))& {6 z$ g/ `: p. M
9、执行 Python 程序时,自动生成的 .pyc 文件的作用是什么?.pyc 是编译py文件后的二进制文件,用于加速运行 4 F% e$ Z% @1 M, k& S
10、写代码
1 A) G/ A7 f% Q+ o# Q; Qa.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败!! [- ^* t- e" ?& s
name=input('name:').strip()6 p( R2 p" `; \: D& f; V) T& s
pwd=input('pwd:').strip()
" s+ ~7 @* @7 Kif name=='seven' and pwd=='123' :& ~& E/ v9 p2 ~* f |- @
print('ok')
8 I/ z% \# G J; m5 D; N) z& Gelse:
' W2 X: \1 H. c7 W4 q0 J+ s print('error')3 h" s$ U v/ D4 f$ R
6 P. r3 Q9 i' A3 `b.实现用户输入用户名和密码,当用户名为 seven 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次while循环:
& w1 D! s0 \( S5 ?count=1! y6 K" M2 p( O" {- Q5 w9 d3 R
while count<=3 :8 }; T) s4 m* `( [. ~6 e
name = input('name:').strip()
) l; D9 v$ A& I0 e8 r. ]* f+ Y1 [ pwd = input('pwd:').strip()) r5 i! ` ^+ i5 m2 {& K; {
w, }3 z# ^. Z
if name=='seven' and pwd=='123' :) A+ S: v% g' g2 Q
print('ok')
8 P' _) s9 r0 o8 s, n else:) [/ |: \: b: A2 L+ X8 \
print('error')
6 T# b; w4 I* T count += 1+ L( \% a* x5 n/ ]- Y6 P
for循环:
& |: |' p5 B* _; I0 Nfor count in range(3) :
! i+ ?6 B U! H1 t$ }# f name = input('name:').strip()# X, [2 k/ |) y4 S1 `3 B0 H; F
pwd = input('pwd:').strip()/ b: ^; x* Q; q' L& b( P# c
) T6 r* e: w- L/ L+ z8 `1 I if name=='seven' and pwd=='123' :
" c+ G4 l* x: d# S& p% ]& S print('ok')
1 ?8 l; Z6 Y0 c else:* K) ]6 Y6 k1 C- U
print('error')4 b8 h3 K4 C' V5 w" d
count += 1c.实现用户输入用户名和密码,当用户名为 seven 或 alex 且 密码为 123 时,显示登陆成功,否则登陆失败,失败时允许重复输入三次while 循环
7 G) M; G) R3 R B9 P8 F% Tcount =1
" D; `: c. ?3 G8 twhile count<=3 :7 w: d" c }0 h
name = input('name: ')/ ]/ ^( Y7 X- I' o: l; o: Z
pwd = input('pwd: ')
1 J( {. q/ F, |+ U if name == 'seven' and pwd == '123' or name == 'alex' and pwd == '123':% K x( S b6 x% k3 u, V
print('ok')
; s, d) ]1 x$ |! C E9 P4 f else :" j1 i& K9 E& b( J4 _
print('error')! c, `3 c3 q1 h, k
count+=1
" m$ T; r0 s2 jfor循环5 I4 X2 L' B1 r+ s$ s8 c5 _
for count in range(3) :- D+ n5 R- M8 K7 Y3 x
name = input('name: ')
2 V1 p' x3 s: O8 @ pwd = input('pwd: ')
: d( V, i3 Y* H if name == 'seven' and pwd == '123' or name == 'alex' and pwd == '123':) H+ Z* D t9 B0 H; F
print('ok')2 F, B! i7 g4 y
else :
2 ~( |, K+ b" ]# W+ x \$ ^3 H2 i9 L print('error')' g, P2 P1 a2 K2 A
count+=111、写代码
* J6 S1 S( S8 e4 N! J# H/ D6 Aa. 使用while循环实现输出2-3+4-5+6...+100 的和" ^$ |0 @; ?' H
count=2
7 Q' |$ \4 L6 E. r1 |5 _num=0
7 P. D" i' W! [- {while count<=100 :
- {; T! D: s9 e$ ]9 e if count % 2 ==0 :
/ l# s' W- I D0 l: w num=count+num
2 P7 q) u( \- |$ V# [7 B5 }- T count+=1
2 Y3 [, T+ w& K* y" f' a; A& `$ T else:
' R0 u0 m# P" I% W num=num-count1 x2 |2 q% [7 v2 W# i
count+=1
) H# X. A5 e' r( l' {+ `0 oprint(num)3 r5 w0 E" V! ]4 }
( K1 `5 C" c# k2 E. Hb. 使用for循环和range实现输出 1-2+3-4+5-6...+99 的和 / Z& I) I% A5 ~: _
num=0
( n, x5 J1 }$ f% k# tcount=1
7 e) z6 N5 b" f" b3 m9 A. mfor count in range(100) :% y0 s+ N; Y' Z3 o
if count % 2 == 0 :
. C K: e4 `. u num=num - count! v0 h' M3 O$ m
else :
2 a4 i+ U' {* C1 ^' o num=num+count
% a, U, x+ q0 `, e" f- W( mprint(num) c. 使用 while 循环实现输出 1,2,3,4,5, 7,8,9, 11,12 & z2 C( {, Y8 z. _
count=1
9 o& l2 k5 [3 p g4 e4 awhile count < 13 :" [2 p+ z5 g" w
if count !=6 :
4 |: o$ p; J$ a& @7 s& ?/ X" E if count !=10 :
# Q; h* f, P5 j/ ~, G3 j3 F print(count)" t- X' z7 ]/ G6 _( [
3 T) f2 h7 t; ]7 ]
count+=1d. 使用 while 循环实现输出 1-100 内的所有奇数 O ]2 A4 x6 `3 o) ]. o
for i in range(101) :
/ V2 X; J: d5 z$ z2 b if i %2 != 0 :
3 E' p! K& N. Y print(i)
, t0 i, [1 n' ^, i y* M) A/ n) \3 d" a7 @/ q/ i8 H
count=03 k% E7 s! Y. P
while count<100 :0 W# `- H" q3 [' J4 n8 g
if count %2 != 0 :
& @2 n; _9 V$ a print(count)
/ B3 q& y6 k) B5 m+ k count += 17 K, M- h3 {# |
% d: w/ T: I3 l% q% f7 v
e. 使用 while 循环实现输出 1-100 内的所有偶数3 Y. A; ^2 j3 X" e
for i in range(100) :- {6 f) D" f# M6 q
if i %2 == 0:
0 U3 h; U7 l5 W$ _! ~. f( q; p print(i), E! g1 d u2 b$ G4 |$ I
9 q$ U6 I1 C0 d \ [ Ycount=0. V# d0 l8 q0 x/ W; O
while count<100 :% j) t: `" ^6 t5 S: t0 A
if count%2 == 0 :7 ?4 A% b) U; `) S# C; t; U& h
print(count)
2 S5 }4 s# s5 @. J6 ]9 u count+=1) v/ T. a9 z1 }( w0 R$ E6 i
" t$ E6 i( H) R9 [12、分别书写数字 5,10,32,7 的二进制表示
) D$ {( _1 _4 y) @0 t
/ k; y2 m' j/ Z, ~" \% Uprint(bin(5))二进制 0b101; z# e. q* v$ M& l
print(hex(10))十六进制 0x5
* {4 Z. F0 r0 Qprint(oct(5)) 八进制 0o55 @* B* j6 f! \ r2 [6 E: ~
14、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123 n2 = 123n1,n2是连个不同的变量名,但值都一样,都指向了同一个内存地址, & r0 V4 C% A- k/ c" E' t5 d
16、现有如下两个变量,请简述 n1 和 n2 是什么关系? n1 = 123456 n2 = n1n2赋值给n1.指向同一个内存地址,) M4 T1 @: n* g/ `, Y6 q4 Z
17、如有一下变量 n1 = 5,请使用 int 的提供的方法,得到该变量最少可以用多少个二进制位表示? n1=5
! q3 m A- q) f( Y! Pprint(int.bit_length(n1)) 结果 3 ( L5 }( i8 R: {4 E$ Z) M: U+ d Y
* q. v6 _/ E% E0 P
18、布尔值分别有什么?False .Ture ,或1 和0
" M2 e3 a7 g/ l20、写代码,有如下变量,请按照要求实现每个功能 name = " aleX"
, ^, c8 s; ^( ia. 移除 name 变量对应的值两边的空格,并输入移除有的内容print(name.strip())5 O) s2 m. g( O8 P# Q( N
1 |$ W( ^9 C9 f) R3 @% j
b. 判断 name 变量对应的值是否以 "al" 开头,并输出结果& u, q2 A9 V( P* l8 l# _
print(name.startswith('al'))) f" l0 ]& _/ e
c. 判断 name 变量对应的值是否以 "X" 结尾,并输出结果print(name.endswith('x'))+ F- h8 @ S3 O7 u, D, D
d. 将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果
8 N& [' [+ m' K$ E, Nprint(name.replace('l','p')) apex $ X( t1 y& v* y2 r) o
e. 将 name 变量对应的值根据 “l” 分割,并输出结果。
; l7 l! n& I8 J' j' u8 z' r9 \& jprint(name.split('e')) ['al', 'x '] 列表
1 W; G3 U) ^8 E5 L) ?
( ?3 e& t- q. t" x' E3 Dg. 将 name 变量对应的值变大写,并输出结果print(name.upper()) print(name.lower())i. 请输出 name 变量对应的值的第 2 个字符?print(name[1])$ b: g8 [0 ~2 V' N
: i# \5 I+ G- d& `' ?" X
j. 请输出 name 变量对应的值的前 3 个字符?print(name[:3])k. 请输出 name 变量对应的值的后 2 个字符? l. 请输出 name 变量对应的值中 “e” 所在索引位置?print(name.index('e'))
|/ w" X% t3 _& \- p3 l5 c21、字符串是否可迭代?如可以请使用 for 循环每一个元素?
9 {6 k! f% K3 i3 V( v6 l7 h6 {依赖索引, E& G# i8 [# ~- Y. j9 K1 ]1 c' u5 d
name = "Alex "8 G9 l$ x# Z; \8 D
for i in range(len(name)) :
# u; S8 q; W3 m7 C3 S6 ], ` print(name)
! x# R) S2 G9 C% x ]- Nfor i in name:" N6 Q4 X9 N" n& r% w, G1 h
print(i)22、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex', 'eric', 'rain']print('_'.join(['alex', 'eric', 'rain'])) alex_eric_rain4 t7 g) r' h5 r
22、写代码,有如下列表,按照要求实现每一个功能 li = ['alex', 'eric', 'rain']li = ['alex', 'eric', 'rain']
* c1 [, i0 y2 l" D2 n, M) `print(len(li))b. 列表中追加元素 “seven”,并输出添加后的列表li.append('seven')
$ \% w4 ^% q5 o" D7 a. A* Gprint(li), W# H; V( g) U1 `' V
['alex', 'eric', 'rain', 'seven']. D# i) s" g$ l; x0 d( H
c. 请在列表的第 1 个位置插入元素 “Tony”,并输出添加后的列表li.insert(0,'TONY')3 @/ d: q4 w# v% [4 m- a, F
print(li)d. 请修改列表第 2 个位置的元素为 “Kelly”,并输出修改后的列表li[1]=('killy'). x& C! I5 P5 |6 C$ n; m& b
print(li)
L5 u$ m4 I6 R% h5 o- Ae. 请删除列表中的元素 “eric”,并输出修改后的列表li = ['alex', 'eric', 'rain']
, ^- c/ C2 z+ A/ {, V" Ili.pop(1)3 g9 J4 ]( n8 q, A& e! |
print(li) ['alex', 'rain']
; \; S& h3 X0 J指名道姓的删除li = ['alex', 'eric', 'rain']- K8 l: w% o! |: v
li.remove('alex')
" Y! \# s, _( n3 [9 g+ j1 T$ mprint(li)+ `' `8 v3 X$ X. E/ ]# E
f. 请删除列表中的第 2 个元素,并输出删除的元素的值和删除元素后的列表li = ['alex', 'eric', 'rain']
7 ]9 c) K- Y, r( E) h3 d" @print(li.pop(1))* w* F: F; Q9 u0 G
print(li)
( s* j" S9 Y; p* r* U& a. r: ?0 y
eric% f, R4 P Z: O+ b# K5 e% z9 _
['alex', 'rain']h. 请删除列表中的第 2 至 4 个元素,并输出删除元素后的列表li = ['alex', 'eric', 'rain']
9 r) Y9 Y A1 P1 bdel li[1:]1 V) c1 ?+ A$ \0 |
print(li) k. 请使用 enumrate 输出列表元素和序号(序号从 100 开始)
) k8 }) V8 R; c" x( A/ eli = ['alex', 'eric', 'rain']
- X! w% m+ i0 \( ]for k,v in enumerate(li,1):4 k8 u, S6 S* k& }. v
print(k,v)23、写代码,有如下列表,请按照功能要求实现每一个功能 li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]7 ]( y! C: H" s. k
a. 请输出 “Kelly”
5 D" o$ \9 Y% h, h9 l+ x- _li = ["hello", 'seven', ["mon", ["h", "kelly"], 'all'], 123, 446]/ R# @/ @* l( ?5 C1 Z% x
print(li[2][1][1])
, ]2 o1 u) S- e( T. l8 ?b. 请使用索引找到 'all' 元素并将其修改为 “ALL”0 @2 A+ j' q1 }7 d0 Z( J' {
li[2][2]='ALL'' W5 D# e# e# b& `
print(li)
7 V/ Z0 p: j. |' L" ^24、写代码,有如下元组,按照要求实现每一个功能 tu = ('alex', 'eric', 'rain')
1 I; [% |! k+ ?- qa. 计算元组长度并输出tu = ('alex', 'eric', 'rain')
! l: X+ ]: M7 D8 g: aprint(len(tu))
! g* V; m3 n( D- k Bb. 获取元组的第 2 个元素,并输出
/ h! u5 q# i* V1 |+ `print(tu[1])
' i* i6 |/ [! H3 n. M* ?0 S* ue. 请使用 for、len、range 输出元组的索引
. ~1 O4 L" J1 n3 `/ J9 m8 `for i in range(len(tu)) :! H; x" h* d) b# z+ l6 q& s
print(tu.index(tu))f. 请使用 enumrate 输出元祖元素和序号(序号从 10 开始)% e& W7 i' E$ h% A) g! e/ h
for k,v in enumerate(tu,10) :3 Y3 x% [8 H4 b% L5 L0 g
print(k,v)
0 j9 |) n9 N) s5 x7 ~4 b; ~( P10 alex
' ]$ h2 `0 q2 { z$ Q11 eric
* t9 R# f! i! D) y! _3 E12 rain0 v* Q- G$ X5 [ r+ v
. a% I/ a1 T% U& ]- u) E( E3 T' [9 Dfor k in enumerate(tu,10) :
6 c- B/ h# l7 v3 R* N9 c6 S print(k)
6 a5 G6 q4 p, h8 u8 b% U7 t(10, 'alex') t" w7 _5 Z7 |9 I* O) [% z
(11, 'eric')+ a0 d4 B" f9 }4 U
(12, 'rain')& z( V! p1 F/ u. G6 b1 R& h
, M5 v) u# ], G) k+ W. L
6 |0 ]4 I3 Q. Q; l# m( {25、有如下变量,请实现要求的功能 ^( G. n: }+ w0 x: k
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44])c. 请问 tu 变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”元组,不可以 ! [" T& L+ v9 D5 t" J, A# U
d. 请问 tu 变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”列表,可以) j( Z* G. n7 C" X! F
tu = ("alex", [11, 22, {"k1": 'v1', "k2": ["age", "name"], "k3": (11,22,33)}, 44]): `+ C3 b$ Q5 u, R; K* V) c
res=tu[1][2]['k2'].append('seven')
1 T% g9 d* ]) M, M3 C
3 F, p: E6 F2 Dprint(tu)
/ R* s2 a1 R$ X0 k26、字典
. V( g( m, ? V2 sdic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}for i in dic:5 i" d# o# x) ?( E, B
print(i)b. 请循环输出所有的 value. H' M- T# s( k
for i in dic:
- ^6 \& x# C' ~' T& Y+ K print(dic)
; G% R6 [9 T2 D0 Y+ i- Nc. 请循环输出所有的 key 和 valuefor i in dic:
2 x4 L6 j2 h1 m3 Zprint(i,dic)7 c- b0 e. t$ Q: t& _& f
d. 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
) }" v# f& r9 o" B' M) \6 Z( Odic['k4']='v4'* t# _/ m1 Z) d! U8 Y
print(dic)
5 A5 o0 e! z5 y% z$ \e. 请在修改字典中 “k1” 对应的值为 “alex”,输出修改后的字典
9 k# H+ T4 q; Hdic['k1']='alex'
3 ~/ R5 O5 d' V# `print(dic)f. 请在 k3 对应的值中追加一个元素 44,输出修改后的字典
+ d. h8 W. R! G& fdic['k3'].append(44)
0 N7 U% `5 N H& Nprint(dic)
+ p( Y0 D4 v2 {8 G" L, U$ z
) r9 p1 w- V# d$ b8 F! Z6 n/ b0 j ?g. 请在 k3 对应的值的第 1 个位置插入个元素 18,输出修改后的字典/ W5 v% E1 w9 y1 v
dic['k3'].insert(0,44)
6 W) G y- l5 m: \$ Nprint(dic)
9 C' F0 t% l0 H27、转换2 c; H& |1 c( a
a. 将字符串 s = "alex" 转换成列表 s = "alex"' n+ y. x5 j) `
$ g9 e! k9 g$ tprint(list(s))b. 将字符串 s = "alex" 转换成元祖8 j& t- @6 p5 u+ Q: P- a% ~
s = "alex"% I: ?( L- _$ z1 W
print(tuple(s)); i/ F! B& ^* y& V
$ `3 l! e6 ?! y* N% [b. 将列表 li = ["alex", "seven"] 转换成元组; h6 o& T: @4 K% Z' h5 j0 b
li = ["alex", "seven"] a( @: z! g% p+ ~" O9 ?
print(tuple(li))c. 将元祖 tu = ('Alex', "seven") 转换成列表
1 p- N0 ~" p5 \! I% H A- Ttu = ('Alex', "seven")
1 ^1 D7 f+ X R) u4 k) ~+ N) B7 hli=list(tu)
( i+ g) N/ a$ @, r2 a' I3 nprint(li) i1 a4 R; W+ ^, h7 a: B
6 U8 Q/ x9 M$ }: P8 L- j$ m& n. U1 i A/ D7 I! a! T
d. 将列表 li = ["alex", "seven"] 转换成字典且字典的 key 按照 10 开始向后递增" A5 o$ L- p" T7 Y2 c* ?; |
( y( s3 `7 l+ O) kdic={}! h U5 s6 q) Q) ^2 x0 Z/ }
for k,v in enumerate(li,10) :----li要放在前面,序号放在后面2 Y* l6 f3 l' {$ Y" |2 N
dic[k]=v5 o+ \- [5 M3 N) g, @# P
print(dic)27、转码n = "老男孩"- u+ |" H) y: D }; G
a. 将字符串转换成 utf-8 编码的字节,并输出,然后将该字节再转换成 utf-8 编码字符串,再输出n = "老男孩"# I- w" Z7 |3 t- h( Q5 l1 g
a=n.encode('utf-8')
6 U( m8 a$ q$ a6 i+ Oprint(a)2 R/ |7 N4 {& T: i. V$ R
b=a.decode('utf-8')
1 v" B5 H2 `& Z4 w7 T h: {print(b), E. e5 n# R1 Q. \4 K
b. 将字符串转换成 gbk 编码的字节,并输出,然后将该字节再转换成 gbk 编码字符串,再输出a=n.encode('gbk')$ b \3 T9 {/ J. g0 O* J
print(a); B8 p3 \4 R3 c2 D; o
b=a.decode('gbk')2 \7 F( p% K2 L1 o
print(b)28、求 1-100 内的所有数的和
- ?1 Z ^6 W5 L% R' K: p ocount=1, I- k& P5 Z7 Y' s3 b
sum=0
" t# g8 G6 X5 B& z8 Ifor i in range(100) :9 W4 W& t# F6 w* O# ^3 b
sum=sum+count' L. _& H3 M4 e% V0 ~7 }
count+=1! b @: W+ x v: u4 @! R
print(sum)
* F" p4 K/ C. k h1 o8 v
/ k0 `$ U- y" B( r9 E( ?count=1
! x5 @' V' P6 L9 W& s% @sum=0
6 A3 \7 m* P* S. v0 Jwhile count<=100 :* U. D; X2 u# p2 i( o, ^2 x$ ?
sum+=count4 T) o5 N+ i7 b- t
count+=1
- k: `) L+ | Gprint(sum)29、元素分类& t1 Q5 h1 O$ ^8 w' L i7 x
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的第一个 key 中,
6 Z6 R1 I" V( T& j# H) \5 Z将小于 66 的值保存至第二个 key 的值中。
6 {6 A. n+ T7 q9 C1 w1 _即: {'k1': 大于 66 的所有值, 'k2': 小于 66 的所有值}
# w5 \: s. m; Yli=[11,22,33,44,55,66,77,88,99,90]$ C& }, L6 m/ p6 S0 x: c1 A; g3 _
dic1={
. {: C% e4 s! k5 x g' M4 I 'max':[],
$ S/ x6 o9 R) o" r% _, { p% n 'min':[]9 w, D" O6 T9 r9 x
}; [$ C3 d& c" C; q
for i in li :
8 O) K& p& N- I0 H% L% G if i <66 :( I6 Z p5 A% P) Y | R
dic1['min'].append(i)
* q5 ~' T+ \6 { else:
@$ y8 n# c1 O g) R3 w5 h3 @1 i dic1['max'].append(i)
( i! s8 K2 ]/ x& R; b) tprint(dic1)7 l' m7 i; p% K# ?7 Y0 p
4 v( k0 |- z3 t# Z4 Z---{'max': [66, 77, 88, 99, 90], 'min': [11, 22, 33, 44, 55]}
2 h$ @5 o: h; S+ I |