当我试图检查用户的输入是否与列表中的对象属性相同时,它检查的是列表中声明的对象,而不是附加到列表中的对象。
这是一个很难解释的问题,我已经尽力了。如果你不明白或者需要更多的信息,请告诉我。
我正在为上下文创建一个联系人列表。我创建了一个具有名称、号码和地址属性的联系人类。我试图查看用户输入的号码是否与列表中对象的号码属性相同。然而,当我调试并将联系人放入列表时,当我添加新的联系人并尝试查看代码是否知道用户的输入是否与添加的联系人相同时,它不起作用。
下面是我的代码:
class Contact:
def __init__(self, name, number, address):
self.name = name
self.number = number
self.address = address
def __str__(self):
return f"{self.name}, ({self.number}), {self.address}"
contact_list = []
def add_contact():
global contact_list
valid_name = False
valid_number = False
while not valid_name:
contact_name = input("Who would you like to add as your contact?: ")
name_taken = False
for contact in contact_list:
if contact.name == contact_name:
print("Name is taken in contacts!")
name_taken = True
break
if not name_taken:
valid_name = True
while not valid_number:
contact_number = input("What is their number?: ")
if len(contact_number) == 10 and contact_number.isnumeric():
number_taken = False
for contact in contact_list:
if contact.number == int(contact_number):
print("Number is taken in contacts!")
number_taken = True
break
if not number_taken:
valid_number = True
else:
valid_number = False
else:
print("Invalid number!")
contact_address = input("What is their house address?: ")
new_contact = Contact(contact_name, contact_number, contact_address)
contact_list.append(new_contact)
print("Contact list:")
for contact in contact_list:
print("- " + contact.__str__())
add_contact()
add_contact()
1条答案
按热度按时间t2a7ltrp1#
联系人号码作为字符串存储在
contact_list
中,因此它永远不会与您要比较的int
匹配。