首页 > 编程语言 >python---学生通讯录

python---学生通讯录

时间:2024-06-21 22:28:58浏览次数:29  
标签:name python --- dict 通讯录 student print 键值 my

  1. 代码:

import csv
students=[]
def menu():
    print("学生信息管理")
    print("1.显示学生信息")
    print("2.添加学生信息")
    print("3.删除学生信息")
    print("4.保存学生信息")
    print("5.退出")
def add():
    student={}
    student['id']=int(input("请输入学号:"))
    student['name']=input("请输入姓名:")
    student['sex']=input("请输入性别:")
    student['classes']=input("请输入班级:")
    student['phone']=int(input("请输入电话:"))
    students.append(student)
    print("录入完成")
    return students
def save():
    with open('students.csv','w',newline='') as csvfile:
        writer=csv.DictWriter(csvfile,fieldnames=['id','name','sex','classes','phone'])
        writer.writerows(students)
def display():
    for student in students:
        print(student)
def delete():
    id=input("请输入要删除的学生学号:")
    for student in students:
        if str(student['id'])==id:
            students.remove(student)
            save()
            print("信息删除成功")
            return
    else:
        print("未找到学生信息")
def play():
    while True:
        menu()
        choice = input("请选择序号,执行相应操作: ")
        if choice == '1':
            display()
        elif choice == '2':
            add()
        elif choice == '3':
            delete()
        elif choice == '4':
            save()
            print("学生信息已经自动保存。")
        elif choice == '5':
            break
        else:
            print("无效的选项,请重新选择。")
play()

  1. 截图:
  2. 分析:

students 列表用于存储学生的字典信息。

menu 函数用于显示菜单选项。

add 函数用于添加学生信息到 students 列表。

save 函数用于将学生信息保存到 CSV 文件中。

display 函数用于显示 students 列表中的所有学生信息。

delete 函数用于根据学号删除学生信息。

play 函数是一个无限循环,用于执行用户选择的操作。

在编程中需要对列表名进行处理,引入fieldname变量名,为字典的键。

在Python中,字典(dictionary)是一种可变容器模型,它包含键值对(key-value pairs)。每个键(key)都是唯一的,并且与值(value)相关联。字典的键必须是不可变类型(如整数、浮点数、字符串、元组等),而值可以是任何类型。

1.唯一性:字典中的每个键都必须是唯一的。如果有两个或更多的键具有相同的值,则后面的键值对将覆盖前面的键值对。

my_dict = {'apple': 1, 'banana': 2, 'apple': 3}  # 'apple' 的值被覆盖为 3

print(my_dict)  # 输出: {'apple': 3, 'banana': 2}

2.不可变性:字典的键必须是不可变的。这意味着你可以使用整数、浮点数、字符串或元组作为键,但不能使用列表、集合或其他可变类型作为键。

# 正确的键类型

my_dict = {1: 'one', 2.0: 'two', 'three': 3, (4, 5): 'four-five'}

# 错误的键类型(因为列表是可变的)

# my_dict = {[1, 2]: 'one-two'}  # 这会引发TypeError

获取键的值:你可以使用方括号([])和键来获取字典中与该键相关联的值。

my_dict = {'name': 'Alice', 'age': 30}

print(my_dict['name'])  # 输出: Alice

检查键是否存在:你可以使用 in 关键字来检查字典中是否存在某个键。

my_dict = {'name': 'Alice', 'age': 30}

if 'name' in my_dict:

    print('The key "name" exists.')

添加或修改键值对:如果键已经存在于字典中,则使用相同的键赋值会修改该键的值。如果键不存在于字典中,则添加一个新的键值对。

my_dict = {'name': 'Alice'}

my_dict['age'] = 30  # 添加新的键值对

my_dict['name'] = 'Bob'  # 修改已存在的键值对

print(my_dict)  # 输出: {'name': 'Bob', 'age': 30}

删除键值对:你可以使用 del 语句或字典的 pop() 方法来删除键值对。

