python学习第六节:使用python制作九九乘法表和学生管理系统

news2024/9/25 7:14:32

python学习第六节:使用python制作九九乘法表和学生管理系统

在这里插入图片描述
通过前面五节的了解,已经大概知道python的语法以及基础函数,下面是简单的两个小程序。不会做没关系,看得懂就可以了,如果能够自己加工举一反三那就更好了。

ps:前面五节只是简单讲解了python的基础语法和函数,也就是混个脸熟,没有进行深入讲解,如果展开来讲的话每一个单独的语法和函数都能将几大章,而很多语法和函数的用法我们根本用不上。为了不打击初学者的信心,我只写了个大概,后面需要使用的时候再去深入了解即可。
忘了说了,我也是python初学者,正在一点一点学习,如果我讲的有不对的地方请大家多多指正!

九九乘法表

效果图:
在这里插入图片描述

代码:

def mult():
    i=1
    while i<10:
        j=1
        while j<=i:
            #print(j,"*",i,"=",j*i,end="\t") #第一种输出法,直接拼接
            print("%d * %d = %d" %(j,i,j*i),end="\t") #第二种输出法,使用占位符
            j+=1
        print("")
        i+=1
mult()

学生管理系统

这个系统分两个py文件,一个工具文件,一个运行文件。这里面用到了前面五节中说到的很多东西,并且还有不同的用法。

工具文件 tools.py 也就是文件名称,如果名称要改的话,请在运行文件中改一下引用。

# 记录所有学生字典
student_list = []
# 显示系统菜单列表
def show_menu():
    """显示菜单"""
    print("*" * 50)
    print("""
    欢迎使用[学生管理系统] V3.0\n
    1.新建学生资料\n
    2.显示全部学生\n
    3.查询学生资料\n
    0.退出系统
    """)
    print("*" * 50)

# 添加功能
def add_menu():
    """新增学生"""
    print("新增学生")
    # 1.提示用户输入学生的详细信息
    name = input("请添加姓名:")
    age = input("请添加年龄:")
    sex = input("请添加性别:")
    tel = input("请添加手机号码:")
    # 2.使用用户输入的信息建立一个学生字典
    student_dict = {"name": name,"age": age,"sex": sex,"tel": tel}
    # 3.将学生字典添加到列表中
    student_list.append(student_dict)
    print("您刚新增的学生信息如下:",student_list)
    # 4.提示用户添加成功
    print("学生资料添加成功!")

# 显示查询功能
def show_all():
    """显示全部学生"""
    print("_" * 50)
    print("显示全部学生资料")
    if len(student_list) == 0:
        print("当前没有任何学生记录,请使用新增功能添加学生哦")
        # return 可以返回一个函数的执行结果
        # 如果 return 后面没有任何的内容,表示会返回到调用函数的位置继续执行
        # 并且不返回任何的结果
        return
    # 打印表头
    for name in ["姓名", "年龄", "性别", "手机号码"]:
        print(name, end="\t\t")
    print("")
    # 循环遍历输出字典信息
    for student_dict in student_list:
        print("%s\t\t%s\t\t%s\t\t%s" % (student_dict["name"],student_dict["age"],student_dict["sex"],student_dict["tel"]))

# 搜索学生资料
def search_student():
    """搜索学生资料"""
    search_key = input("请输入要搜索的关键字:")
    for student_dict in student_list:
        for key in student_dict:
            if student_dict[key] == search_key:
                print("找到 %s 的相关信息了" % search_key)
                for name in ["姓名", "年龄", "性别", "手机号码"]:
                    print(name, end="\t\t")
                print("")
                # 循环遍历输出字典信息
                print("%s\t\t%s\t\t%s\t\t%s" % (student_dict["name"],student_dict["age"],student_dict["sex"],student_dict["tel"]))
                deal_student(student_dict)
                break
    else:
        print("没有找到 %s" % search_key)

    print("搜索学生信息")

# 针对学生资料的功能列表
def deal_student(find_dict):
    # while True:
    num_card = int(input("请选择功能序号:1.修改 2.删除 0.返回上级菜单 :"))
    if num_card == 1:
        find_dict["name"] = input_student_info(find_dict["name"], "修改姓名:")
        find_dict["age"] = input_student_info(find_dict["age"], "修改年龄:")
        find_dict["sex"] = input_student_info(find_dict["sex"], "修改性别:")
        find_dict["tel"] = input_student_info(find_dict["tel"], "修改手机号码:")
    elif num_card == 2:
        student_list.remove(find_dict)
    elif num_card == 0:
        pass
    else:
        print("输入有误,请重新输入")

# 读取控制台输入的信息
def input_student_info(dict_value, tip):
    result_str = input(tip)
    if len(dict_value) > 0:
        return result_str
    else:
        return dict_value

运行文件,这个文件就随意取名了,我这里取的是 qk.py

