2016-03-26 3 views
0

だから、私のコードは完全に理解と呼ばれる私が使用した学習サイト内のモジュールのベースとされ、これらは私が次のステージオートマチックでコードがこのValueErrorを取得するのはなぜですか?

The Requirements (left-hand-side of photo) and Auto Marker Error (bottom right handside)

に渡すために作成する必要がありました要件です問題のエラーは次のとおりです。

多くの文字の長いケースをテストします。あなたの提出により、ValueError型の例外が発生しました。これはprogram.pyの4行目で発生しました。

これを修正して正しくマークを付ける方法を見つけられないようですが、私のコードはかなり完璧に機能します。

マイコード

import collections 
collect = collections.defaultdict(list) 
order = input('Name: ') 
name, surname = order.split(' ', 1) 
collect[surname].append(name) 

mail = open('mail.txt', encoding="UTF-8").read() 
mail = mail.split('\n') 
letter = 0 
package = 0 
count = mail.count(' '.join(collect[surname]) + ' ' + surname + ',Letter') 
count2 = mail.count(' '.join(collect[surname]) + ' ' + surname + ',Package') 

for i in collect: 
    if (' '.join(collect[surname]) + ' ' + surname + ',Letter') in mail: 
    letter += 1 * count 
    if (' '.join(collect[surname]) + ' ' + surname + ',Package') in mail: 
    package += 1 * count2 

if package == 0 and letter == 0: 
    print("No mail") 

if letter > 1: 
print(count, "Letters") 

if letter == 1: 
print(count, "Letter") 

if letter == 0 and package != 0: 
print("No Letters") 

if package > 1: 
print(count2, "Packages") 

if package == 1: 
    print(package, "Package") 

if package == 0 and letter != 0: 
    print("No Packages") 

答えて

0

スクリーンショットの第三の入力のための例の2行目の一つだけのスペースがあります。

+0

ない私は、私はこれをどのように修正すれば、理解してください? – Outreach

0

行4(name, surname = order.split(' ', 1))の場合、タプルアンパックは、orderにスペースがない場合、ValueErrorを発生させます。

EDIT:

order = input('Name: ') 

# was name, surname = order.split(' ', 1) 
try: 
    name, surname = order.split(' ', 1) 
except ValueError: 
    name, surname = order, "" 

collect[surname].append(name) 
+0

これを修正するにはどうすればよいですか? – Outreach

+0

「order」を使って解凍したり、「ValueError:name、surname =(order、 ")'以外のtry(元のコード)のようにしてください。 –

+0

私はかなり掴んでいるか分かりません。これを実装するために自分のコードを編集する気がしますか? – Outreach

関連する問題