Python 为什么我的代码在';什么是自动标记的?

Python 为什么我的代码在';什么是自动标记的?,python,Python,因此,我的代码基于一个名为Grok的学习网站中的模块,这些是我必须创建的要求,以便进入下一阶段 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() mai

因此,我的代码基于一个名为Grok的学习网站中的模块,这些是我必须创建的要求,以便进入下一阶段

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")

所讨论的错误是

测试包含多个字母的较长案例。您的提交引发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")

示例第二行中只有一个空格用于屏幕截图中的第三个输入。

对于第4行(
name,姓氏=order.split(“”,1)
),如果
order中没有空格,元组解包将引发ValueError

编辑:


我该如何解决这个问题?要么不解包(即只处理
订单
),要么做类似于
的事情尝试:(原始代码)除了value错误:name,姓氏=(订单,“”)
。我不确定我是否完全理解。介意编辑我的代码来实现这一点吗?我不知道我是否理解,我该如何解决这个问题?