筆記試験開発問題3問(python)

6803 ワード


筆記試験で出会った3つのテスト開発問題は、難しくないが、肝心なのはやはり構想だろう.私は物を開発する時に備えるべきなのは構想だと思って、構想があって書いてみて、あるいは関連するドキュメントあるいはコードを調べて、この基礎の上で絶えず調整して最終的に需要に達する必要があります.構想はまた絶えず練習して得たものだ.
全体の面接の過程の中で、筆記試験は往々にして重点ではありませんが、1つの筆記試験から1人のふだんの基礎知識の蓄積を見ることができます.
もう一つ説明するのは、以下の問題に対してphp、javaを要求する要求がありますが、pythonで実現しました.多くの場合、会社はあなたがどの言語で実現しなければならないかを気にしていません.言語はツールで、問題を解決するために使われています.肝心なのは考えがあるかどうかです.
 
 
メールボックスフォーマットの検証
 
メールボックスのフォーマットを検証して、異なる言語の実現は大同小異で、正則表現を通じて最も速いマッチング方式ですが、正則に慣れていない学生に対して長いマッチング記号を見ているのはやはり頭が痛くて、実はそんなに怖くありません.
pythonの正規表現を熟知している一般的な一致子
 
メールボックスの一般的なフォーマットを見てみましょう.
[email protected]
xは1つ以上の文字または数字を表す.
1)最初のxはアルファベットで表すことができる
2)2番目のxはアルファベットで
3)2番目のxはアルファベットでよい.com,.cn,.net...等末尾
「@」と「.」内xを3つに分解する.
メールボックス全体の長さは最低5文字です.
 
コードは次のとおりです.
#coding=utf-8
import re ''' [a-zA-Z0-9]            [a-zA-Z]         \@ a\@b a@b (    ) \. a\.b a.b (    ) '''

def emails(e): if len(e)>= 5: if re.match("[a-zA-Z0-9]+\@+[a-zA-Z0-9]+\.+[a-zA-Z]",e) !=None: return ''
    return '      ' e = raw_input("   email:") print e a = emails(e) print a

実行結果:
>>> ================================ RESTART ================================
>>>    email:[email protected]
[email protected]        >>> ================================ RESTART ================================
>>>    email:[email protected] abc@126.com       ! >>> ================================ RESTART ================================
>>>    email:123@126.com 123@126.com       ! .......

 
 
URLアドレスの拡張子を取得
 
次のようになります.
http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.htmlの拡張子html
この問題についても同様に正規式を用いて解決する
 
import re def strings(url): listt = ['.php','.html','.asp','.jsp'] for lis in listt: suffix = re.findall(lis,url) if len(suffix)>0: return lis url = 'http://www.cnblogs.com/fnng/archive/2013/05/20/3089816.html' a = strings(url) print a

 
実行結果:
.html

 
 
 
現在の時刻の前日(または前の秒)を取得
 
現在時刻が:2014-6-11 17:12:45の場合
前日は:2014-6-10 17:12:45
前の秒:2014-6-11 17:12:44
#coding=utf-8
import time import datetime #      
print time.ctime() #    
now_time = datetime.datetime.now() print now_time #     
yesterday = now_time + datetime.timedelta(days = -1) print yesterday #      
now_old = now_time + datetime.timedelta(seconds = -1) print now_old

実行結果:
Wed Jun 11 17:21:07 2014
2014-06-11 17:21:07.750000
2014-06-10 17:21:07.750000
2014-06-11 17:21:06.750000

 
======
これは筆記試験の過程で比較的に印象的ないくつかの問題で、その時も大体書いて、デバッグを経ていないで問題があるべきで、あるいはあまり需要に合わないで、ここでマークします!考えてみて、やはりブログのために発表します.その後、転職経験や最近の1年以上の悟りを詳しく述べる時間があります.