python随手小练13

news2024/10/7 20:37:22

题目1:

定义学员信息类,包含姓名、成绩属性,定义成绩打印方法 (90分及以上显示优秀,80分及以上显示良好,70分及以上显示中等,60分及以上显示合格,60分以下显示不及格)

具体操作:

class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score
 
    def print_score(self):
        if self.score >= 90:
            print(f"学员 {self.name} 考{self.score}分,成绩为优秀。")
        elif self.score >= 80:
            print(f"学员 {self.name} 考{self.score}分,成绩为良好。")
        elif self.score >= 70:
            print(f"学员 {self.name} 考{self.score}分,成绩为中等。")
        elif self.score >= 60:
            print(f"学员 {self.name} 考{self.score}分,成绩为合格。")
        else:
            print(f"学员 {self.name} 考{self.score}分,成绩为不及格。")
 
student1 = Student("张三", 95)
student1.print_score()
 
student2 = Student("李四", 85)
student2.print_score()
 
student3 = Student("王五", 75)
student3.print_score()
 
student4 = Student("赵四", 65)
student4.print_score()
 
student5 = Student("老六", 55)
student5.print_score()
 

结果展示:

题目2:

检测密码

一些网站会给密码强加一些规则。编写函数检测一个字符串是否是一个合法的密码。假设密码规则如下述:

  • 密码必须至少有 8 个字符
  • 密码只能包含英文字母和数字
  • 密码应该至少包含两个数字

编写程序提示用户输入一个密码,如果遵循了规则就显示“valid password”,否则“invalidpassword”
 

具体操作:

# 定义一个函数 is_valid_password,用于判断密码是否符合要求
def is_valid_password(password):
    # 如果密码的长度小于 8,则不符合要求,返回 False
    if len(password) < 8:
        return False
    
    digit_count = 0  # 用于统计密码中的数字个数
 
    # 遍历密码中的每个字符
    for char in password:
        # 如果字符不是字母或数字,则不符合要求,返回 False
        if not char.isalnum():
            return False
        # 如果字符是数字,则增加数字计数器 digit_count 的值
        if char.isdigit():
            digit_count += 1  # 统计数字的数量
 
    # 如果数字的数量大于等于 2,则符合要求,返回 True;否则返回 False
    if digit_count >= 2:
        return True
    else:
        return False
 
# 获取用户输入的密码
user_password = input("请输入密码:")
 
# 调用 is_valid_password 函数进行密码判断,根据返回的结果输出相应的提示信息
if is_valid_password(user_password):
    print("valid password")
else:
    print("invalid password")

结果展示:

题目3:

摆放家具

具体操作:

# 定义一个名为HouseItem的类,代表一个家具项目  
class HouseItem:  
    # 定义初始化函数,接收两个参数,分别为家具名称和家具面积  
    def __init__(self,name,area):  
        # 将传入的家具名称赋值给self.name,以便后续使用  
        self.name = name  
        # 将传入的家具面积赋值给self.area,以便后续使用  
        self.area = area  
  
    # 定义一个__str__方法,返回一个描述该家具的字符串  
    def __str__(self):  
        # 返回一个包含家具名称和家具面积的字符串,使用f-string格式化  
        return f"家具名称{self.name},家具面积:{self.area}"  
  
# 定义一个名为House的类,代表一个房屋  
class House:  
    # 定义初始化函数,接收两个参数,分别为房屋类型、房屋面积  
    def __init__(self,type,area):  
        # 将传入的房屋类型赋值给self.house_type,以便后续使用  
        self.house_type = type  
        # 将传入的房屋面积赋值给self.area,以便后续使用  
        self.area = area  
        # 将传入的房屋面积赋值给self.free_area,表示房屋的剩余面积  
        self.free_area = self.area  
        # 初始化一个空的列表,用于存放家具名称  
        self.item_list = []  
  
    # 定义一个__str__方法,返回一个描述该房屋的字符串  
    def __str__(self):  
        # 返回一个包含房屋类型、房屋面积、剩余面积和家具名称列表的字符串,使用f-string格式化  
        return f"户型:{self.house_type}\n"\
                f"总面积:{self.area}\n"\
                f"剩余面积:{self.free_area}\n"\
                f"家具名称列表:{self.item_list}"
  
    # 定义一个add_item方法,用于在房屋中添加家具项目  
    def add_item(self,item):  
        # 如果要添加的家具项目面积大于房屋的剩余面积,则打印一条消息并结束函数执行  
        if item.area >self.free_area:  
            print("剩余面积不够了")  
            return  
  
        # 将要添加的家具项目的名称添加到家具名称列表中  
        self.item_list.append(item.name)  
        # 从房屋的剩余面积中减去要添加的家具项目的面积  
        self.free_area -= item.area  
  
