这个类是不是可以按照java中的那样理解
"{:*>8}".format("245") 输出结果"*****245" 他后面不是接的8吗,那应该是8个*才对,为啥结果是五个呀
老师请问:1.当前代码运行下去为什么会出现3处的报错?我一开始并没有规定salary的类型啊,而且整个 过程中并未满足 1 处的条件,且为什么没有报 第12行 错误? 而如果我将 2 放到 1 的前面,程序却能正常运行。 2.将 2 处改为 if int或float(salary) == 0:,输入 0 时程序能正常结束并打印。 #要求输入员工的薪资,若薪资小于 0 则重新输入。最后打印出录入员工的数量和薪资明 细,以及平均薪资 num = 0 s_all = 0 s_average = 0 s_list = [] while True: salary = input('请输入薪资,输入Q结束输入: ') if salary.upper()== 'Q': print('员工总数为: {0},薪资平均数为: {1},薪资明细: {2}'.format(num, s_average, s_list)) break if float(salary)<0: print('薪资不能小于0,请重新输入!') continue if float(salary)>0: num = num + 1 s_all = s_all + float(salary) s_average = s_all / num s_list.append(salary)
老师,我发现我自己现在对您的代码理解的很到位,可是概念较为普通,或者有些记混,现在是建议我好好理解概念,还是继续往后学,然后代码都理解了,再去理解概念还是?
一、程序
#单例模式 class MySingleton: __obj=None __init__flag=True def __new__(cls, *args, **kwargs):#这个方法是什么作用,是重写类的属性吗,cls是class的缩写吗,为什么改为class会出错 if cls.__obj==None: cls.__obj=object.__new__(cls)#这行代码是什么作用,obj和object是什么关系 return cls.__obj#这个地方是将cls.__obj返回给哪里 def __init__(self,name): if MySingleton.__init__flag: print('init....') self.name=name MySingleton.__init__flag=False a=MySingleton('aaa') b=MySingleton('bbb') print(a) print(b)
老师,我将问题都注释在有疑问的程序后边了,谢谢老师解答!
import copy a=[90,80,[6,7]] b=copy.copy(a) print("a",a) print("b",b) b.append(70) b[2].append(8) print("a",a) print("b",b)
为什么不对呀?
看了下一集找到错误了,init前后都是两个__。
class Person: def work(self): print('努力上班!') def play(s): print('{0}在玩游戏'.format(id(s))) def work2(s): print('好好工作') Person.play = play p1 = Person() p1.work() p1.play() Person.work = work2 p1.work()
为什么每次运行,"在玩游戏"前面的id都会变化?
问题1:本节课实例方法定义没有使用构造函数__init__初始化参数属性,这样操作是集成了这一步骤还是因为其它原因省略?这种结构与运算符方法的实现(如__add__:def __add__(self,other):)的实现是否可以归为一类?
问题2:以下三个类执行方式是否唯一,分别适用余哪些场景?
问题3:为什么类2与类3执行调用类产生的地址相同,而与类1产生的地址不同?
代码:
#类1创建 class CarFactory: def creatCar(self,brand):#实例方法定义 if brand=='奔驰': return Benz() else: return "未知品牌,无法创建" #类2创建 class CarFactory2: def __init__(self,brand): self.brand=brand def creatCar(self): if self.brand == '奔驰': return Benz() else: return "未知品牌,无法创建" #类3创建 class CarFactory3: def __init__(self): self.brand=None def creatCar(self): if self.brand == '奔驰': return Benz() else: return "未知品牌,无法创建" #调用类 class Benz: pass #类1实现 factory1=CarFactory() c1=factory1.creatCar('奔驰') print(c1) #类2实现 factory2=CarFactory2('奔驰') c2=factory2.creatCar() print(c2) #类3实现 factory3=CarFactory3() factory3.brand='奔驰' print(c2)
运行结果
import turtle p = turtle.Pen() # 画笔对象 mun=0 radius = [x * 30 for x in range(19)] for r in radius: p.penup() p.goto(-300,-r+300) p.down() p.forward(540) mun-=r p.left(90) for m in radius: p.penup() p.goto(-300+m,mun) p.down() p.forward(540) turtle.done() 第10行的mun用于计算横线画完后箭头的纵坐标,为什么运行起来之后 横坐标画完就没有反应了
count=1salary=0print("请输入12个月工资:")while True: s=input("请输入{0}月的月薪:".format(count)) if count>11: break if float(s)<0: continue count+=1 salary+=float(s)print("你的年薪为:{0}".format(salary))print("平均工资:{0}".format(salary/count))
如果输入不是数,需重新输入,如何改?
浅拷贝建立了新的对象,但是复制对象的其他子对象是引用了复制对象的子对象的ip,所以在改变复制体的子对象的时候原对象的子对象也会改变。
深拷贝是所有的对象全部建立了新的对象,所以在改变复制体的子对象的时候原对象的子对象不会改变。
我这样理解对不对
汉字对应的是属于什么是属于ASCII吗。还是地址??在计算机中如何存取这个数和这个字。
老师我想问下迭代器是不是就是类似进栈出栈
#测试@property装饰器 class Employee: def __init__(self,name,salary): self.name=name self.__salary=salary @property def salary(self): print("月薪为{0},年薪为{1}".format(self.__salary,(12*self.__salary))) return self.__salary; @salary.setter def salary(self,salary): if (1<salary<10000): self.__salary=salary else: print("输入错误!只能在1——10000之间。") emp1=Employee("高琪",1000) print(emp1.salary) emp1.salary=2000
问题:为什么写了emp1.salary=2000程序运行没有打印
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637