技术标签: python玩我的世界盒子
编程教育公益活动系列之一
编程教学建议第一辑“教材分层次梳理”(初中适用,高中参考)
重要提示:全文请从阅读原文下载使用。本文是声明原创、提供信息。
说 明
本材料仅供教材分析、教学参考使用,具体教学要求和教学评价请按当地教研部门相关规定实施。
本材料可用于教学研究等公益活动,请勿进行商业活动,在百度文库等网络传播敬请免费、无扣点数、金币等有条件提供,蓝调百香果保留版权。
编写人员:孙波 王爱胜 程强 张渤 丛兴滋 杨伟 苏澎 段金英 王洪波姚晓燕等
(随时增加)
有志参加编程指导公益活动的请邮件:[email protected]
目前正在开展的活动:针对初学Python课程,设计有趣、实用的小程序,以学习算法为主,以编程技巧为辅。
泰山出版社2018出版初中信息技术新教材,其中第1册、第2册、第6册涉及算法与程序设计、人工智能的内容,根据国家政策及一线实际情况作出编写说明,并进行教学建议如下。
第一册 编程教学内容说明
1.设计意图
在第2单元引导学生“探究如何用计算机解决问题”,提升计算思维的学科核心素养;第二册增强算法与程序设计,加大高级算法启蒙教育内容,Python算法与程序设计为国家核心竞争力做好人才教育。
2.教学要求
(1)能够利用基本程序代码进行数据的输入、计算、选择和自动化加工,理解用计算机程序解决问题的基本过程,学会设计基本的顺序、选择、循环结构程序分析问题。
(2)能够利用输入、输出、赋值语句设计程序,掌握不同类型的数据与变量的应用方法,学会利用顺序结构程序进行基本的数据输入、计算与输出。
(3)能够利用if、else等基础的选择语句和and、or等逻辑关系设计程序,掌握不同条件、情况下的数值处理方式,学会利用选择结构程序进行基本的情况判断与逻辑推理。
(4)能够利用for、while等基础的循环语句用循环嵌套设计程序,体验自动化数据处理的原理,学会利用循环结构程序进行基本的数据加工与统计。
(5)能够在程序设计中,体验计算思维,提高逻辑推理能力,关心时代发展,培育科学、人文素养。
3.教学建议
微项目1:探究用程序加工数据的过程
(1)编写数据加工的程序
通过体验输入、处理、输出数据,认识程序的作用。探究数据加工基本过程用到哪些程序语句。
【程序范例】“利息计算”
x=int(input ('金额:'))
y=x*1.5/100*1
print('利息是:',y)
【技术体验】
① Python的启动、编辑、运行。
②赋值语句 如:x=123 y=x*2 z=”你好”
③输入 如:c=input( '请输入姓名:')
④取整 如:int('2' ) int(2.5 )
⑤输出 如:print( '结果是:',y)
【知识了解】
变量,*(乘号),/(除号),赋值格式:变量=表达式 。
#!/usr/bin/python3 是夸平台应用,在Windows下编程可以省略。
【学习指导】
①可以把计算机比作数据加工车间,原材料(数据)通过input( )这样的输入函数作为数据传送带,把数据送到车间(内存)中去。
②内存中存储数据的器具有很多种,变量就像是一个有名称的容器,用字母(可跟数字)表示;如A、C2等。
③数据在CPU的运算器中完成计算后,可以把表达式计算的值再赋给其他变量。
变量在内存中的示意图
【程序实验】
可修改题意,进行练习,目的是体验输入数据、计算数据、输出数据,尤其是能够简单地修改运算表达式。
通过两种难度的程序实验,在体验本节技术的基础上,深入体验数据类型的不同。
★基础难度题:“求三个人的平均年龄”(结果为整数)
a1=int(input ('请输入第1个同学的年龄:'))
a2=int(input ('请输入第2个同学的年龄:'))
a3=int(input ('请输入第3个同学的年龄:'))
p=int((a1+a2+a3)/3)
print('平均年龄是:',p)
★★拓展难度题:“求三科成绩的平均值”(结果为浮点数)
a1=float(input ('请输入第1学科成绩:'))
a2=float(input ('请输入第2学科成绩:'))
a3=float(input ('请输入第3学科成绩:'))
p=float((a1+a2+a3)/3)
print('平均成绩是:',p)
(2)探究数据的存储方式
【学习目标】尝试在变量、列表中存储数据,了解数据的存储方法。思考变量的类型与用途有何关联。
【学习范例】“优良品质列表”。
m=['爱国','坚毅','乐观']
print('你的品质:',m)
m.append('努力')
m.append('细致')
print('你的品质:',m)
print('第一品质:',m[0])
【技术体验】体验列表功的赋值、追加、显示功能。
【知识了解】列表用[ ]存储,赋值、显示都可以用列表名称(如m)或元素名称(如m(0)、m(1)表示。
【学习指导】
①单个的变量就像孤独的房间,而一系列的房间可以用列表表示。
列表是一系列的存储空间
②m.append就像是给m在后面接着增加一个房间,并放上东西。“追加”这个单词不用背诵,了解就行。
③M(2)、M(5)这样的名称是指相应房间的值。
【程序实验】
针对有分类特点的数据进行练习,目的是体验列表的赋值、追加、输入,尤其是能够简单应用下标如m(2)显示单个的列表元素,并注意第1个元素是下标是0。
★基础难度题:“我喜欢的植物”“中国著名的沿海城市”等。
m=['大连','天津','青岛']
m.append('上海')
m.append('厦门')
print('山东的海边名珠:',m[2])
print('中国著名的沿海城市:',m)
★★拓展难度题:用多种类型数据列表存储一个人的信息。
n=['姓名','李杨','年龄',15,'性别','男']
print(n[1],'的年龄:',n[3])
科学探究:数据类型及其运算
主要用于理解数据有不同的类型,能够区分数字、字符串即可。
数据类型转换,是探究数据运算可如果类型不一致,有的可以通过转换类型来处理,不要求掌握转换规则。
常用的三种数据类型:整数、浮点数、字符串
n = 10 #整型变量
t = 10.0 #浮点型变量
m = 'Do you know' #字符串变量
print (n)
print (t)
print (m)
print(str(n)+'T')
x=5 + 4 #加法
y= 4.3 - 2 #减法
z= 3 * 7 #乘法
w= 2 / 4 #除法,得到一个浮点数
v= 2 // 4 #整除,得到一个整数
m= 17 % 3 #取余
n= 2 ** 5 #乘方
str = 'My home is in Shandong'
print (str) #输出字符串
print (str[0:-8]) #输出第一个到倒数第九个的所有字符
print (str[0]) #输出字符串第一个字符
print (str[3:7]) #输出从第四个开始到第七个的字符
注意:在以上程序中,可以修改数据进行观察结果。运算掌握程度视学生学习情况而定。重在实验观察,不重记忆与理解。
技术探索:尝试用文件存储数据
通过探索,了解数据可以存储在文件中,实现长期保存。能够修改程序中的文件名,完成存储,观察存储结果即可,不要求掌握语法规则。
文件写入程序,重在体验,可以修改文件名称、内容,进行实验。其中,\ n是换行的意思。
fw = open('group5.txt', 'w') #打开一个文件
fw.write('我的小组:') #向文件写入字符串
fw.write('五组\n') #向文件写入字符并换行
fw.write('小组理念:\n')
m = input('请输入你们小组的理念:') #从键盘输入一个字符串
fw.write(m+'\n')
fw.close() #关闭打开的文件
在以上程序中,关闭文件是为了数据安全,可适当说明。
另外,对文件读取,知道能够读取即可,也不要求体验程序。
fw = open('group5.txt', 'r+')
str1 = fw.read(5)
str2 = fw.readline( )
print ('读取的字符串是: ', str1)
print ('读取的字符串是: ', str2)
fw.close()
注意:
在以上程序中,read(5)是读5个字符。可改变数值观察结果的变化。
readline( )是读一行字符。
学习评测:按2种不同层次水平评测。
★一星难度
1.以下是属于变量的是( )
A 12.3 B x C “变量” D 1+2
2.以下赋值正确的是( )
A x=1、2、3
B y=123+“456”
C x=1,2,3
D y=1+2+3
3.以下x值等于5的是( )
A x=’10/2’
B x=10/2
C x=int(10/2)
D x=’6-1’
4. 以下程序运行后,显示的结果是( )
a1=int(input ('请输入自然数:'))
a2=int(input ('请输入自然数:'))
p=int(a1*a2)
print(p)
假如输入5和6,结果是: ______________________
5.以下程序运行后,显示的结果是_______________
m=['书法','绘画','体育']
m.append('歌唱')
m.append('舞蹈')
print(m[0])
参考答案:1.B 2.D 3.C 4.30 5.书法
★★二星难度
1.以下是属于变量的是( )
Ax+y B xy C x=“变量” D x/y
2.以下赋值不正确的是( )
Ax=a1+a2+a3
By=“123”+“456”
Cx=123+456
Dy=123+“456”
3.以下x值等于3的是()
A x=”10/3”
B x=10/3
C x=int(10/3)
D x=”6-3”
4. 以下程序运行后,显示的结果是( )
a1=int(input ('请输入自然数:'))
a2=int(input ('请输入自然数:'))
p=int(a1/a2+a1*a2)
print(p)
假如输入15和5,结果是: ______________________
5.以下程序运行后,显示的结果是_______________
m=['书法','绘画','体育']
m.append('歌唱')
m.append('舞蹈')
print('与体能有关的项目是:',m[2])
参考答案:1.B 2.D 3.C 4.78 5.与体能有关的项目是:体育
微项目2:用选择结构程序做出判断
(1)编写数据加工的程序
通过对情况做出判断,掌握选择结构程序的判断功能设计。思考条件表达式的作用是什么。
【程序范例】“密码验证程序”。
p=input ('请输入密码:')
ifp=='x1y23z':
print('欢迎您!')
else:
print('密码错误')
【技术体验】
①体验if的作用
a=3
b=2
if a>b:
print('大')
else:
print('小')
②体验布尔值
a=3
b=2
print(a>b)
print(a
print(a==b)
print(a!=b)
【知识了解】
布尔值:真是True、假是 False。
“==”:判断是否等于
【学习指导】
①可举QQ密码等口令判断进行讲述。
②也可以使用简单的判断两数的大小程序,ifa>b : else:
③对关系式、布尔值的概念不作要求,能够结合实例了解“条件成立与否”即可。特别注意的是要规范缩进,让每一段程序块清晰。
【程序实验】请换成自己的谜语,让同学猜。
print('谜面:太阳西边下,月亮东边挂(打一字):')
p=input('请输入谜面:')
ifp=='明':
print('你猜对了!')
else:
print('你猜错了!')
(2)根据多个条件逐步推断
通过运用多个条件逐步推断出结论,了解选择结构的嵌套。思考选择结构嵌套程序中的多次判断有何联系。
【程序范例1】判断值大、小、等于
a=21/32+21*32
b=32/21+23*31
if a>b:
print(a,'>',b)
else:
if a
print(a,'
else:
print(a,'=',b)
【程序范例2】比较表达式的值、狗狗年龄问题。
age =int(input('请输入狗狗的年龄: '))
if age <= 0:
print('你是在逗我吧!')
elif age == 1:
print('相当于 14 岁的人哦。')
elif age == 2:
print('相当于 22 岁的人哦。')
else:
【技术体验】
(1)多重判断
c = input('你喜欢运动吗?(是/否) '))
if c==“是”:
c2 = input('你喜欢足球吗?(是/否) '))
if c2==“是”:
print('我也喜欢足球')
else:
print('希望你也了解一下足球哦!')
else:
print('生命在于运动')
(2)多重选择
c = input('你喜欢球类是:')
if c==”篮球”:
print('我也知道有CBA!')
elif c==”足球”:
print('足球真好玩!')
elif c==”排球”:
print('学习女排精神!')
else:
print('是吗?')
【知识了解】
elif是排除前面判断后继续判断,多个构成选择功能。
【学习指导】
①判断的嵌套,可以用多层小盒子里的问题来比喻:符合条件继续判断下一个盒子里的问题。
②判断的选择,可以用排列的书签选择来类比。足
球
书
签篮
球
书
签排
球
书
签文
化
书
签英
文
书
签三
国
书
签节
日
书
签其
他
书
签
【程序练习】
猜对一个得1分,输入得分。
谜面:3天、15天、60天 (各打一字)
——谜底:晶、胖、朋
c=input('请顺序输入三个字')
d1='晶'
d2='胖'
d3='朋'
s=0
print(c)
if d1in c:
print('3天是:晶')
s=s+1
if d2in c:
print('15天是:胖')
s=s+1
if d3in c:
print('60天是:朋')
s=s+1
print('你的得分是:',s)
思考:1.以上程序运行时,如果不按顺序输入答案,存在什么问题?
2.如何用三次输入答案来让猜谜判断更准确?
科学探究:Python的比较运算符
1.假设变量a为7,变量b为9。下列表达式值是真(True)的是( )
A. a>=b B.a>0 and b!=9
C. 96 D.not b>a
答案:C
技术探索:聊天机器
m=input('您好,你想说什么呢?')
hao='你好您好早上好晚上好中午好 还好吗'
xue='你喜欢语文吗 你喜欢数学吗你喜欢英语吗你喜欢物理吗你喜欢化学吗你喜欢信息技术你喜欢体育吗'
chi='你喜欢吃什么?'
if m in hao:
print('我很好啊!您好!')
elif (m in xue) :
print('我特别喜欢,我正在努力学习')
elif (m in chi) :
print('我喜欢吃苹果!')
else:
print('我没听懂哦!')
学习评测:按2种不同层次水平评测。
★一星难度
1.以下能够成为判断条件的最好的一个是( )
Ax=y B x==y C x+y D x-y
2.哪个表达式的布尔值是真( )
A2>3
B“123”==“321“
C22*11>11*22
D2>3 or 3>2
3.15岁以下的男生的判断条件是()
A nl<15 or xb==“男“
B nl<15 or xb!=“女“
C nl<15 and xb==“男“
D nl>=15 and xb==“男“
4. 以下程序运行后,显示的结果是( )
a1=int(input ('请输入自然数:'))
a2=int(input ('请输入自然数:'))
If a1>a2 :
print(“大“)
else:
If a1
print(“小“)
else:
print(“相等“)
假如输入5和6,结果是: ______________________
5.以下程序运行后,输入“蓝“显示的结果是_______________
c = input('你喜欢颜色:')
if c=='红':
print('red')
elif c=='蓝':
print('blue')
elif c=='绿':
print('green')
else:
print('请完善程序,我还不知道啊!')
参考答案:1.B 2.D 3.C 4.小 5. Blue
★★二星难度
1.以下能够成为判断条件的最好的一个是( )
Ax=y=z B x==y and x==z C x+y+z D x-y-z
2.布尔值是真的( )
A2>3 and 2>1
B“123” = “321“
C22*11!=11*22
D2>3 or 3>2 and 4>1
3.15岁以下的男生和13岁以下的女生的判断条件是()
A (nl<15or xb==“男“) or (nl<13 and xb==“女“)
B (nl<15or xb!=“女“) and (nl<13 and xb==“女“)
C (nl<15 and xb==“男“) or (nl<13 and xb==“女“)
D (nl>=15 and xb==“男“) and (nl<13 or xb==“女“)
4. 以下程序运行后,显示的结果是( )
a1=int(input ('请输入自然数:'))
a2=int(input ('请输入自然数:'))
a3=int(input ('请输入自然数:'))
Y=a1
If a2>Y :
Y=a2
If a3>Y :
Y=a3
假如输入22、33、55,结果是: ______________________
5.以下程序运行后,输入“74“显示的结果是_______________
c = val(input('评价输入测试成绩:')
if c<70:
print('请继续努力')
elif c<80:
print('你很棒!')
elif c<=100:
print('你太棒了!')
else:
print('请输入正确的数据——')
参考答案:1.B (注x==y==z也可) 2.D 3.C 4.55 5. 你很棒!
微项目3:用循环结构程序自动化计算
能够利用for、while等基础的循环语句用循环嵌套设计程序,体验自动化数据处理的原理,学会利用循环结构程序进行基本的数据加工与统计。
1.计数循环统计数据
利用for循环结构来完成已知次数的自动化处理,掌握计数循环结构应用方法。思考循环的初值、终值的作用是什么。
【程序范例】
模拟抛硬币现象,探究随机概率。
(1)体验随机,对应数列信息,体会用数据描述现象
import random #导入随机数模块
mn=['正面','反面'] #列表存储显示信息
ms=random.randint(0,1) #产生0或1随机数
print('计算机抛出:',mn[ms])
(2)模拟抛硬币10次,体验自动化程序设计,认识循环的自动控制作用
mport random #导入随机数模块
mn=['正面','反面']; #列表存储显示信息
for i in range(10):
ms=random.randint(0,1) #产生0或1随机数
print('计算机第:',i+1,'次抛出:',mn[ms])
(3)模拟抛硬币1000次,深入体验自动化程序,了解概率、统计
importrandom #导入随机数模块
mc=[0,0] #用列表存储正、反面数量
for i in range(1000):
ms=random.randint(0,1) #产生0或1随机数
if ms==0 :
mc[0]+=1
else:
mc[1]+=1
print('正面抛出次数:', mc[0]),
print('反面抛出次数:', mc[1])
【技术体验】
1.体验range()的范围限定
for i inrange(10):
print('i=',i)
for j inrange(11):
print('j=',j)
2.体验范围的变化:初值、终值、步长
for a inrange(5,10):
print('a=',a)
for b inrange(1,10,2):
print('b=',b)
【知识了解】
了解计数循环的结构:for变量range(初值, 终值[, 步长])
计数循环是能够预计循环的开始与结束的数值变化,适合解决有规律变化的数据处理。
【学习指导】
1.理解循环是控制反复地做事情。
可举例“篮球场跑圈练体能”,跑第一圈计1分,跑第二圈计2分,跑第三圈计3分,跑10圈计算得分多少?
2.观察循环变量的数值变化
可通过range(1,10,2)变化步长来观察。
【程序实验】
1.寻找100以内的偶数
for i in range(101):
if i%2==0:
print(i)
2.寻找100以内的奇数
3.寻找100以内3的倍数
2.用条件循环寻找答案
利用while循环结构实现未知次数的自动化处理,掌握条件循环结构应用方法。反思如何设定循环条件。
【程序范例】
1.输入正确验证码跳出循环,体验循环条件的作用
import random #导入随机数模块
mc='' #初始化验证码
for i in range(0,6): #(0,6) 与(6) 等效
ms= random.randint(0,9) #产生0-9的随机整数
mc=mc+str(ms) #存储验证码数字
print(mc) #显示验证码
mi='' #初始化输入验证码
while mc!=mi:
mi=input('请正确输入以上验证码')
2.输入错误时需要更换新的验证码,体会循环体的作用
mc='0' #初始化验证码
mi='1'
while mc!=mi:
mc='' #清空验证码
for i in range(0,6): #(0,6)与(6)等效
ms=random.randint(0,9) #产生0-9的随机整数
mc=mc+str(ms)#存储验证码数字
print(mc) #显示验证码
mi=input('请正确输入以上验证码')
【技术体验】
1.体验循环条件
# 求1+1/2+1/3... ... 当i等于什么时候刚刚大于3?
s=0
i=1
while s<3:
i=i+1
s=s+1/i
print('i=',i)
print('s=',s)
2.体验随机范围
import random #导入随机数模块
s1= random.randint(5,8) #产生5-8的随机整数
s2= random.randint(100,200) #产生100-200的随机整数
s3= random.randint(0,9) #产生0-9的随机整数
print(s1)
print(s2)
print(s3)
3.观察随机值
import random #导入随机数模块
for i in range(20):
s3= random.randint(0,9) #产生0-9的随机整数
print(s3)
4.死循环
while 1<3:
print('勇往直前,永不停止')
思考:
(1) 1<3 换成1 效果一样吗?
(2) 1<3 换成 True效果一样吗?
【知识了解】
了解当循环结构:while 条件表达式:
当循环的意义在于在一定条件下循环,不符合条件了即结束循环,适用于不知何时结束的的情况。比计数循环更灵活、更具动态变化的特点。
【学习指导】
1.死循环:当循环容易设计出错的原因是结束条件无法达成,构成死循环。
2.循环中的断点测试:可以多用print()来在各点进行数据测试,看看能否运行到此处,数值是否正确。
【程序实验】
会算术的小猫,输入两个非零个位数x、y,大数除以小数得商n,即能输出n个“喵”。
算法提示:
(1)输入两个数。
容错设计:如果其中一个等于0,全部重新输入。可用循环条件为x==0or y==0
(2)校准设计:判断两数大小,如果y大则交换。
(3)用x//y 整除得到n。
(4)用循环显示n个“喵”。
x=0
y=0
whilex==0 or y==0:
x=int(input('x='))
y=int(input('y='))
if x
x,y=y,x
print(x,y)
n=x//y
print(n)
for i in range(n):
print('喵')
尝试:
1.如何给小朋友设计一个乘法口诀训练软件
(1)随机出现两个一位的自然数。
(2)输入积。
(3)判断输入的结果如果正确计一分。
(4)共10道题目,输入总分。
科学探究:用乘法口诀表探究多层循环,了解多重循环的执行特点。
for i in range(1,10):
for j in range(1,i+1):
print('{}×{}={}\t'.format(j,i,j*i),end='')
print()
(1)所有循环都可以嵌套,学习基础语言结构时不宜过早、过难应用多层循环的嵌套,了解即可。
判断嵌套因为有思维推理,或者打破砂锅问到低的需求,容易理解。
(2)显示格式了解即可,不宜深入学习。
'{}×{}={}\t'.format(j, i, j*i)提供了一种输出格式,可以让数据按照一种固定格式显示。当然,我们把数字转换为字符串显示也是可以的。
end=''表示同行显示。
print()是换行作用,并没有显示内容,目的是在一行内的列循环完成后取消end=''的作用
(3)循环嵌套,如果要涉及可以结合行列关系进行探索。
#星星
for lin in range(10):
for col in range(lin):
print('*',end='')
print()
for lin in range(10):
for col in range(10-lin):
print('*',end='')
print()
for lin in range(10):
for k in range(20-lin): #生成空格
print(' ',end='')
for col in range(lin*2-1):
print('*',end='')
print()
注:以上程序,重在体会外层循环控制行,观察lin的变化;内层循环控制列,观察col的变化。
技术探索:寻找内容的循环,探索循环的灵活应用
1.元素查找
mc=['苹果', '桔子','菠萝', '荔枝','芒果']
print('荔枝' in mc)
if '菠萝' in mc:
print('我有菠萝' )
for x in mc:
print(x)
2.字母查找
mc='I like playing football'
for x inmc:
print(x)
注意:x作为访问变量,与变量名无关。
第二册 第2单元 编程教学内容说明
1.设计意图
在信息时代,以数据处理和自动化技术为代表的计算方式在改变人们行为方式的同时,也在影响人的心理认知过程。
通过第2单元“用算法高效寻找问题答案”的学习:
(1)学生对运用计算机解决问题的基本步骤、基本方法和基本思想有初步的了解。
(2)知道计算机编程解决问题的基本规范,了解计算机在问题处理上的优缺点.
(3)逐步培养运用合理算法形成解决方案的能力和意识。
(4)促进学生的计算思维水平得以提高,从而能够更好的适应社会发展要求。
2.教学要求
(1)从生活实例出发,了解生活算法与计算机算法的异同,知道计算机算法的基本特征和表述方式,能够了解如何识读流程图表达的算法思路,学会运用流程图表示简单算法。
(2)了解计算机解决问题的一般过程,学会合理选择问题的解决方案,能够对现实问题进行简单分析,能够认识简单算法的程序代码,掌握简单算法实现涉及的基本编程基础知识。
(3)初步了解枚举、迭代、冒泡排序、*递归、*分治等算法的基本思想、适用条件和基本特点,能够根据实际问题需求选择相应算法。
(4)通过分析比较,体验算法效率的差异及算法的正确性、可读性和健壮性,初步了解算法分析的基本方法和过程。(供选学提高)
(5)能够通过实际案例分析,体验算法的改进,知道算法设计存在的不足和优势,有意识的将算法思想迁移到实际生活和学习问题的解决。(供选学提高)
3.教学建议
该单元重在通过具体案例的体验、分析,了解相关算法的基本思想和特点,实现学生计算思维的养成,这是面向全体学生的基本要求。
教材相关程序所涉及的代码,是为了满足算法描述,学生能够识读、初步体验即可。
对于大部分学生来说,只需要了解程序涉及的关键语句,不建议对编程语言的语法进行过多的拓展和挖掘。
学科特长生或编程基础较好的地区,可以自行决定是否要求学生达到能够独立编写代码解决问题的水平。
....(第二部分见第一文章或WORD文件)
文章浏览阅读318次。所以假如虚拟DOM很深的话,由于 JS线程和浏览器 GUI 线程是互斥的,处理 js 的时间过长,会导致浏览器刷新的时候掉帧,造成卡顿。把一个耗时长的任务分成很多小片,每一个小片的运行时间很短,虽然总时间依然很长,但是在每个小片执行完之后,都给其他任务一个执行的机会,这样唯一的线程就不会被独占,其他任务依然有运行的机会。在这个阶段的开始,Fiber 有已经在 UI 上渲染的 current 树,finishedWork,或者在渲染阶段建立的 workInProgress 树和效果列表。_react的fiber
文章浏览阅读3.4k次,点赞12次,收藏15次。定义一个栈结构体。_c stack
文章浏览阅读281次。Consumer 题目链接:HDU - 3449 题意:FJ要去购物,买的商品要用箱子装起来,每个箱子装不同的商品,问FJ能获得的最大价值;只有先买了箱子,才能买固定的物品,所以这是个有依赖的背包问题,对于每个箱子内的物品一定是按01背包看是否要买;对于每个箱子有两个状态,买,不买;买了就必定买了对应商品,那么买了这一箱子后,用剩下的钱买商品;#include <bit..._consumer hdu3449
文章浏览阅读237次。主要分为两个部分:创建DLL文件,调用DLL文件。Note: BCB运行环境:2010 C++ Builder XE创建DLL文件Step1 创建DLL Projecta.1双击BCB软件,接着依次选择:File→New→Other,跳出如下dialoguebox:a.2或者在右侧点击,add new project,跳出如下dialoguebox:b. 选择“Dy..._bcb封装窗口类dll
文章浏览阅读3.5k次。如果想让我们的2D图片动起来可以使用插件在SD中进行加工让图片动起来。这是一个可以从单个图像创建深度图,现在也可以生成3D立体图像对的插件,无论是并排还是浮雕。生成的结果可在3D或全息设备(如VR耳机或Looking Glass显示器)上查看,也可用于具有位移修改器的平面在渲染引擎或游戏引擎中使用,甚至可用于3D打印。Stable Diffusion 用2D图片制作3D动态壁纸。_stable-diffusion-webui-depthmap-script
文章浏览阅读307次,点赞4次,收藏9次。计算机专业的学生学习量化金融CQF(Certificate in Quantitative Finance)是一个很好的选择,取决于个人的职业规划、兴趣和目标。
文章浏览阅读1.7k次。有人邀请ABCDEF六人参加一项会议,这六个人有些奇怪因为他们有很多要求,已知:(1)AB两人至少有一人参加会议(2)AEF三人中有两人参加会议(3)B和C两人一致决定要么两人都去,要么两人都不去。(4)AD两人中只有一人参加会议(5)CD两人中也只有一人参加会议(6)如果D不去,那么E也决定不去那么最后究竟有几个人参加会议?#include <iostr..._某晚会邀请abcdef
文章浏览阅读1.2k次,点赞47次,收藏38次。本篇文章将介绍如何用RIDE写自动化脚本。RIDE(Robot Framework Integrated Development Environment)是一个基于Python编写的开源工具,专门用于Robot Framework自动化测试的开发、编辑和执行。作为一个图形化开发环境,RIDE提供了直观的用户界面,旨在简化自动化测试项目的创建和管理。_ride 自动化 app
文章浏览阅读2.6k次,点赞5次,收藏17次。四种自定义圆形ImageView的方法BitmapShader: 使用着色器Xfermode:使用图层叠加ClipPath:通过对画布裁剪的方式RoundedBitmapDrawable: 系统API圆角类前面三种是通过继承ImageView重写onDraw()方法实现最后一种是系统API直接使用。每一种方式都能实现显示圆形图片, 我们主要从以下几个方面来比较各个方式的不同实现方式难易空白的背景抗锯齿的能力第1种方式:BitmapShader实现通过对Pain_android 圆形imageview
文章浏览阅读546次。入门实例1先建个动态项目2配置web.xml:配置IOC容器applicationContext.xml的路径和初始化配置调度控制器DispatcherServlet<?xml version="1.0" encoding="UTF-8"?><web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/java..._public modelandview getrole(@requestparam("id") long id) { role role = roles
文章浏览阅读653次。简单语句所谓语句,就相当于自然语言中的句子,是c++的一个编译单位。一个语句中可以只有一个操作,如“i++”,也可以有好多操作,如“da+b+c”,其中有赋值,又有几个加法。几个语句也可以组成条件控制和循环控制的语句结构,因此语句就只是一个单位而已,我们不要用固定思维来看他。空语句c++中大多数的语句都以分号(;)结尾,而前面空无一物的分号也可以称为空语句(null),空语句在编译中会被当成一个语句,但他并没有什么作用。最常见的空语句就是for循环的头部定义的三个语句,在看到for循环的省略形式时就会_c++复合语句和基本语句地位相同吗
文章浏览阅读2.3k次,点赞5次,收藏10次。serialVersionUID - 0x0e 76 fa 9f 59 73 be c6 是16进制转换为二进制,就是生成的值transient修饰的变量不能被序列化;transient只作用于实现 Serializable 接口;transient只能用来修饰普通成员变量字段;不管有没有 transient 修饰,静态变量都不能被序列化;_java序列化和反序列化