# 创建一个名为bed的HouseItem对象,类型为"席梦思",面积为4  
bed = HouseItem("席梦思",4)  
# 创建一个名为ward的HouseItem对象,类型为"衣柜",面积为2"衣柜",面积为2)           
ward = HouseItem("衣柜",2)  
# 创建一个名为house的House对象,房屋类型为"130大平层",面积为130                       
house = House("130大平层",130)  
# 在房屋中添加床和衣柜两个家具项目                                    
house.add_item(bed)  
house.add_item(ward)  
# 打印房屋的信息,包括房屋类型、面积、剩余面积和家具名称列表     
print(house)

结果展示:

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

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

相关文章

基于pyqt5和yolov8的智慧工地施工人工安全检测系统

基于pyqt5和yolov8的智慧工地施工人工安全检测系统 主要基于两者进行集成 在前面模型训练基础上&#xff0c;实现安全马甲、安全面具和安全帽的检测。 核心检测代码 def run(self):self.hilo_corriendo Truemodel YOLO("best.pt")cap cv2.VideoCapture(0)while…

安全生产管理系统助力企业安全细化管理

安全生产管理系统利用完整的安全生产管理体系&#xff0c;结合信息化、数字化和智能化等技术手段&#xff0c;将安全生产过程中的各个环节进行有效整合&#xff0c;使安全管理更加科学、规范和高效。 安全生产管理系统可以对企业安全生产进行全面、细致的管理。它能够实现对企…

NFTScan | 10.23~10.29 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2023.10.23~ 2023.10.29 NFT Hot News 01/ sudoswap 推出 NFT 做空协议 sudoshort 10 月 24 日&#xff0c;NFT 交易协议 sudoswap 推出 NFT 做空协议 sudoshort&#xff0c;是建立在 su…

C语言C位出道心法(一):基础语法

一:基础语法认知 变量与常量,数据类型认知升维 C语言中各种变量的定义及数据类型的认知: 一般而言,在譬如C等高级编程语言中,我们定义不同的类型的变量,需要不同的数据类型来进行声明,不同类型的数据类型声明的变量占用的内存空间不一样; 而数据类型大致分为两种: (1)内置的…

ORACLE运行的数据库突然连接报“无监听程序”

远程&#xff1a;用远程的数据库连接工具用localhost可以连接&#xff0c;用ip地址除127.0.0.1不可连接。 可能是日志文件满了&#xff0c;解决办法如下&#xff1a; 第一步&#xff1a;关闭数据库监听程序【任务管理器--》服务--》右键停止服务】 第二步&#xff1a;找到日志…

安防视频监控平台EasyCVR服务器需要开启firewalld防火墙,该如何开放端口?

智能视频监控/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力&#xff0c;作为安防视频监控综合管理平台&#xff0c;它支持多协议接入、多格式视频流分发&#xff0c;视频监控综合管理平台EasyCVR支持海量视频汇聚管理&#xff0c;可应用在多样化的场景上&…

参与国际大科学计划!DDE 深时数字地球向您发出平台使用邀请

深时数字地球&#xff08;Deep-time Digital Earth&#xff0c;DDE&#xff09;是由我国科学家主导发起并受国际学术界认可的首个大科学计划&#xff0c;希望通过建立一个链接地学信息的研究平台&#xff0c;整合地球演化数据、共享全球地学知识&#xff0c;同时为世界范围内的…

【兔子王赠书第4期】用ChatGPT轻松玩转机器学习与深度学习

