所以,我的代码基于学习网站中的一个模块,我使用这个模块称为Grok,这些是为了传递到下一个阶段而必须创建的要求
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 :(得分:0)
屏幕截图中第三个输入的示例第二行中只有一个空格。
答案 1 :(得分:0)
对于第4行(name, surname = order.split(' ', 1)
),如果order
中没有空格,则元组解包将引发ValueError。
编辑:
order = input('Name: ')
# was name, surname = order.split(' ', 1)
try:
name, surname = order.split(' ', 1)
except ValueError:
name, surname = order, ""
collect[surname].append(name)