python实现学生通讯录管理系统

Python实现学生通讯录管理系统

本文将介绍如何使用Python语言实现学生通讯录管理系统。这个系统可以实现添加、删除、修改和查询学生信息等功能。

数据库

我们首先需要一个数据库来存储学生信息。我们可以选择使用sqlite3来创建一个本地的数据库。

import sqlite3

# 连接到本地数据库
conn = sqlite3.connect('student.db')
# 获取游标
c = conn.cursor()
# 创建表
c.execute('''CREATE TABLE students
             (id integer primary key autoincrement, 
             name text, 
             age integer, 
             gender text, 
             phone text, 
             email text)''')
# 关闭游标和连接
c.close()
conn.close()

添加学生信息

添加学生信息需要用户输入学生的姓名、年龄、性别、电话和邮箱等信息。我们可以使用Python中的input()函数来获取用户输入。

def add_student():
    name = input("请输入学生姓名:")
    age = input("请输入学生年龄:")
    gender = input("请输入学生性别:")
    phone = input("请输入学生电话号码:")
    email = input("请输入学生邮箱:")

    # 连接数据库
    conn = sqlite3.connect('student.db')
    # 获取游标
    c = conn.cursor()
    # 插入数据
    c.execute("INSERT INTO students (name, age, gender, phone, email) VALUES ('%s', %d, '%s', '%s', '%s')"
              % (name, age, gender, phone, email))
    # 提交数据并关闭游标和连接
    conn.commit()
    c.close()
    conn.close()

    print("学生信息添加成功!")

删除学生信息

删除学生信息需要用户输入学生的姓名。我们可以使用Python中的input()函数来获取用户输入。

def delete_student():
    name = input("请输入要删除的学生姓名:")

    # 连接数据库
    conn = sqlite3.connect('student.db')
    # 获取游标
    c = conn.cursor()
    # 删除数据
    c.execute("DELETE FROM students WHERE name='%s'" % name)
    # 提交数据并关闭游标和连接
    conn.commit()
    c.close()
    conn.close()

    print("学生信息删除成功!")

修改学生信息

修改学生信息需要用户输入学生的姓名和修改后的信息。我们可以先查询到要修改的学生信息,然后再进行修改。

def update_student():
    name = input("请输入要修改的学生姓名:")

    # 连接数据库
    conn = sqlite3.connect('student.db')
    # 获取游标
    c = conn.cursor()
    # 查询数据
    c.execute("SELECT * FROM students WHERE name='%s'" % name)
    result = c.fetchone()

    if result is None:
        print("没有找到该学生信息!")
    else:
        # 获取修改后的信息
        age = input("请输入学生年龄:")
        gender = input("请输入学生性别:")
        phone = input("请输入学生电话号码:")
        email = input("请输入学生邮箱:")
        # 更新数据
        c.execute("UPDATE students SET age=%d, gender='%s', phone='%s', email='%s' WHERE name='%s'"
                  % (age, gender, phone, email, name))
        # 提交数据并关闭游标和连接
        conn.commit()
        c.close()
        conn.close()

        print("学生信息修改成功!")

查询学生信息

查询学生信息可以根据学生姓名、年龄、性别等条件进行查询。我们可以使用Python中的input()函数来获取用户输入。

def query_student():
    print("请选择要查询的条件:")
    print("1. 姓名")
    print("2. 年龄")
    print("3. 性别")
    option = input("请选择:")

    # 连接数据库
    conn = sqlite3.connect('student.db')
    # 获取游标
    c = conn.cursor()
    # 查询数据
    if option == '1':
        name = input("请输入学生姓名:")
        c.execute("SELECT * FROM students WHERE name='%s'" % name)
    elif option == '2':
        age = input("请输入学生年龄:")
        c.execute("SELECT * FROM students WHERE age=%d" % int(age))
    elif option == '3':
        gender = input("请输入学生性别:")
        c.execute("SELECT * FROM students WHERE gender='%s'" % gender)
    else:
        print("输入有误,请重新选择!")
        return

    result = c.fetchall()
    # 输出数据
    if len(result) == 0:
        print("没有找到符合条件的学生信息!")
    else:
        for row in result:
            print("id:%d 姓名:%s 年龄:%d 性别:%s 电话:%s 邮箱:%s"
                  % (row[0], row[1], row[2], row[3], row[4], row[5]))

    # 关闭游标和连接
    c.close()
    conn.close()

示例

下面是一个完整的示例,展示了如何添加、删除、修改和查询学生信息。

def main():
    while True:
        print("----学生通讯录管理系统----")
        print("1. 添加学生信息")
        print("2. 删除学生信息")
        print("3. 修改学生信息")
        print("4. 查询学生信息")
        print("0. 退出系统")
        option = input("请选择:")

        if option == '1':
            add_student()
        elif option == '2':
            delete_student()
        elif option == '3':
            update_student()
        elif option == '4':
            query_student()
        elif option == '0':
            break
        else:
            print("输入有误,请重新选择!")