文章目录 前言机器学习深度学习ChatGPT推荐图书粉丝福利尾声 前言 兔子王免费赠书第4期来啦&#xff0c;突破传统学习束缚&#xff0c;借助ChatGPT的神奇力量&#xff0c;解锁AI无限可能&#xff01; 机器学习 机器学习是人工智能领域的一个重要分支&#xff0c;它的目的是让…

网络安全(黑客)—零基础自学

目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全&#xff08;黑客技术&#xff09;首先你得了解什么是网络安全&#xff01;什么是黑客&#xff01; 网络安全可以基于攻击和防御视角来分类&am…

GIS开源工具分享,Geojson格式转Topojson格式,使用TopoJSON Server工具进行Geojson转换为Topojson

前言 为什么要将 GeoJSON 转换为 TopoJSON? 因为TopoJSON会把GeoJSON中的冗余数据精简,所以相同数据TopoJSON体积比GeoJSON更小,更利于存储和传输。 Geojson介绍 GEOJSON是gis地图中常用的数据格式,制作地图时用于存储各种地理数据,使用时通过OpenLayer、Leaflet、mapL…

Java char类型介绍

前言&#xff1a;最近&#xff0c;想写一篇关于介绍产生”乱码问题“根本原因的文章&#xff0c;因此&#xff0c;查看了Java中的字符是如何存储的&#xff0c;即char数据类型。在此将学到的知识做一个总结。 一、char数据类型 char类型最初用于表示Unicode字符集中的一个字符…

LeetCode | 17.04.消失的数字和189.旋转数组

LeetCode | 17.04.消失的数字和189.旋转数组 文章目录 LeetCode | 17.04.消失的数字和189.旋转数组17.04.消失的数字方法一&#xff1a;方法二&#xff1a;方法三&#xff1a;方法二的代码方法三的代码 189.旋转数组思路一思路二思路三 17.04.消失的数字 OJ链接 这里题目要求…

②CPU - 运算器、控制器 【软考-软件设计师考点】

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ ②CPU - 运算器、控制器 【软考-软件设计师考点…

基于python的app程式开发

安装的库文件&#xff1a; 运行代码&#xff1a; # -*- coding:utf-8 -*- from kivy.app import App class HelloApp(App):pass if __name__ __main__:HelloApp().run() 结果画面&#xff1a;

PTA 病毒溯源(树)

题目 病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株&#xff0c;而这些变异的病毒又可能被诱发突变产生第二代变异&#xff0c;如此继续不断变化。 现给定一些病毒之间的变异关系&#xff0c;要求你找出其中最长的一条变异链。 在此假设给出的变异都是由突变引起…

数据分类保护敏感数据

数据分类是一个过程&#xff0c;用于发现敏感内容&#xff0c;并对关键数据进行分组&#xff0c;以便进一步配置 DLP。数据分类过程分析组织的数据存储库&#xff0c;以便根据文件的内容和上下文有效地将文件分类为不同的类别&#xff0c;并协助配置适当的安全控制级别以符合数…

leetcode:1207. 独一无二的出现次数(python3解法)

难度&#xff1a;简单 给你一个整数数组 arr&#xff0c;请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的&#xff0c;就返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#xff1a;arr [1,2,2,1,1,3] 输出&#xff1a;true 解释&…

一站式解决安全问题

端玛科技致力于攻克困难的应用软件安全问题&#xff0c;我们的解决方案以安全标准、安全教育和安全风险评估三大支柱为安全SDLC的基础&#xff0c;这三大支柱相互依存&#xff0c;创建了一个可重复的、安全的软件开发生态系统。 主要业务范围&#xff1a;关注整个软件开发过程…

WebRTC介绍

什么是WebRTC WebRTC&#xff08;Web Real-Time Communications&#xff09;是一项实时通讯技术&#xff0c;它允许网络应用或者站点&#xff0c;在不借助中间媒介的情况下&#xff0c;建立浏览器之间点对点&#xff08;Peer-to-Peer&#xff09;的连接&#xff0c;实现视频流…

react实现列表增删改查的小demo(class组件版)

前言 react的语法上就是比vue麻烦不少,既然要开手动挡,那就开吧,一个基础的demo 效果图 列表 新增弹窗 编辑弹框 新增一条数据后的效果 代码 根组件 index.jsx import React, { Component,createRef} from react import withRouter from ../../utils/withRouter import G…