python实验——集合和字典的使用

1、编程实现:(1)从键盘输入两个100以内的正整数(2求出每个正整数的所有约数,这些约数可以列表或集合存放(3)通过集合运算,求出这两个整数所有公约数,并找出它们的最大公约数(4)根据最小公倍数数等于两个整数的乘积除以它们最大公约数的这一结论,求出最小公倍数(例如24与36的最小公倍数=24*36/12,12就是24与36的最大公约数

要求程序能输出:(1)每个正整数的所有约数(2)两个整数的最大公约数和最小公倍数

def gys(a, b):
    while b != 0:
        a, b = b, a % b
    return a
def gbs(a, b):
    return (a * b) // gys(a, b)
n1=eval(input("请输入一个100以内的正整数:"))
n2=eval(input("请再输入一个100以内的正整数:"))
# 求最大公约数
result_gys = gys(n1, n2)
print(f"最大公约数是: {result_gys}")

# 求最小公倍数
result_gbs = gbs(n1, n2)
print(f"最小公倍数是: {result_gbs}")

2、请选择合适的数据结构(推荐使用列表或字典存储如表1所示的好友通讯录信息,并通过字符串提示用户对好友通讯录信息进行增、删、改、查操作,输入数字1进行好友添加,输入数字2删除好友,输入数字3和4分别进行好友信息修改和查询,接着根据用户选择的方式进行针对性的好友信息管理。

 

def add_friend(information):
    name = input("请输入好友姓名: ")
    phone = input("请输入好友电话号码: ")
    address = input("请输入好友地址: ")
    information[name] = {"phone": phone, "address": address}
    print("现在的通讯录是:")
    print("{:<15} {:<15} {:<20}".format("好友姓名", "电话号码", "地址")) # 打印表头
    for name, info in information.items():
        print("{:<15} {:<15} {:<20}".format(name, info['phone'], info['address'])) # 打印每个人的信息

def delete_friend(information):
    name = input("请输入要删除的好友姓名: ")
    if name in information:
        del information[name]
        print("现在的通讯录是:")
        print("{:<15} {:<15} {:<20}".format("好友姓名", "电话号码", "地址")) # 打印表头
        for name, info in information.items():
            print("{:<15} {:<15} {:<20}".format(name, info['phone'], info['address'])) # 打印每个人的信息
    else:
        print("该好友不存在!")

def update_friend(information):
    name = input("请输入要修改信息的好友姓名: ")
    if name in information:
        phone = input("请输入新的电话号码: ")
        address = input("请输入新的地址: ")
        information[name] = {"phone": phone, "address": address}
        print("现在的通讯录是:")
        print("{:<15} {:<15} {:<20}".format("好友姓名", "电话号码", "地址")) # 打印表头
        for name, info in information.items():
            print("{:<15} {:<15} {:<20}".format(name, info['phone'], info['address'])) # 打印每个人的信息
    else:
        print("该好友不存在!")

def search_friend(information):
    name = input("请输入要查询的好友姓名: ")
    if name in information:
        print(f"好友姓名: {name}")
        print(f"电话号码: {information[name]['phone']}")
        print(f"地址: {information[name]['address']}")
    else:
        print("该好友不存在!")

# 好友通讯录字典
information ={}

while True:
    print("请选择要进行操作的对应数字:")
    print("1-添加,2-删除,3-修改,4-查询,0-退出")

    choice = input()

    if choice == "1":
        add_friend(information)
    elif choice == "2":
        delete_friend(information)
    elif choice == "3":
        update_friend(information)
    elif choice == "4":
        search_friend(information)
    elif choice == "0":
        print("谢谢使用,程序退出!")

运行结果:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值