Python基础之简单的小程序和小脚本

简介: 这个Python教程介绍了两个小程序。首先是一个账户管理类小程序,支持存款、取款和查询余额功能,确保金额始终保留两位小数。用户可以输入初始金额创建账户,并进行存取款操作。其次,是一个检查作业提交的脚本,它遍历指定目录,找出未提交作业(即没有对应ID文件)的学生ID。用户输入目录路径后,脚本会显示未提交作业的学生ID,如果所有人都提交了,则显示相应消息。

Python基础之简单的小程序和小脚本

一,账户存取款小程序

class Account:
    """
    账户类,用于管理账户余额和进行存款、取款操作。

    属性:
    __balance (float): 账户余额,私有属性以保护余额不被直接修改。

    方法:
    __init__(self, balance=0.0): 构造函数,初始化账户余额。
    keep_two_decimal(self, amount): 确保金额保留两位小数。
    deposit(self, amount): 存款方法,将指定金额存入账户。
    withdraw(self, amount): 取款方法,从账户中取出指定金额,若余额不足则不进行操作。
    get_balance(self): 获取当前账户余额。
    """

    def __init__(self, balance=0.0):
        """
        初始化账户余额。

        参数:
        balance (float): 初始余额,默认为0.0。
        """
        self.__balance = round(balance, 2)

    def keep_two_decimal(self, amount):
        """
        将金额保留两位小数。

        参数:
        amount (float): 输入的金额。

        返回:
        float: 经过四舍五入保留两位小数后的金额。
        """
        return round(amount, 2)

    def deposit(self, amount):
        """
        存款操作。

        参数:
        amount (float): 存入的金额。
        """
        round_amount = self.keep_two_decimal(amount)  # 确保存款金额保留两位小数

        self.__balance += round_amount
        print(f"存入金额: {round_amount:.2f}. 现余额: {self.__balance:.2f}")  # 打印存款信息

    def withdraw(self, amount):
        """
        取款操作。

        参数:
        amount (float): 取出的金额。

        注:
        如果取款金额超过账户余额,则不进行操作并打印余额不足信息。
        """
        if amount <= self.__balance:
            round_amount = self.keep_two_decimal(amount)  # 确保取款金额保留两位小数
            self.__balance -= round_amount
            print(f"取出金额: {round_amount:.2f}. 现余额: {self.__balance:.2f}")
        else:
            print("余额不足.")

    def get_balance(self):
        """
        获取当前账户余额。

        返回:
        float: 当前账户余额。
        """
        return self.__balance


# 创建一个Account对象实例(初始金额)
start = float(input("初始金额:"))
try:
    if start >= 0:
        my_account = Account(start)
    else:
        print("初始金额不能为负数")
except ValueError:
    print("请输入正确的金额")

# 用户存入金额
a = input("请输入存入金额:")
try:
    if float(a) >= 0:
        # 对输入进行异常处理,确保输入为非负数
        my_account.deposit(float(a))
    else:
        print("输入错误,请输入非负数")
except ValueError:
    print("输入错误,请输入正确钱数")

# 用户取出金额
b = input("请输入取出金额:")
try:
    if float(b) >= 0:
        # 检查取出金额是否超过账户余额
        if float(b) <= my_account.get_balance():
            my_account.withdraw(float(b))
        else:
            print("余额不足")
    else:
        print("输入错误,请输入非负数")
except ValueError:
    print("输入错误,请输入正确钱数")

二,查作业小脚本

import os
import re

def name_id(students):
    """
    检查指定目录下学生作业提交情况,打印未提交作业的学生ID。
    参数:
    - students: 字符串,表示包含学生作业的目录路径。
    无返回值。
    """
    # 生成学生ID列表,格式为01到33
    ids = [f'{i:02d}' for i in range(1, 34)]  
    # 列出指定目录下的所有文件和文件夹
    works = os.listdir(students)  

    # 生成学生ID的两位数子字符串列表
    id_substrings = [f'{i:02d}' for i in range(1, 34)]
    # 生成正则表达式模式列表,用于匹配学生ID子字符串
    patterns = [rf'(?:{sub})' for sub in id_substrings]

    # 找出未提交作业的学生ID,即在works中找不到对应ID文件的学生ID
    without_id = [students_ids for students_ids, last in zip(ids, patterns) if
                  not any(re.search(last, file) for file in works)]

    # 如果有学生未提交作业,则打印未提交作业的学生ID
    if without_id:
        print("没交:\n", ",".join(map(str, without_id)))
    else:
        # 如果所有学生都提交了作业
        print("全交了")

# 获取用户输入的目录路径
lujing = input("路径:")
# 检查路径是否存在且为目录
if os.path.isdir(lujing):
    print("=+" * 20, "start", "+=" * 20)
    name_id(lujing)  # 调用函数检查作业提交情况
    print("=+" * 20, " end ", "+=" * 20)
else:
    # 如果路径不存在或不是目录,则打印提示信息
    print("路径不存在或不是目录")
    # 在脚本执行完毕后暂时停止控制台窗口的关闭,以便于查看结果
input("按回车键继续...")  # os.system("pause")  前者通用,后者仅用于Windows
相关文章
|
2月前
|
安全 网络安全 文件存储
思科设备巡检命令Python脚本大集合
【10月更文挑战第18天】
84 1
思科设备巡检命令Python脚本大集合
|
17天前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
3天前
|
数据采集 存储 监控
21个Python脚本自动执行日常任务(2)
21个Python脚本自动执行日常任务(2)
28 7
21个Python脚本自动执行日常任务(2)
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
128 68
|
10天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
21 7
|
15天前
|
监控 数据挖掘 数据安全/隐私保护
Python脚本:自动化下载视频的日志记录
Python脚本:自动化下载视频的日志记录
|
20天前
|
运维 监控 网络安全
自动化运维的崛起:如何利用Python脚本简化日常任务
【10月更文挑战第43天】在数字化时代的浪潮中,运维工作已从繁琐的手工操作转变为高效的自动化流程。本文将引导您了解如何运用Python编写脚本,以实现日常运维任务的自动化,从而提升工作效率和准确性。我们将通过一个实际案例,展示如何使用Python来自动部署应用、监控服务器状态并生成报告。文章不仅适合运维新手入门,也能为有经验的运维工程师提供新的视角和灵感。
|
25天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
57 2
|
27天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
65 3
|
1月前
|
缓存 运维 NoSQL
python常见运维脚本_Python运维常用脚本
python常见运维脚本_Python运维常用脚本
30 3