python作业题

2023-11-10

1.输入三个坐标表示三角形的三个顶点,计算三角形的面积

import math

(x1, y1), (x2, y2), (x3, y3) = eval(input('(x1,y1),(x2,y2),(x3,y3):'))
#如果不在一条直线上就构成了三角形
if (x1 - x2) * (y1 - y2) == (x2 - x3) * (y2 - y3):
    print('三点在同一条直线上!')
else:

    a = float(math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2))
    b = float(math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2))
    c = float(math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2))
    q=float((a+b+c)/2)
    print("该三角形的三边分别为:", a, b, c)


    s= float(math.sqrt((q * (q - a) * (q - b) * (q - c))))
    print("该三角形的面积:", s)

计算一边进行赋值的时候要带上数据类型,python的平均值math.sqrt() 

2.创建一个学生类,有姓名年龄基础属性,创建一个成绩列表,里面装入语文数学英语数学成绩,并将其实例化


class Student:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def get_name(self):
        return self.name

    def get_age(self):
        return int(self.age)

    def get_course(self):
        a = list(self.score.values())

        return max(a)


student_01 = Student("zhangming", 20, {'语文': 69, '数学': 88, '英语': 100})

print(student_01.get_name())
print(student_01.get_age())
print(student_01.get_course())

values()   :返回列表或字典中的值

创建三个属性,在函数的返回值中,return相当于输出值,在成绩列表里面,可以直接将a作为变量把列表厘米的值赋给a返回(输出)最大的值

3.列表十个数字,逆序输出

list1 = list(input(" 请输入10个数 : " ))
print(list1)
list1.sort(reverse=Tru1e)
print(list1)

列表,元组,字典也是一种数据类型,输入的方式一样,主要在于是否记住列表逆序输出的函数 

4.对元组进行去重

a = [4, 16, 4, 10, 5, 20, 12, 3, 14, 14, 17, 15, 1, 20, 15, 11, 6, 17, 6, 12, 11, 18, 10, 7, 8, 13, 15, 10, 19, 16, 1,
17, 15, 17, 9, 20, 8, 4, 14, 14, 12, 15, 8, 7, 6, 5, 11, **, *, **, **, *4, 9, 15, 15, 9, 11, 5, 16, 9, 1, 13, 6,
12, 10, 3, 15, 15, **, *, *, **, **, 5, 14, 5, 4, 16, 14, 17, 9, 1, 10, 6, 7, 6, 20, 3, 3, 13, 15, 20, 6, 1, 7, 4,
15, 1, 20, 4]

print(a)

print("去重...")
b = []
for i in a:
    if i not in b:
        b.append(i)
print(b)

进行去重操作的时候,可以新建一个元组,然后遍历所有的原元组 ,进行判断,如果元素不在新的元组中就·进行增添append()进新建的函数中

 5.输出全部的水仙花数


num=int(input("请输入一个三位数:"))
bw=int(num/100)
gw=int(num%100/10)
sw=int(num%100%10)
total=bw**3+gw**3+sw**3
if total==num:
    print(str(num)+"是水仙花数")
else:
    print(str(num)+"不是水仙花数")


print("水仙花数有:")
for i in range(100,1000):
    a=int(i/100)
    b=int(i%100/10)
    c=int(i%100%10)
    if i==a**3+b**3+c**3:
            print(i)
            i=i+1
input("请按回车键退出")

通过做题,发现很大的问题在于,赋值时候没有标清数据类型导致后续无法进行下去

面向对象复习

一、面向过程与面向对象

 

面向过程:根据业务逻辑从上到下写代码。

面向对象:将变量与函数绑定到一起,分类进行封装,每个程序只要负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码。

