老师,我在安装PyCharm的时候出现,需要勾选吗
你好老师
问题:我用管程法实现了多线程的操作(用synchronized的方法)但是还是出现了脏数据;
package Thread_study03; /** * 协作模型:生产者消费者实现方式一:管程法 * 借助缓冲区 * @author 陈世丰 * */ public class CoTest01 { public static void main(String[] args) { // TODO Auto-generated method stub SynContainer synContainer= new SynContainer(); new Thread(new Productor("a",2,synContainer)).start();//生产2 new Thread(new Consumer("m",4,synContainer)).start();//消费4 new Thread(new Productor("a1",4,synContainer)).start();//生产4 new Thread(new Consumer("m1",2,synContainer)).start();//消费2 } } class SynContainer{ Steamedbun[] buns = new Steamedbun[10]; //存储容器 int count = 0; //计数器 //生产 public synchronized void push(Steamedbun a) throws InterruptedException{ if(count>=10){ this.wait(); } buns[count]=a; count+=1; this.notify(); } //消费 public synchronized Steamedbun pop() throws InterruptedException{ if(count<=0){ this.wait(); } Steamedbun a=buns [count]; buns [count]=null; count-=1; this.notify(); return a; } } //馒头类 class Steamedbun{ int id; public Steamedbun(int id) { this.id = id; } } //生产者 class Productor implements Runnable{ String name; int count ; SynContainer synContainer; public Productor(String name, int count,SynContainer synContainer) { this.name = name; this.count = count; this.synContainer=synContainer; } @Override public void run() { for(int i=0;i<count;i++){ try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { synContainer.push(new Steamedbun(i)); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(name+"成产后剩余-->"+synContainer.count+"剩余个馒头"); } } } //消费者 class Consumer implements Runnable{ String name; int count; SynContainer synContainer; public Consumer(String name, int count, SynContainer synContainer) { this.name = name; this.count = count; this.synContainer = synContainer; } @Override public void run() { // TODO Auto-generated method stub for(int i=0;i<count;i++){ try { Thread.sleep(200); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { synContainer.pop(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(name+"消费后剩余-->"+synContainer.count+"个馒头"); } } }
Training.rar
老师,任意字符串用单引号还是双引号,还是都可以?
老师啊,''' 三个单引号不是注释用的吗,这又可以创建多行字符串,搞得有点晕啊。
>>> a = [1,2,3] >>> b = list(range(10,50,10)) >>> a.insert(2,b) >>> a [1, 2, [10, 20, 30, 40], 3] >>> a[2] [10, 20, 30, 40]
请问老师,我原意是想把b列表的元素插入a列表的第三个位置,但是使用insert后发现,a列表的第三位元素还是一个列表,怎么样才能在列表中特定位置插入新的列表,就是上面最终让a列表的第三位为10
老师,能发一下视频里的dtree资料吗,源码里面没有相关的帮助文档,下载的资料里面也没有tree
请问这种情况怎么办?
密码怎么设都能登?
账号也是
老师好,请问集合如果类似字典中的键,是否意味着键的性质字典也适用于集合的元素?即:
(1)集合元素不能修改,如果要修改,需要先删除这个元素,再增加一个新元素
(2)集合中不能有列表的存在:如{[1,2],3,4}
(3)集合中不能存在字典:如{{'a':1},2,3}
(4)结合中不能存在集合,即不存在类似二维列表一样的二维集合一说:如{{1,2,3},4,5,6}
老师好,在集合中插入一个新元素,新元素在集合的位置是否固定呢?
如:
>>> a={3,4,5}
>>> a.add(9)
>>> a
{9, 3, 4, 5}
>>> a.add(1)
{1, 3, 4, 5, 9}
>>> a.add(20)
{1, 3, 4, 5, 9, 20}
第一次add(9)时候,9放在了最前面,之后1,20,都是按照从大到小排列
又如:
>>> a=['a','b','c','d']
>>> b=set(a)
>>> b
{'d', 'a', 'c', 'b'}
>>> a=['a','b','c','b']
{'a', 'c', 'b'}
几次排列均不同。
是否可以理解为:因为集合无序可变,所以插入新元素的位置也是无序的。
另外,字典中如果插入新键值对,是否也同样是插入的位置是随机的。谢谢
老师好,我在做二维列表作业的时候,发现报错了,但是我没有发现第三行的问题在哪里,因为第一行和第二行形式一致,为什么第一行没有报错,但第二行报错出现元组了?谢谢
代码区
a=[ ['高小一',18,30000,'北京'] ['高小二',19,20000,'上海'] ['高小三',20,10000,'广州'] ] for i in range(3): for j in range (4): print(a[i][j],end='\t') print('',end='\n')
import math def square(): '''编写函数计算三角形面积''' x1 = float(input("请输入第一个点的横坐标:")) y1 = float(input("请输入第一个点的纵坐标:")) x2 = float(input("请输入第二个点的横坐标:")) y2 = float(input("请输入第二个点的纵坐标:")) x3 = float(input("请输入第三个点的横坐标:")) y3 = float(input("请输入第三个点的纵坐标:")) 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) print(a,b,c) if a+b>c and a+c>b and b+c>a : p=1/2*(a+b+c) s=math.sqrt(p*(p-a)*(p-b)*(p-c)) print("三角形的面积是{0}".format(s)) else: print("三点不能组成三角形") square()
老师,我感觉我在函数里不太会输入数据,特别是遇到列表类,这个三角形的三个坐标可以怎么输入呢?还有就是我感觉这次实操除了用上递归函数,其他的我不太会用,比如在函数体里设置参数,我可以def square(x1[],x2[],x3[])吗? 但是我刚刚试了,这种传入坐标的方式报错
为什么要一直沿用同一部门那个错误的东西呢?
这个是支付宝本身的问题吧,百度也没有解决方法,程序也没报错。
老师您好,我的虚拟机装不上,请帮忙看下...
老师好,我在练习生成列表时候出现了问题
在练习list(range(30,90,10))时,用idle可以输出列表,但是用pycharm则什么也不显示,但也没有报错,请问为什么会造成这种效果呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637