运行上述代码后,用户可以通过命令行界面来操作学生通讯录管理系统,例如:

----学生通讯录管理系统----
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
0. 退出系统
请选择:1
请输入学生姓名:张三
请输入学生年龄:20
请输入学生性别:男
请输入学生电话号码:13911112222
请输入学生邮箱:zhangsan@example.com
学生信息添加成功!
----学生通讯录管理系统----
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
0. 退出系统
请选择:4
请选择要查询的条件:
1. 姓名
2. 年龄
3. 性别
请选择:2
请输入学生年龄:20
id:1 姓名:张三 年龄:20 性别:男 电话:13911112222 邮箱:zhangsan@example.com
----学生通讯录管理系统----
1. 添加学生信息
2. 删除学生信息
3. 修改学生信息
4. 查询学生信息
0. 退出系统
请选择:2
请输入要删除的学生姓名:张三
学生信息删除成功!

通过上述示例,我们可以看到学生通讯录管理系统的基本使用方法,用户可以根据自己的需求进行合理的操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现学生通讯录管理系统 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Python连接SQLServer2000的方法详解

    SQLServer2000连接的准备工作 在进行Python连接SQLServer2000之前,需要做一些准备工作: 安装ODBC驱动器:ODBC(Open Database Connectivity)可以将SQLServer与Python连接。安装ODBC驱动器可在Microsoft官网下载安装; 安装Python的pyodbc工具包:pyodbc是一个P…

    python 2023年5月20日
    00
  • 如何在 Redis 中使用 Lua 脚本实现延迟队列?

    以下是详细讲解如何在 Redis 中使用 Lua 脚本实现延迟队列的完整使用攻略。 Redis 延迟队列简介 Redis 延迟队列是一种常见的消息队列,用于实现延迟任务。Redis 延迟队列常使用有序集合(Sorted Set)实现,其中任务的执行时间作为有序集合的分数,任务的内容作为有序集合成员。 Redis Lua 脚本实现延迟队列 在 Redis 中,…

    python 2023年5月12日
    00
  • PIP安装python包出现超时问题的解决

    下面来分享“PIP安装python包出现超时问题的解决”的完整攻略: 问题描述 在使用pip安装Python包时,常常会出现超时(Timeout)的错误提示,例如: Collecting pandas Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) …

    python 2023年5月14日
    00
  • python爬虫入门教程–利用requests构建知乎API(三)

    “python爬虫入门教程–利用requests构建知乎API(三)”是一篇关于使用Python爬虫抓取知乎网站数据的教程,主要讲解如何通过Python编写代码,使用requests库模拟浏览器发起HTTP请求,然后抓取知乎网站的信息内容并进行解析。 该教程主要分为以下几个部分: 介绍了基本的requests库使用方式,包括向URL发送GET或POST请求…

    python 2023年5月14日
    00
  • python 阶乘累加和的实例

    Python 阶乘累加和的实例攻略 问题背景 阶乘是数学中的一种特殊运算,常用于离散数学、组合数学等领域。对于一个正整数 n,其阶乘的定义为: n! = n x (n-1) x (n-2) x … x 1 例如: 3! = 3 x 2 x 1 = 6 5! = 5 x 4 x 3 x 2 x 1 = 120 现在的问题是,如何计算从 1 到 n 的所有正…

    python 2023年6月5日
    00
  • Python标准库sys库常用功能详解

    Python标准库sys库常用功能详解 简介 Python标准库sys库是Python自带的一个系统参数相关的库,通过它可以访问与Python解释器相关的系统参数和函数。它包含了与Python解释器进行交互的一系列工具,主要包括: sys.argv:获取命令行参数 sys.path:获取Python模块搜索路径 sys.modules:获取已经加载的模块 s…

    python 2023年5月30日
    00
  • Python常见的函数及格式化输出

    让我来为你讲解一下Python常见的函数及格式化输出的完整攻略。 Python常见函数 1. print函数 print函数用于打印输出,可以输出字符串、数字、运算结果等类型的数据。常用的格式如下: print("Hello world!") 在上述例子中,我们使用了print函数输出了一个字符串”Hello world!”。你可以直接复…

    python 2023年6月5日
    00
  • Django 拼接两个queryset 或是两个不可以相加的对象实例

    想要拼接两个queryset或是两个不可以相加的对象实例,可以使用Django中的chain()函数或者Q()函数。 chain()函数的使用 chain()函数可以链接多个iterable对象并生成一个迭代器,可以用于链接两个queryset或者多个对象实例。首先需要导入chain函数: from itertools import chain 接下来,可以…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部