import tools

# while True 无限循环
while True:
    try:
        # 显示功能菜单
        tools.show_menu()
        # 控制台输入操作指令
        action_str = int(input("请选择你想要执行的操作:")) # 这里会将输入的指令强转为整数类型,如果输入的不是整数类型会进入下面的 except
        print("你想要执行的操作是 %d" % action_str)
        # 1,2,3 是系统的功能选择操作
    except ValueError as e:
        print(e)
        print("您输入的不是数字,请再次尝试输入!")
        continue
    # 根据功能指令调用不同的方法
    if action_str in [1, 2, 3]:
        # 新增学生
        if action_str == 1:
            tools.add_menu()
        # 全部学生资料
        elif action_str == 2:
            tools.show_all()
        # 查询学生资料
        elif action_str == 3:
            tools.search_student()
    # 0 退出系统
    elif action_str == 0:
        print("欢迎再次使用【学生管理系统】")
        break
        # 如果在开发程序时,不希望立刻编写分支内部的代码
        # 可以使用 pass 关键字,表示一个占位符,能够保证程序代码结构正确
        # 程序运行时,pass不会执行任何操作
        pass
    # 输入其他内容有误提示用户
    else:
        print("你输入的有误,请重新输入") 

大家把这两个文件代码复制到编辑器中,运行qk.py文件就可以进入《学生管理系统》了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络 TCP/IP协议篇

今天学习了TCP/IP协议的相关知识&#xff0c;学习笔记如下&#xff1a; 在学习之前&#xff0c;我们先抛出几个问题&#xff0c;什么是TCP/IP协议簇&#xff1f;TCP/IP协议簇是怎么工作的&#xff1f; TCP/IP模型 协议分层 每层通过协议完成各自特定的功能上层依赖下层提供…

智能对决:提示词攻防中的AI安全博弈

智能对决&#xff1a;提示词攻防中的AI安全博弈 在2024年上海AIGC开发者大会上&#xff0c;知名提示词爱好者工程师云中嘉树发表了关于AI提示词攻防与安全博弈的精彩演讲。他深入探讨了当前AI产品的安全现状&#xff0c;提示词攻击的常见手段及其应对策略。本文将对他的演讲进…

【每日一题】LeetCode 84.柱状图中最大的矩形(栈、数组、单调栈)

【每日一题】LeetCode 84.柱状图中最大的矩形&#xff08;栈、数组、单调栈&#xff09; 题目描述 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 这…

Linux小程序:进度条

目录 一、换行与回车 二、缓冲区 三、倒计时代码 四、进度条实现 实现进度条程序&#xff0c;首先需要两个预备知识&#xff1a; 1.换行与回车 2.缓存区 一、换行与回车 我们通常使用\n作为换行符&#xff0c;但实际上\n是换行回车两种效果的结合&#xff0c;因此我们需…

.iso文件怎么打开?

在日常使用电脑的过程中&#xff0c;很多用户都会遇到.iso文件&#xff0c;尤其是在安装软件、操作系统或者备份光盘内容时。那么&#xff0c;什么是.iso文件&#xff1f;该如何打开它&#xff1f;本文将为大家详细解答这些问题&#xff0c;帮助大家轻松处理.iso文件。 什么是.…

IEEE TRO 人形机器人遥操作的综述

人形机器人的遥操作结合了人类的认知技能和领域专业知识以及人形机器人的物理能力。这种人形机器人的操作多功能性使它们成为远程环境中各种应用的理想平台。然而&#xff0c;人形机器人的复杂性给遥操作带来了挑战&#xff0c;尤其是在通信受限的非结构化动态环境中。尽管在过…

【2024国赛B题】高教杯全国大学生数学建模国赛建模过程+完整代码论文全解全析

你是否在寻找数学建模比赛的突破点&#xff1f;数学建模进阶思路&#xff01; 作为经验丰富的数学建模团队&#xff0c;我们将为你带来2024国赛数学建模竞赛&#xff08;B题&#xff09;的全面解析。这个解决方案包不仅包括完整的代码实现&#xff0c;还有详尽的建模过程和解析…

pdf怎么删除其中一页?这5个pdf编辑方法新手都在用,建议收藏

pdf怎么删除其中一页&#xff1f;在日常的工作和学习生活中&#xff0c;我们经常会遇到需要处理PDF文件的情况。有时候&#xff0c;我们在处理PDF文件时&#xff0c;发现某些页面内容不再需要&#xff0c;想从PDF中删除特定的页面。然而&#xff0c;很多小伙伴对PDF的编辑和修改…

员工上班摸鱼怎么办,上班期间摸鱼

在现代企业的日常运营中&#xff0c;员工的工作效率是企业成功的关键因素之一。随着远程办公的普及&#xff0c;员工在工作中“摸鱼”的现象愈加频繁。这不仅会导致工作效率的下降&#xff0c;还可能拖延项目进展&#xff0c;增加企业的管理成本。面对这一问题&#xff0c;企业…

