import math def f(x1,y1,x2,y2,x3,y3): '''输入三角形三个顶点的坐标,若有效则计算三角形的面积;如坐标无效,则给出提示''' a = math.sqrt((x1-x2)**2+(y1-y2)**2) b = math.sqrt((x1-x3)**2+(y1-y3)**2) c = math.sqrt((x3-x2)**2+(y3-y2)**2) if a+b>c and a+c>b and b+c>a: print('为三角形') s = (1/2)*(x1*y2+x2*y3+x3*y1-x1*y3-x2*y1-x3*y2) print('三角形面积为{0:.2f}'.format(s)) else: print('不是三角形') f(0,0,4,8,6,5)
运行结果:
为三角形 三角形面积为-14.00
请问:这个作业中,输入有效坐标后可能会出现负数,代码如何改进呢?谢谢老师
为什么用pycharm 运行不了turtle的运行图
构造函数 __init__本质上不是对应__new__方法吗?这样有点难理解,麻烦老师解答一下。
老师,这样是什么意思,全局变量是直接可以在函数内引用是吗?
全局变量局部变量.png
class Man: pass class Chinese(Man): def eat(self): print("中国人用筷子吃饭") class English(Man): def eat(self): print("英国人用叉子吃饭") class Indian(Man): def eat(self): print("印度人用手吃饭") def maneat(m): if isinstance(m,Man): m.eat() else: print("不能吃饭") maneat(Chinese()) maneat(English()) maneat(Indian())
老师说多态的存在有两个必要条件,是继承和方法的重写。在这里我的每一个子类都没有对父类方法进行重写,但运行起来和老师的效果一样。我写出来的还算不算是多态?感觉这里写的多态貌似没什么意义啊。精华就在m.eat()这一句,而m是我们传进去的类名。“类名.方法名”,这样的语句不就是直接限定了执行eat方法的位置嘛。我觉得甚至连父类都不需要有,两个必要条件里我连继承都不需要继承,我直接就能达到所谓多态的效果。呃,所以多态到底干了个啥。我留下了不学无术的泪水QAQ。求老师点拨。谢谢
class Chinese: def eat(self): print("中国人用筷子吃饭") class English: def eat(self): print("英国人用叉子吃饭") class Indian: def eat(self): print("印度人用手吃饭") def maneat(m): m.eat() maneat(Chinese()) maneat(English()) maneat(Indian())
看我改成这个样子多爽,两个必要条件:继承和方法重写,我都不要了。一样能实现“多态”的功能。
class Person: def work(self): print("努力上班") def play_game(s): print("{0}在玩游戏".format(s)) def work2(a): print("好好工作,努力上班,赚大钱,娶媳妇!") Person.play=play_game Person.work=work2 p1=Person() p1.play() p1.work()
老师,我和老师一样把这个代码写了一下,发现倒数第二行p1.play()中的函数名play被涂成了黄色,视频中老师的代码也是黄色的,看着好别扭,为什么pycharm会把这个函数名标成黄色?求解答
老师,我的help函数无法正常使用,能帮我看看怎么回事吗?
函数.PNG
mypy03.jpg
这里的分支结构之间的逻辑关系是递进的是吗,
成绩输入20以后,并没有打印出留级
老师,这个修饰符叫@salary.setter是不是意味着,修饰符叫@任意字母就可以了
老师,get_salary()和set_salary()这两个实例方法可以理解成,一个相当于存数据的地方,一个相当于控制台输入数据的地方吗?
老师我这样做这个怎么返回a+b的结果。。。
老师麻烦看一下,我这个为什么不返回None。
W为什么salary是负值,没有调用salary方法进行if判断?和老师写的一样的
代码
#测试设计模式_单例模式实现 class MySingleton: __obj = None #类属性 __init_flag = True def __new__(cls, *args, **kwargs): if cls.__obj == None: cls.__obj = object.__new__(cls) return cls.__obj def __init__(self,name): if MySingleton.__init_flag: print("我学废了") self.name = name MySingleton.__init_flag = False a = MySingleton("aa") b = MySingleton("bb") print(a) print(b)
图:
老师,我代码照着视频中敲得,运行结果为什么不一样,找不出来哪里不合适。最后一行多了个None
安装好之后打开cdm输入python,为什么没有弹出老师说的那些信息
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637