python输入一个人的名字_把一个人的名字分成名字和姓

你会发现这种方法的关键问题不是技术问题,而是人的问题——不同的人用不同的方式写他们的名字。

事实上,“名”和“姓”的术语本身就有缺陷。

虽然许多混合型家庭使用连字符的姓氏,如Smith Jones,但也有一些家庭只是分别使用两个姓氏,“Smith Jones”,其中两个姓氏都是姓氏。

许多欧洲姓氏有多个部分,如“de Vere”和“van den neiular”。有时这些临时演员有着重要的家族史——例如,数百年前一位国王授予的前缀。

附带问题:我已经正确地为我所指的人使用了这些大写字母-“de”和“van den”不能为某些家庭获得大写字母,但为其他家庭获得大写字母。

相反,许多亚洲文化把姓氏放在首位,因为人们认为家庭比个人更重要。

最后一点——有些人很看重“小”或“大”或“三”——而你的代码不应该把它们当作姓氏。

同时注意到有相当多的人使用的名字不是他们父母给的,我已经成功地使用了以下方案:

全名(通常写给邮件地址);

姓氏;

称为(会话中常用的名称)。

例如:

全名:威廉·盖茨三世;姓氏:盖茨;俗称:比尔

全名:宋莉;姓氏:宋楚瑜;学名:丽莎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这个任务可以分成几个步骤来完成。 首先,我们需要一个用户登录的系统。我们可以使用Python内置的`getpass`模块来获取用户输入的密码,并使用`hashlib`模块对密码进行加密存储。这样即使数据被盗,也无法轻易地获取到用户的密码。 ```python import getpass import hashlib def login(): # 读取用户信息 with open('users.txt', 'r') as f: users = f.readlines() # 获取用户名和密码 username = input('请输入用户名:') password = getpass.getpass('请输入密码:') # 验证用户信息 for user in users: user_info = user.strip().split(',') if username == user_info[0]: if hashlib.sha256(password.encode()).hexdigest() == user_info[1]: print('登录成功!') return username else: print('密码错误!') return None # 用户不存在 print('用户不存在!') return None ``` 上述代码中,我们从文件中读取所有用户信息,然后获取用户输入的用户名和密码。接着,我们使用`hashlib`模块对密码进行加密,并与文件中存储的密码进行比较,来验证用户信息。如果用户名和密码都正确,则返回用户名,否则返回`None`。 接下来,我们需要一个能够存储联系人信息的数据结构。我们可以使用Python内置的`dict`类型来存储联系人姓名和电话号码。 ```python contacts = {} ``` 然后,我们需要一个能够读取和保存联系人信息的函数。我们可以将联系人信息保存在以用户名命名的文件中,这样每个用户的联系人信息都相互独立,不会被其他用户看到。 ```python import os def load_contacts(username): filename = f'{username}.txt' if os.path.exists(filename): with open(filename, 'r') as f: for line in f: name, phone = line.strip().split(',') contacts[name] = phone def save_contacts(username): filename = f'{username}.txt' with open(filename, 'w') as f: for name, phone in contacts.items(): f.write(f'{name},{phone}\n') ``` 上述代码中,`load_contacts`函数会读取以用户名命名的文件,并将其中的联系人信息读取到`contacts`字典中。`save_contacts`函数会将`contacts`字典中的联系人信息保存到以用户名命名的文件中。 最后,我们需要一个能够添加、删除、查询联系人信息的函数。我们可以使用`input`函数获取用户输入,并根据用户的选择执行相应的操作。 ```python def add_contact(): name = input('请输入联系人姓名:') phone = input('请输入联系人电话号码:') contacts[name] = phone print('联系人信息已添加!') def delete_contact(): name = input('请输入要删除的联系人姓名:') if name in contacts: del contacts[name] print('联系人信息已删除!') else: print('联系人不存在!') def query_contact(): name = input('请输入要查询的联系人姓名:') if name in contacts: print(f'{name}的电话号码是{contacts[name]}') else: print('联系人不存在!') ``` 最后,我们可以编写一个主函数来调用上述函数。 ```python def main(): # 用户登录 username = login() if username is None: return # 加载联系人信息 load_contacts(username) # 显示菜单 menu = ''' 通讯录菜单: 1. 添加联系人 2. 删除联系人 3. 查询联系人 4. 退出 ''' while True: print(menu) choice = input('请输入要执行的操作:') if choice == '1': add_contact() save_contacts(username) elif choice == '2': delete_contact() save_contacts(username) elif choice == '3': query_contact() elif choice == '4': break else: print('无效操作!') print('程序已退出!') if __name__ == '__main__': main() ``` 上述代码中,我们首先调用`login`函数进行用户登录。如果登录成功,就调用`load_contacts`函数加载联系人信息。然后,我们显示菜单,根据用户的选择调用相应的函数。最后,我们在用户选择退出后调用`save_contacts`函数保存联系人信息,并退出程序。 这样,我们就完成了一个基本的通讯录程序,可以存储在本地,需要账号密码登录才能访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值