2

我解决了间距问题,并在很长一段时间内纠正了其他错误。现在它正在做我想做的事情,但我选择了选项 2,它将打印出员工的记录 4 次。如果我输入另一名员工,它只会打印第二个而不是第一个。

class EmployeeClass:
def Employee(name, lastName, age, salary):
    name = name
    lastName = lastName
    age = age
    salary = salary
def displayEmployee(x):
    print("Name: " + name + ", " + lastName)
    print("Age: " + age)
    print("Salary: " + salary)

EmployeeArray = []

Continue = True
print ("Employee Information V2.0")

while Continue == True:
print ("Welcome to Employee Information")
print ("1: Add New Record")
print ("2: List Records")
print ("3: Quit")

choice = input()

if choice == "1":
    name = input ("Enter First Name: ")
    EmployeeArray.append(name)
    if name == "":
        Continue = False
        print ("Goodbye!")
        break
    lastName = input ("Enter Last Name: ")
    EmployeeArray.append(lastName)
    age = input ("Enter Age: ")
    EmployeeArray.append(age)
    salary = input ("Enter Salary: ")
    EmployeeArray.append(salary)
elif choice == "2":
    for Employee in EmployeeArray:
        EmployeeClass.displayEmployee(Employee)
        Continue = False
elif choice == "3":
    print ("Bye!")
    break
else:
    print ("Please choose a valid option")
    print ("\n")
4

4 回答 4

5

您的错误消息将为您提供有关发生此问题的行号的指示。基本上,您正在混合制表符和空格,因此您只需要始终使用其中一个来进行缩进。

PEP8 - The Style Guide for Python 建议使用空格并注意:

当使用 -t 选项调用 Python 命令行解释器时,它会发出有关非法混合制表符和空格的代码的警告。使用 -tt 时,这些警告会变成错误。强烈推荐这些选项!

通过简要检查您的来源,似乎语句前面有标签print- 用空格替换它们(这也是它们在上面的帖子中没有正确呈现的原因)

while Continue == True:
    print ("Welcome to Employee Information")
    print ("1: Add New Record")
    print ("2: List Records")
    print ("3: Quit")

可能还有其他地方,你必须仔细检查。事实上,我怀疑你的代码在你的帖子中没有正确缩进的地方可能值得一看。

为了避免此类问题,最好使用能够始终使用相同字符为您缩进的编辑器或 IDE。

于 2012-08-14T14:36:41.223 回答
1

看起来您需要在第一行之后缩进所有内容。

IE

class Employee:
    empCount = 0
    def _init_(self, name, lastName, age, salary):
    ...
于 2012-08-14T14:37:29.533 回答
0

问题是您使用制表符 ('\t') 来缩进某些行,并使用四个空格 (' ') 来缩进其他行。

这可能是个问题,因为制表符不一定意味着给定数量的空格 - 不同的编辑器可能会将其解释为相当于 2 个或 4 个或 8 个空格(或者实际上,它喜欢任何数量的空格,但这些是最常见的选择)。如果你只使用空格或只使用制表符缩进,那是明确的,Python 很高兴。如果您使用混合,您的代码的含义将根据制表符等于多少个空格而有所不同 - 因此,Python 不会猜测,可能会导致奇怪的错误,而是会停止并显示您看到的警告消息。

直接的解决方案是使用搜索和替换将每个制表符替换为 4 个空格。长期的解决方案是使用文本编辑器,只要您按 Tab 键,它就会自动插入 4 个空格。(在 Windows 上,我喜欢 Notepad++,但也有很多其他的好东西)。

于 2012-08-14T15:07:56.197 回答
0

永远不要在 Python 中使用制表符,你可以,但它不是传统的。PEP8 约定是使用四个空格。

于 2012-08-14T14:53:43.010 回答