gpt4 book ai didi

python - 存储用户输入数据以供稍后在 Python 中调用的方法?

转载 作者:行者123 更新时间:2023-12-04 10:58:35 25 4
gpt4 key购买 nike

Python 新手,正在处理我 friend 给我的任务。此部分的目标是查找先前添加到字典中的用户信息。我试图找到一种方法,如果用户正在搜索特定用户,则只会返回该用户的信息。到目前为止,这是我为该项目的这一部分编写的代码:

selection = input('Please select an option 1 - 4:\t')

if selection == '1':

print('Add user - Enter the information for the new user:\t')
first_name = input('First name:\t')
last_name = input('Last name:\t')
hair_color = input('Hair color:\t')
eye_color = input('Eye color:\t')
age = input('Age:\t')

user_info = {}
user_info['First name'] = first_name
user_info['Last name'] = last_name
user_info['Hair color'] = hair_color
user_info['Eye color'] = eye_color
user_info['Age'] = age

为了帖子的空间而跳过代码
if selection == '3':
print('\nChoose how to look up a user')
print('1 - First name')
print('2 - Last name')
print('3 - Hair color')
print('4 - Eye color')
print('5 - Age')
print('6 - Exit to main menu\n')
search_option = input('Enter option:\t')

if search_option == '1' or search_option == 'First name' or search_option == 'first name':
input('Enter the first name of the user you are looking for:\t')

非常感谢任何和所有帮助!

最佳答案

根据您的项目,将来使用字典可能会很困难。我们不要走黑暗的道路。花点时间评估一下情况。

我们知道我们要从用户那里收集一些信息,例如:

  • 名字
  • 姓氏
  • 发色

  • ...等等

    我们还想存储 User稍后基于特定的检索对象 ID .在您的代码中,您根据属性搜索其他用户,但如果两个或多个用户共享相同的属性(例如名字)怎么办?

    您要求的是与特定用户相关联的属性。为什么不创建一个 classUser ?
     class User:


    def __init__(self, id, first_name, last_name, hair_color):

    # You can also check if any attributes are blank and throw an exception.
    self._id = id
    self._first_name = first_name
    self._last_name = last_name
    self._hair_color = hair_color

    # add more attributes if you want

    # a getter to access the self._id property
    @property
    def id(self):
    return self._id

    def __str__(self):
    return f"ID: {self._id} Name: {self._first_name} {self._last_name}
    Hair Color: {self._hair_color}"

    在您的主函数中,您现在可以询问用户详细信息并将它们存储在您可以附加到 List 的类中。 .
    from User import User

    def ask_for_input(question):
    answer = input(question)
    return answer.strip() # strip any user created white space.

    def main():

    # Store our users
    users = []

    # Collect the user info
    id = ask_for_input(question = "ID ")
    first_name = ask_for_input(question = "First Name ")
    last_name = ask_for_input(question = "Last Name ")
    hair_color= ask_for_input(question = "Hair Color ")

    # Create our user object
    user = User(id=id, first_name=first_name, last_name=last_name, hair_color=hair_color)
    print(user)

    # accessing the id property
    print(user.id)

    users.append(user)

    if __name__ == '__main__':
    main()

    您可能还想对上述类进行改进,例如,错误检查,以及添加类型提示以使代码更具可读性。

    如果您只是存储用户信息,数据类可能更合适。

    关于python - 存储用户输入数据以供稍后在 Python 中调用的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59002121/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com