my_dict = {'name': 'Alice', 'age': 30}

del my_dict['name']  # 删除键为 'name' 的键值对

print(my_dict)  # 输出: {'age': 30}

# 或者使用 pop() 方法(如果键不存在,pop() 可以接受一个默认值)

value = my_dict.pop('age', None)  # 删除键为 'age' 的键值对,并返回其值(如果不存在则返回 None)

print(my_dict)  # 输出: {}

print(value)  # 输出: 30

标签:name,python,---,dict,通讯录,student,print,键值,my
From: https://blog.csdn.net/2302_81279069/article/details/139871147

相关文章

  • 2024年华为OD机试真题-分披萨-(C++/Java/python)-OD统一考试(C卷D卷)
    题目描述"吃货"和"馋嘴"两人到披萨店点了一份铁盘(圆形)披萨,并嘱咐店员将披萨按放射状切成大小相同的偶数个小块。但是粗心的服务员将披萨切成了每块大小都完全不同奇数块,且肉眼能分辨出大小。由于两人都想吃到最多的披萨,他们商量了一个他们认为公平的分法:从"吃货"开始,轮流......
  • 14-vertical-aligin
    01行盒的理解作用:将当前行里的所有内容包裹起来<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Docu......
  • 【图像分割】使用快速模糊 c-means clusering 进行图像分割(Matlab实现)
    “在代码的海洋里,有无尽的知识等待你去发现。我就是那艘领航的船,带你乘风破浪,驶向代码的彼岸。 ......
  • 【故障诊断】动态系统故障诊断的不断演进方法研究(Python代码实现)
     ......
  • 高项-采购管理知识要点
    1、项目采购管理包括三个过程(默写):规划采购管理、实施采购、控制采购。(1)规划采购管理:记录项目决策、明确采购方法及识别潜在卖方的过程。输出:采购管理计划、采购策略、采购工作说明书、供方选择标准、自制/外购决策、招标文件、独立成本估算(2)实施采购:获取卖方应......
  • day11 - 集合+学生管理系统(黑马程序员)
    目录1.ArrayList1.1ArrayList类概述1.2ArrayList类常用方法1.2.1构造方法1.2.2成员方法1.2.3示例代码1.3ArrayList存储字符串并遍历1.3.1案例需求1.3.2代码实现1.4ArrayList存储整数并遍历1.4.1案例需求1.4.2代码实现​1.5 ArrayList存储学生对象并遍......
  • day10 - 字符串
    目录1.API1.1API概述1.2如何使用API帮助文档2.String类2.1String类概述2.2String类的特点2.3String类的构造方法2.4创建字符串对象两种方式的区别2.5字符串的比较2.5.1==号的作用2.5.2equals方法的作用2.6用户登录案例2.6.1案例需求2.6.2代码实现2.7遍......
  • 金控风控:Python实现基于数据技巧的拒绝推断
    常说的拒绝推断(Inferencemethods),通常是指通过数据分析方法修正模型的参数估计偏差。拒绝推断的主要意义是希望修正建模样本和实际全量样本之间的差异,本质上是为了降低模型参数估计的偏差。拒绝推断场景下有如下三个概念。已知好坏标签(KnowGoodBad,KGB)样本:准入模型允许通过......
  • C++系统相关操作1 - 调用命令行并获取返回值
    1.关键词2.sysutil.h3.sysutil.cpp3.1.system_util_unix.cpp3.2.system_util_win.cpp4.测试代码5.运行结果6.源码地址1.关键词关键词:C++系统调用systempopen跨平台应用场景:希望直接调用操作系统的某些命令,并获取命令的返回值。2.sysutil.h#pragm......
  • C++系统相关操作2 - 获取系统环境变量
    1.关键词2.sysutil.h3.sysutil.cpp4.测试代码5.运行结果6.源码地址1.关键词C++系统调用环境变量getenv跨平台2.sysutil.h#pragmaonce#include<cstdint>#include<string>namespacecutl{/***@briefGetanenvironmentvariable.......