-
Notifications
You must be signed in to change notification settings - Fork 1
/
pythonbi-shi-ti.html
309 lines (279 loc) · 24.4 KB
/
pythonbi-shi-ti.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="Won" />
<meta name="copyright" content="Won" />
<meta name="keywords" content="Python, IT, " />
<title>Python笔试题 · Tugqi Biz
</title>
<link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="http://wbowam.github.io/theme/css/style.css" media="screen">
<link rel="stylesheet" type="text/css" href="http://wbowam.github.io/theme/css/solarizedlight.css" media="screen">
<link rel="shortcut icon" href="http://wbowam.github.io/theme/images/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="http://wbowam.github.io/theme/images/apple-touch-icon.png" />
<link rel="apple-touch-icon" sizes="57x57" href="http://wbowam.github.io/theme/images/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="72x72" href="http://wbowam.github.io/theme/images/apple-touch-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="http://wbowam.github.io/theme/images/apple-touch-icon-114x114.png" />
<link rel="apple-touch-icon" sizes="144x144" href="http://wbowam.github.io/theme/images/apple-touch-icon-144x144.png" />
<link rel="icon" href="http://wbowam.github.io/theme/images/apple-touch-icon-144x144.png" />
</head>
<body>
<div id="content-sans-footer">
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="http://wbowam.github.io/"><span class=site-name>Tugqi Biz</span></a>
<div class="nav-collapse collapse">
<ul class="nav pull-right top-menu">
<li ><a href="http://wbowam.github.io">Home</a></li>
<li ><a href="http://wbowam.github.io/categories.html">Categories</a></li>
<li ><a href="http://wbowam.github.io/tags.html">Tags</a></li>
<li ><a href="http://wbowam.github.io/archives.html">Archives</a></li>
<li><form class="navbar-search" action="http://wbowam.github.io/search.html" onsubmit="return validateForm(this.elements['q'].value);"> <input type="text" class="search-query" placeholder="Search" name="q" id="tipue_search_input"></form></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span1"></div>
<div class="span10">
<article>
<div class="row-fluid">
<header class="page_header span10">
<h1><a href="http://wbowam.github.io/pythonbi-shi-ti.html"> Python笔试题 </a></h1>
</header>
</div>
<div class="row-fluid">
<div class="span10 article-content">
<h5 id="1">1. 什么是装饰器,使用场景是什么?最好能举例说明在你的项目中哪个地方用到过装饰器。<a class="headerlink" href="#1" title="Permanent link">¶</a></h5>
<p>答: 我们要对一个函数(myfunc)进行操作(修改或记录之类的),如下</p>
<div class="highlight"><pre><span class="cp">#方法一:</span>
<span class="n">func</span> <span class="o">=</span> <span class="n">modify</span><span class="p">(</span><span class="n">myfunc</span><span class="p">)</span>
<span class="cp">#方法二:</span>
<span class="err">@</span><span class="n">modify</span>
<span class="n">def</span> <span class="n">myfunc</span><span class="p">()</span><span class="o">:</span>
<span class="n">pass</span>
</pre></div>
<p>方法一可行,但必须在myfunc已经被定义之后的某处,而且不通用,于是有了方法二:装饰器,使用情景如下:</p>
<p>例1:django中在某一操作前检查用户是否已登陆,如果未登录跳转到登陆页面.伪代码实现如下</p>
<div class="highlight"><pre><span class="n">def</span> <span class="n">login_required</span><span class="p">(</span><span class="n">func</span><span class="p">)</span><span class="o">:</span>
<span class="k">if</span><span class="p">(</span><span class="n">is_authenticated</span><span class="p">)</span><span class="o">:</span>
<span class="k">return</span> <span class="n">func</span><span class="p">()</span>
<span class="nl">else:</span>
<span class="k">return</span> <span class="n">login_view</span><span class="p">()</span>
<span class="err">@</span><span class="n">login_required</span>
<span class="n">def</span> <span class="n">article_detail</span><span class="p">(</span><span class="n">request</span><span class="p">)</span><span class="o">:</span>
<span class="n">user</span> <span class="o">=</span> <span class="n">request</span><span class="p">.</span><span class="n">user</span>
<span class="p">......</span>
<span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="s">"article_detail.html"</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
<span class="err">@</span><span class="n">login_required</span>
<span class="n">def</span> <span class="n">article_index</span><span class="p">(</span><span class="n">request</span><span class="p">)</span><span class="o">:</span>
<span class="n">user</span> <span class="o">=</span> <span class="n">request</span><span class="p">.</span><span class="n">user</span>
<span class="p">......</span>
<span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="s">"article_index.html"</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span>
</pre></div>
<p>例2:在django 中给Model自定义属性</p>
<div class="highlight"><pre><span class="n">from</span> <span class="n">django</span><span class="p">.</span><span class="n">db</span> <span class="n">import</span> <span class="n">models</span>
<span class="n">Class</span> <span class="n">Article</span><span class="p">(</span><span class="n">models</span><span class="p">.</span><span class="n">Model</span><span class="p">)</span><span class="o">:</span>
<span class="n">title</span> <span class="o">=</span> <span class="n">models</span><span class="p">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">1024</span><span class="p">)</span>
<span class="err">@</span><span class="n">property</span>
<span class="n">def</span> <span class="n">manifest</span><span class="p">(</span><span class="n">self</span><span class="p">)</span><span class="o">:</span>
<span class="n">attribute_key_list</span> <span class="o">=</span> <span class="p">[</span><span class="err">'</span><span class="n">id</span><span class="err">'</span><span class="p">,</span> <span class="err">'</span><span class="n">title</span><span class="err">'</span><span class="p">]</span>
<span class="n">entity_dict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">key</span> <span class="n">in</span> <span class="n">attribute_key_list</span><span class="o">:</span>
<span class="n">entity_dict</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">=</span> <span class="n">self</span><span class="p">.</span><span class="n">__getattribute__</span><span class="p">(</span><span class="n">key</span><span class="p">)</span>
<span class="k">return</span> <span class="n">entity_dict</span>
<span class="o">>>></span> <span class="n">article</span> <span class="o">=</span> <span class="n">Article</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s">"Hackers and Painters"</span><span class="p">)</span>
<span class="o">>>></span> <span class="n">article</span><span class="p">.</span><span class="n">save</span><span class="p">()</span>
<span class="o">>>></span> <span class="n">article</span><span class="p">.</span><span class="n">manifest</span>
<span class="p">{</span><span class="err">'</span><span class="n">id</span><span class="err">'</span><span class="o">:</span> <span class="mi">1</span><span class="p">,</span> <span class="err">'</span><span class="n">title</span><span class="err">'</span><span class="o">:</span> <span class="s">"Hackers and Painters"</span><span class="p">}</span>
</pre></div>
<p>例3:python自带函数也到处使用装饰器,如</p>
<div class="highlight"><pre><span class="n">class</span> <span class="n">Foo</span><span class="o">:</span>
<span class="err">#静态方法走起</span>
<span class="err">@</span><span class="n">staticmethod</span>
<span class="n">def</span> <span class="n">add</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span><span class="o">:</span>
<span class="n">print</span> <span class="n">a</span> <span class="o">+</span> <span class="n">b</span>
</pre></div>
<h5 id="2">2. 什么是迭代器,使用场景是什么?最好能举例说明在你的项目中哪些地方用到过迭代器。<a class="headerlink" href="#2" title="Permanent link">¶</a></h5>
<p>答:常见的可迭代对象有list, dict,file, str......
只要是实现了next()或iter()方法的对象都可以迭代,如:</p>
<div class="highlight"><pre><span class="o">>>></span> <span class="n">iterator</span> <span class="o">=</span> <span class="n">iter</span><span class="p">(</span><span class="n">range</span><span class="p">(</span><span class="mi">3</span><span class="p">))</span>
<span class="o">>>></span> <span class="n">iterator</span><span class="p">.</span><span class="n">next</span><span class="p">()</span>
<span class="mi">0</span>
<span class="o">>>></span> <span class="n">iterator</span><span class="p">.</span><span class="n">next</span><span class="p">()</span>
<span class="mi">1</span>
<span class="o">>>></span> <span class="n">iterator</span><span class="p">.</span><span class="n">next</span><span class="p">()</span>
<span class="mi">2</span>
<span class="o">>>></span> <span class="n">iterator</span><span class="p">.</span><span class="n">__iter__</span><span class="p">()</span>
<span class="o"><</span><span class="n">listiterator</span> <span class="n">at</span> <span class="mh">0x7fe6f25f11d0</span><span class="o">></span>
<span class="o">>>></span> <span class="k">for</span> <span class="n">i</span> <span class="n">in</span> <span class="n">iterator</span><span class="o">:</span>
<span class="n">print</span> <span class="n">i</span>
<span class="mi">0</span>
<span class="mi">1</span>
<span class="mi">2</span>
</pre></div>
<p><strong>迭代器</strong>: 访问集合内元素的一种方式.
1. 从第一个元素开始访问,一直到最后一个
2. 只往前访问(这并不算什么缺点,因为很少会有在迭代途中进行回退的操作)
3. 特别适合遍历巨大的文件或无限集合,如几个G的文件.因为它不要求你事先准备好整个迭代过程中所有的元素,仅仅在迭代至某个元素时才计算该元素.而列表是一次性获取所有值的,如果有很多值,列表会占用太多的内存.</p>
<h5 id="3-python">3. 请以代码说明你所理解的 Python 中对象的深拷贝和浅拷贝。<a class="headerlink" href="#3-python" title="Permanent link">¶</a></h5>
<p>答:深拷贝:对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。</p>
<div class="highlight"><pre><span class="o">>>></span> <span class="n">import</span> <span class="n">copy</span>
<span class="o">>>></span> <span class="n">old_obj</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span>
<span class="o">>>></span> <span class="n">deep_obj</span> <span class="o">=</span> <span class="n">copy</span><span class="p">.</span><span class="n">deepcopy</span><span class="p">(</span><span class="n">old_obj</span><span class="p">)</span>
<span class="o">>>></span> <span class="n">print</span> <span class="s">"old_obj:"</span><span class="p">,</span> <span class="n">old_obj</span><span class="p">,</span> <span class="s">"deep_obj:"</span><span class="p">,</span>
<span class="n">deep_obj</span>
<span class="nl">old_obj:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span> <span class="n">deep_obj</span><span class="o">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
<span class="o">>>></span> <span class="n">deep_obj</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
<span class="o">>>></span> <span class="n">old_obj</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
<span class="o">>>></span> <span class="n">print</span> <span class="s">"old_obj:"</span><span class="p">,</span> <span class="n">old_obj</span><span class="p">,</span> <span class="s">"deep_obj:"</span><span class="p">,</span> <span class="n">deep_obj</span>
<span class="nl">old_obj:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">]</span> <span class="n">deep_obj</span><span class="o">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
</pre></div>
<p>浅拷贝:对象与拷贝对象共用一份实体,仅仅是引用的变量不同</p>
<div class="highlight"><pre><span class="o">>>></span> <span class="n">import</span> <span class="n">copy</span>
<span class="o">>>></span> <span class="n">old_obj</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span>
<span class="o">>>></span> <span class="n">shallow_obj</span> <span class="o">=</span> <span class="n">old_obj</span><span class="err"> #也可以用</span> <span class="n">copy</span><span class="p">.</span><span class="n">copy</span><span class="p">(</span><span class="n">old_obj</span><span class="p">)</span>
<span class="o">>>></span> <span class="n">print</span> <span class="s">"old_obj:"</span><span class="p">,</span> <span class="n">old_obj</span><span class="p">,</span> <span class="s">"shallow_obj:"</span><span class="p">,</span>
<span class="n">shallow_obj</span>
<span class="nl">old_obj:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span> <span class="n">shallow_obj</span><span class="o">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">]</span>
<span class="o">>>></span> <span class="n">shallow_obj</span><span class="p">.</span><span class="n">append</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span>
<span class="o">>>></span> <span class="n">print</span> <span class="s">"old_obj:"</span><span class="p">,</span> <span class="n">old_obj</span><span class="p">,</span> <span class="s">"shallow_obj:"</span><span class="p">,</span> <span class="n">shallow_obj</span>
<span class="nl">old_obj:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span> <span class="n">shallow_obj</span><span class="o">:</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">]</span>
</pre></div>
<h5 id="3-python-web">3. 按熟悉程度说出你所接触过的 Python web 开发框架。<a class="headerlink" href="#3-python-web" title="Permanent link">¶</a></h5>
<p>答:Django, flask</p>
<h5 id="4-web">4. 请简单描述 web 开发框架大概有几个模块组成。<a class="headerlink" href="#4-web" title="Permanent link">¶</a></h5>
<p>答:Django
<em> <code>settings.py</code>:配置全域设定和全域参数
</em> <code>model</code>:处理和数据有关的所有事物
<em> <code>url</code>:设定网址的指向
</em> <code>views</code>:后端逻辑(url所设定的指向会指向到对应的view)
<em> <code>template</code>:网页模板
</em> <code>media</code>:存放影像或其他多媒体档案
* <code>static</code>:存放静态文件</p>
<p>django框架工作一般流程如下:
<img alt="流程图" src="http://2.bp.blogspot.com/_fzqQCMaRj_Q/SdRU9oQFWNI/AAAAAAAAAC8/Zfd0g8VmeC0/s1600/Django+-+010.jpg" /></p>
<div class="highlight"><pre> <span class="mf">1.</span> <span class="err">用户访问网址(指向到我们的</span><span class="n">django</span><span class="err">服务)</span>
<span class="mf">2.</span> <span class="err">从`</span><span class="n">urls</span><span class="p">.</span><span class="n">py</span><span class="err">`查出应指向哪个`</span><span class="n">app</span><span class="err">`哪个`</span><span class="n">view</span><span class="err">`</span>
<span class="mf">3.</span> <span class="err">若需要`</span><span class="n">view</span><span class="err">`读取数据库,做运算.并将运算结果与`</span><span class="n">tempplate</span><span class="err">`相结合</span>
<span class="mf">4.</span> <span class="err">将上一补的结果呈现给用户.</span>
</pre></div>
<ol>
<li>正则表达式中如何匹配数字?如果匹配单词? 如何匹配行首和行尾?.*?+ 分别都代表什么?</li>
<li>
<p>请说一下你对正则中贪婪模式和非贪婪模式的理解。</p>
</li>
<li>
<p>爬取网页时遇到死链该怎么处理?</p>
</li>
<li>按熟悉程度写出你接触过的关系型数据库和 nosql。
答:关系型数据库:mysql,nosql:mongodb</li>
<li>你使用 linux 的频率有多高(桌面环境?开发环境?还是只是玩儿玩儿)
答:最近两年一直在用ubuntu.包括:平时使用14.04桌面版,写代码都在14.04 vps上,写博客及跑爬虫一般在vps docker里.</li>
<li>vim 使用:假设在一个文本中有 500 行文字,如果想把第200-300行中的 aaaa 替换成 bbbb 该怎么操作?
答:<code>:200,300s/aaaa/bbbb/g</code> </li>
<li>
<p>在 vim 中如何查看一个单词在文本中出现的次数?</p>
</li>
<li>
<p>你所熟悉的版本控制工具是什么?
答:git</p>
</li>
<li>描述一下你说理解的版本控制中的分支的概念。
答:<img alt="git branch" src="http://www.bootcss.com/p/git-guide/img/branches.png" />
分支用于将不同的开发绝缘开来.使用如下:</li>
<li>从主分支分离出开发分支;</li>
<li>在开发分支上进行开发;</li>
<li>将开发好的代码合并到主分支.
经典的分支管理策略由Vincent Driessen提出,图示如下:
<img alt="经典的分支结构" src="http://nvie.com/img/[email protected]" /></li>
<li>描述一下 pull request 开发流程。</li>
</ol>
<div class="highlight"><pre><span class="n">git</span> <span class="n">checkout</span> <span class="n">master</span> <span class="err">#切换到主分支</span>
<span class="n">git</span> <span class="n">pull</span> <span class="n">origin</span> <span class="n">master</span> <span class="err">#更新本地代码</span>
<span class="n">git</span> <span class="n">checkout</span> <span class="o">-</span><span class="n">b</span> <span class="n">feature</span><span class="o">-</span><span class="n">share</span><span class="o">-</span><span class="n">download</span> <span class="err">#新建并切换到功能分支</span>
<span class="p">....</span> <span class="err">#开发</span>
</pre></div>
<ol>
<li>描述一下你自己是如果组织一个项目的代码的。</li>
<li>
<p>说出你在 python 开发中常用的工具。</p>
</li>
<li>
<p>请写出你所熟悉或常用的遍历 字典 的方法。</p>
</li>
<li>假如有字符串 s = ‘I am a student’(每个单词以空格分隔),请写一段处理程序,处理后得到字符串 s1 = ‘student a am I’。如果第二个单词和第三个单词之间是两个空格分隔,第三个单词和第四个单词之间以 tab 分隔,怎么实现?</li>
<li>假如有一张用户数据表(十万行数据,字段为 id, name, ico),要取所有用户信息并打印,请用代码实现。</li>
</ol>
<aside>
<hr/>
<nav>
<ul class="articles_timeline">
<li class="previous_article">« <a href="http://wbowam.github.io/shi-yong-django-celery.html" title="Previous: 使用django celery">使用django celery</a></li>
<li class="next_article"><a href="http://wbowam.github.io/django-csrf.html" title="Next: Django Csrf">Django Csrf</a> »</li>
</ul>
</nav>
</aside>
<!-- Duoshuo Comment BEGIN -->
<div class="ds-thread" data-author-key="4433755"></div>
<script type="text/javascript">
var duoshuoQuery = {short_name:"tlbog"};
(function() {
var ds = document.createElement('script');
ds.type = 'text/javascript';ds.async = true;
ds.src = 'http://static.duoshuo.com/embed.js';
ds.charset = 'UTF-8';
(document.getElementsByTagName('head')[0]
|| document.getElementsByTagName('body')[0]).appendChild(ds);
})();
</script>
<!-- Duoshuo Comment END -->
</div>
<section>
<div class="span2" style="float:right;font-size:0.9em;">
<h4>Published</h4>
<time pubdate="pubdate" datetime="2015-04-26T00:00:00+08:00">Apr 26, 2015</time>
<h4>Category</h4>
<a class="category-link" href="/categories.html#IT-ref">IT</a>
<h4>Tags</h4>
<ul class="list-of-tags tags-in-article">
<li><a href="/tags.html#Python-ref">Python
<span>15</span>
</a></li>
</ul>
</div>
</section>
</div>
</article>
</div>
<div class="span1"></div>
</div>
</div>
</div>
<footer>
<div id="footer">
<ul class="footer-content">
<li class="elegant-power">Powered by <a href="http://getpelican.com/" title="Pelican Home Page">Pelican</a>. Theme: <a href="http://oncrashreboot.com/pelican-elegant" title="Theme Elegant Home Page">Elegant</a> by <a href="http://oncrashreboot.com" title="Talha Mansoor Home Page">Talha Mansoor</a></li>
</ul>
</div>
</footer> <script src="http://code.jquery.com/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script>
function validateForm(query)
{
return (query.length > 0);
}
</script>
</body>
</html>