大模型备案重难点最详细说明【评估测试题+附件】

2024年3月1日&#xff0c;我国通过了《生成式人工智能服务安全基本要求》&#xff08;以下简称《AIGC安全要求》&#xff09;&#xff0c;这是目前我国第一部有关AIGC服务安全性方面的技术性指导文件&#xff0c;对语料安全、模型安全、安全措施、词库/题库要求、安全评估等方面…

极市开发平台yolov8训练无人机数据集样例数据流程

先进入vscode&#xff0c;进入src_repo文件夹。 第一步&#xff0c;克隆一个比较好的博主的库&#xff1a; GitHub - Incalos/YOLO-Datasets-And-Training-Methods: This project involves making custom datasets for the YOLO series and model training methods for YOLO.…

在生产线打包机中RFID技术的赋能

在生产线打包机中RFID技术的赋能 随着制造业的智能化发展&#xff0c;RFID技术越来越多地被应用于生产线中&#xff0c;特别是在产线打包环节。本文将探讨RFID技术如何提高产线打包机的工作效率和准确性&#xff0c;并分析其在现代制造业中的重要作用。 RFID在产线打包机上的应…

顶刊速递|医学AI在乳腺癌中的最新研究进展·24-09-06

小罗碎碎念 本期推文主题&#xff1a;乳腺癌 最近我在思考一个问题&#xff0c;生信分析和人工智能的区别和联系是什么&#xff1f;细节现在是想不清楚的&#xff0c;因为我的知识储备还不够&#xff0c;但是有一点我可以确定&#xff0c;二者的部分本质都是一样的——强大的计…

使用程序方式获取与处理MySQL表数据

8.1  执行多条语句获取 MySQL 表数据 8.1.1  MySQL 中的常量 8.1.2  MySQL 中的变量 1&#xff0e;用户变量 用户可以在表达式中使用自己定义的变量&#xff0c;这样的变量称为用户变量。 用户变量在使用前必须定义和初始化&#xff0c;如果使用没有初始化的变量&#x…

EG边缘计算网关连接华为云物联网平台(MQTT协议)

需求概述 实现一个流程&#xff1a;EG8200mini采集Modbus RTU数据&#xff0c;通过MQTT协议连接华为云物联网平台 Modbus RTU采集此处不做过多赘述&#xff0c;可参考其他案例&#xff08;串口读取Modbus传感器数据&#xff09;介绍。下文默认已经采集到Modbus RTU数据。 要…

【B题成品论文已出】24数学建模国赛B题成品论文(附参考代码)免费分享

B题&#xff1a;生产过程中的决策问题 一、第一问 针对问题一&#xff0c;要求我们制定多种抽样方案&#xff0c;并利用区间估计的方法确定各个抽样方案的检测次数&#xff0c;在两种情形下确定抽样方法。这里可以选择的抽样方案有简单随机抽样&#xff08;超几何分布中未知参…

详解 MQ 消息队列

谈起消息队列&#xff0c;内心还是会有些波澜。 消息队列&#xff0c;缓存&#xff0c;分库分表是高并发解决方案三剑客&#xff0c;而消息队列是我最喜欢&#xff0c;也是思考最多的技术。 我想按照下面的四个阶段分享我与消息队列的故事&#xff0c;同时也是对我技术成长经…

ICAS英格尔认证碳中和技术项目入选联合国工发组织第三届碳中和技术方案征集,打造农食系统碳足迹管理“智囊”

2024年8月27日&#xff0c;由联合国工业发展组织上海ITPO与上海交大-联合国工发绿色增长联合研究院联合主办的“虹口双碳对话第三届碳中和技术方案征集暨UNIDO Global Call 2024中国项目储备评估会”在上海环境能源交易所成功举办。 中国科学院地理科学与资源研究所陆地表层格…

【银河麒麟高级服务器操作系统实例】虚拟化平台系统服务中断现象分析及处理建议

服务器环境以及配置 【机型】虚机 处理器&#xff1a; Kunpeng-920 内存&#xff1a; 40G 【内核版本】 4.19.90-23.8.v2101.ky10.aarch64 【OS镜像版本】 银河麒麟操作系统 Kylin-Server-10-SP1-Release-Build20-20210518-arm64 【第三方软件】 智能运维系统、mysq…

Flume 日志采集系统

Flume 日志采集系统 一、Flume 概述二、Flume 架构设计2.1 架构图2.2 Flume Source 类型2.3 Flume Channel 类型2.4 Flume Sink 类型 三、Flume 安装部署3.1 下载解压3.2 上传解压3.3 修改配置文件2.4 启动 Flume Agent 四、案例实践&#xff1a;Flume 分布式集群搭建4.1 Flume…