2017-11-20 12 views
0

私はPythonには新しく、入力が長さ21の文字列でない場合にエラーメッセージを表示する関数を設計する方法については混乱しています。これは動作しない最新の順列です。たとえば、長さ19の文字列の場合、正しいエラーメッセージは返されません。私の経歴はcomp sciにはないので、これについての助けと、これがどのように機能するかについての説明が役に立ちます。おかげで入力が文字列でない場合や特定の長さでない場合のPython関数のエラー

test = "test_string_for_slice" 
test2 = "test_string_for_" 

def stringSlice(x): 
    if type(x) != str: 
     raise Exception("The input is not a string.") 
    elif len(x) != 21: 
     raise ValueError("The input is not exactly 21 characters.") 
    else: 
     slice1 = x[0:6] 
     slice2 = x[6:12] 
     slice3 = x[13:] 
     return slice1, slice2, slice3 

stringSlice(test) 
stringSlice(test2) #this should return an error but does not 
+1

「occCode」とは何ですか? –

+1

は 'occCode'を' x'に変更します。これは関数が提供されているパラメータです。 –

+0

ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。 MCVEコードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 投稿したコードをテキストファイルに貼り付け、説明した問題を再現できるはずです。 – Prune

答えて

1

あなたがxを使用することを意味するときに変数occCodeを使用しているようです。

def stringSlice(x): 
    if type(x) != str: 
     raise Exception("The input is not a string.") 
    elif len(x) != 21: #Note this is where things got changed!!! 
     raise ValueError("The input is not exactly 21 characters.") 
    else: 
     slice1 = x[0:6] 
     slice2 = x[6:12] 
     slice3 = x[13:] 
     return slice1, slice2, slice3 
関連する問題