面向过程是以一种线性思维方式的定向编程(实际)面向对象是线性思维方式无法解决的复杂过程的编程(抽象

面向对象编程

面向对象最大的特点就是,封装,创建一个类,构造类的属性,选择属性的方法进行实例方法,静态方法,类方法

 

二、类和对象

类是对一群具有相同 特征 或者 行为 的事物的一个统称,是抽象的,不能直接使用。

  • 特征其实就是一个变量,在类里我们称之为属性
  • 行为其实就是一个函数,在类里我们称之为方法
  • 类其实就是由 属性 和 方法 组成的一个抽象概念。
  • 当然在类外,叫做函数,实际上类外的函数若对于类进行操作,就是类的实例化——对象
  • python中一切皆为对象

对象(实例)

对象是由类创建出来的一个具体存在,可以直接使用。由哪一个类创建出来的对象,就拥有在哪一个类中定义的属性和方法。在开发中,应该先有类,在类里定义好属性和行为,再根据类来创建对象。

应该先有类,在类里定义好属性和行为,再根据类来创建对象。

对象无处不在类中也有实例化

类和对象的关系

  • 类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象。
  • 使用同一个类,能够创建出很多对象。
  • 类中定义了什么属性和方法,对象中就有什么属性和方法。
  • 不同对象对应的属性值也会不同。
  • 在创建对象的时候,实例对象开辟的内存空间中含有类指针指向类的内存空间,每一个属性可以一一对应,指向(引用)这个操作用    .

self

self  表示当前对象,在类中的当前实例化

1. self并不是一个关键字,其实可以是任意的标识符,为了表达代表的是当前对象自己,习惯用self
2. 调用实例函数的时候,self不需要手动传参,系统会自动传递当前的对象
3. 哪个对象调用了方法,方法里的self指的就是谁。
        通过 self.属性名 可以访问到这个对象的属性。
        通过 self.方法名() 可以调用这个对象的方法

三、类的定义

class 类名():
	def 方法1(self,参数列表):
    	pass
    def 方法2(self,参数列表):
        pass

四、类中的成员

类中的成员——类属性

访问类属性(对象)

 

方式一:通过 类名.类属性 访问

方式二:通过 实例对象.类属性 访问

class Person(object):
    # 类属性
    num = 10


p = Person()

# 方式一
print(Person.num)

# 方式二
print(p.num)

属性的创建(类中的实例化)

实例函数(对象函数,成员函数)

class Person():
    def eat(self, food):
        print("eating" + food)

self——当前对象类中实例化必须存在

实例化存在与类中和类外,对象也存在于类中和类外(内是参数作为对象实例化,外是对象实例化)

对象实例化

在类外对象的实例化那么我们首先需要创建一个对象

p1=类名

实例化访问(  .  访问,指向)

class Person(object):
    def eat(self, food):  # 实例方法有一个参数self,指的是实例对象(当前对象)
        print(food)


p1 = Person()

# 方式一
p1.eat('蘸水面')
#对象.属性(‘ ’)

# 方式二
Person.eat(p1, '蘸水面')
#对象.属性(对象,‘’)

_init_:当实例创建完毕之后被调用的,然后通过__init__给实例设置初始值

def __init__(self, name, age, hobby):
        self.name = name
        self.age = age
        self.hobby = hobby
        self.score = 60

#用_init_创建参数

具体操作

class Area():
    def __init__(self,r):
        self.r=r
    def C(self):
        c= 2 * 3.14 * self.r
        print("圆形的周长为%.2f"%c)
    def S(self):
        s=3.14*self.r*self.r
        print("圆形的面积为%.2f"%s)
class San(Area):
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
 
    def C(self):
        if (self.a + self.b) <= self.c or (self.a + self.c) <= self.b or (self.c + self.b) <= self.a:
            print("这三组数据不能构成三角形,请重新输入三组数据")
            return
        C=self.a+self.b+self.c
        print("三角形的周长为%.2f"%C)
    def S(self):
        if (self.a + self.b) <= self.c or (self.a + self.c) <= self.b or (self.c + self.b) <= self.a:
            print("这三组数据不能构成三角形,请重新输入三组数据")
            return
        p = (self.a + self.b + self.c) / 2.0
        h = p * (p - self.a) * (p - self.c) * (p - self.b)
        s = sqrt(h)
        print("三角形的面积为%.2f"%s)
class Ju(Area):
    def __init__(self,a,b):
        self.a=a
        self.b=b
    def C(self):
        c=self.a+self.b
        print("矩形的周长为%.2f"%c)
    def S(self):
        s=self.a*self.b
        print("举行的面积为%.2f"%s)
sanjiaoxing=San(1,4,5)
sanjiaoxing.C()
sanjiaoxing.S()
juxing=Ju(1,2)
juxing.S()
juxing.C()
yuanxing=Area(3)
yuanxing.S()
yuanxing.C()

用_init_可以在对象访问的时候直接输入数值,直接访问属性

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python作业题 的相关文章

随机推荐

  • C++快速切换 头文件和源文件

    有没有一种快速的方法 将头文件中的声明 直接在源文件中自动写出来 毕竟头文件中已经有声明了 我只需要写具体实现就行了 没有必要把声明的部分再敲一遍 在 Visual Studio 中 你可以使用快速生成函数定义的功能来实现这一目标 这个功能
  • IT领域的发展规律

    1 摩尔定律 Intel公司的创始人Gordon Moore 即摩尔 曾经提出 集成电路的集成度会每两年翻一番 后来 大家把这个周期缩短到18个月 这也就形成了摩尔定律 即每18个月 计算机等IT产品的性能会翻一番 或者说相同性能的计算机等
  • 【2022最新Java面试宝典】—— SpringBoot面试题(44道含答案)

    目录 1 什么是 Spring Boot 2 为什么要用SpringBoot 3 SpringBoot与SpringCloud 区别 4 Spring Boot 有哪些优点 5 Spring Boot 的核心注解是哪个 它主要由哪几个注解组
  • Anaconda3 2023安装包下载及安装教程

    软件介绍 Anaconda 是一个开源的包 环境管理器 其包含了conda Python等180多个科学包及其依赖项 可以用于在同一个机器上安装不同版本的软件包及其依赖 并能够在不同的环境之间切换 安装步骤 1 选中下载好的安装包 右键选择
  • OpenGL驱动质量的事实现状(精简翻译版)

    原文 http richg42 blogspot com 2014 05 the truth on opengl driver quality html 一 厂商A 为大多数开发者所使用 功能最全 测试得最好 几乎是事实上的标准驱动 其驱动
  • 软件开发工具的作用

    软件开发不是工程更多的像是一门艺术 不但靠逻辑更需要靠直觉 软件开发中辅助设计的工具只是一个工具 不要为了工具而去用工具 发挥工具的好处 吸收使用多个工具 不生搬硬套 认识到每个工具都有其局限性 因为每个工具只是表述软件设计或者开发中的一个
  • 对于Excel界址点坐标批量转SHP方法——模型构建器

    关于Excel界址点批量转SHP 对界址点进行处理 将所有地块界址点全部放在一起 字段名 地块编号 唯一 拐点编号 X Y 必备 先将整个表加载到arcgis中然后导出 界址点 SHP 按照字段 编号 进行分类 组 模型构建器对 界址点 s
  • 阿里arthas web-console arthas-tunnel-server 支持wss

    arthas tunnel server 没有找到 wss web console js 线上需要https访问 无法在https中去访问 ws 需要支持wss 特殊修改处理下 arthas web console 源码下载 说明https
  • frp内网穿透搭建

    为什么需要内网穿透功能 从公网中访问自己的私有设备向来都是一件难事 自己的台式机 NAS等等设备 它们可能处于路由器后 或者运营商因为IP地址短缺不给你分配公网IP地址 果我们想直接访问这些设备 远程桌面 远程文件 SSH等等 一般来说要通
  • 如何在Jupyter Notebook中自由切换conda虚拟环境pythtorch_gpu

    一般情况 jupyter note在启动时 是与conda的默认虚拟环境 base root 连接 不能和新建虚拟环境pytorch gpu相连接 这需要安装一些插件来建立连接 需要安装的插件及过程 1 首先在conda中激活虚拟环境pyt
  • WDA学习笔记(一)环境准备

    前言 WDA目前在ABAP市场上有一定的需求 例如万科恒大碧桂园这些地产大佬们都用了一些BOPF的东西 多一个技能就多一些 机会 现在来系统了解一下WDA吧 WDA Web Dynpro For Aabap 和WDJ Web Dynpro
  • css多个class时的选择器用法

    http stackoverflow com questions 1041344 how can i select an element with multiple classes answertab active tab top 例如 a
  • dw超链接标签_Dreamweaver如何建立超链接?DW建立超链接方法介绍

    超级链接一般具有三个特点 蓝色 下划线 和手形标记 那么Dreamweaver如何建立超链接 下面小编就为大家介绍DW建立超链接方法 来看看吧 软件名称 Adobe Dreamweaver CS3 官方中文安装版软件大小 76 2MB更新时
  • 控制 matplotlib 子图大小

    效果图 代码 import numpy as np import matplotlib pyplot as plt 调整 matplotlib 子图的大小 x1 np linspace 0 0 5 0 x2 np linspace 0 0
  • Flink分布式执行包括调度、通信机制、检查点

    Flink的分布式执行包括两个重要的进程 master和worker 执行Flink程序时 多个进程参与执行 即作业管理器 Job Manager 任务管理器 Task Manager 和作业客户端 Job Client Flink程序需要
  • 考研DS备考

    23考研算法复习 一 图论相关算法 1 拓扑排序 2 最小生成树 2 1 Prim算法朴素实现 2 2 最小生成树Kruskal实现 3 最短路 3 1朴素版Dijkstra 3 2Bellman ford 3 3Floyd 二 排序相关算
  • Python 快速获取文件夹中的所有文件名,并保存到txt文件中

    下面的代码可以读取文件夹中的所有文件名 并记录到txt文件中 可以应用到如深度学习制作数据集等场景中 usr bin env python encoding utf 8 import os img path images img list
  • Windows防火墙阻止了远程调试

    问题 当调试数据库里的存储过程时提示 Windows防火墙当前阻止了远程调试 当接着打开SQL Server的时候提示 远程过程调用失败 解决办法 1 当遇到远程过程调试失败
  • windows下查看GPU使用率

    进入C Program Files NVIDIA Corporation NVSMI 在此处打开cmd 输入nvidia smi 第一行Driver Version 表示驱动是385 54 第二行中 第一行表示GPU序号 名字 Persis
  • python作业题

    1 输入三个坐标表示三角形的三个顶点 计算三角形的面积 import math x1 y1 x2 y2 x3 y3 eval input x1 y1 x2 y2 x3 y3 如果不在一条直线上就构成了三角形 if x1 x2 y1 y2 x