当前位置: 首页 > news >正文

结构控制

目录​​​​​​​

1.顺序结构

2.分支结构

2.1.单分支结构

2.2.二分支结构

2.3.多分支结构

2.4.嵌套分支结构

3.循环结构

3.1.while 循环结构

3.2.while...else 循环结构

PS:break 关键字

PS:pass 关键字

3.3.for 循环结构

PS:range 函数

3.4.嵌套循环


1.顺序结构

2.分支结构

2.1.单分支结构

流程图插件:

新建一个以.dio为后缀的文件:

缩进插件:

调试代码:

代码每一行左侧打断点,选 Debug Python File。

# 需求一:输入一个整数判断是否是偶数。
# 接受一个整数
n = int(input('请输入一个整数:'))
# 判断是否是偶数
if n % 2 == 0:print(f'{n}是偶数')# 需求二:用户被要求输入一个数字。然后,程序会判断这个数字是正数、零还是负数,并相应地输出不同的消息。
# 接受一个数字
n = float(input('请输入一个数字:'))
# 判断是否是正数
if n > 0:print(f'{n}是正数')
# 判断是否是负数
if n < 0:print(f'{n}是负数')
# 判断是否是 0
if n == 0:print(f'{n}是零')# 需求三:判断四位数的年份是否是闰年,如果是闰年输出是闰年。
# 接受一个四位数的年份
year = int(input('请输入一个四位数的年份:'))
# 判断是否是闰年
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:print(f'{year}是闰年')pass
# 判断是否不是闰年
if not(year % 4 == 0 and year % 100 != 0 or year % 400 == 0):print(f'{year}是平年')pass

2.2.二分支结构

# 需求一:用户被要求输入考试分数,然后程序会根据分数是否大于等于 80 判断是否及格,并输出相应结果。
score = float(input('请输入一个考试成绩:'))
if score >= 80:print('考试成绩合格')
else:print('考试成绩不合格')# 需求二:判断一个数是否为偶数。
n = int(input('请输入一个整数:'))
if(n % 2 == 0):print('是偶数')
else:print('是奇数')# 需求三:判断一个年份是否为闰年。
year = int(input('请输入一个四位数的年份'))
if(year % 4 == 0 and year % 100 != 0 or year % 400 == 0): # and 与的优先级高于 or 或print(f'{year}是闰年')
else:print(f'{year}是平年')

Markdown PDF 插件:把 Markdown 格式文件转成 PDF 导出。

语法提示插件:

在 markdown 文件中右击,选择导出方式。

# 随机生成一个 5 位数,判断是否是回文(回文就是正序和逆序的结果都是一样的)# 导入生成随机数的模块
import random# 生成一个 5 位的随机数
n = random.randint(10000, 99999)# 获取个位、十位、千位、万位
a, b, c, d = n % 10, n // 10 % 10, n // 1000 % 10, n // 10000# 判断 if
if a == d and b == c:print(f'{n}是回文数字')
else:print(f'{n}不是回文数字')

2.3.多分支结构

不管几个条件成立只会执行第一个满足条件的代码。

# 需求一:用户被要求输入学生的分数,程序根据分数的范围给出相应的评级。
# 评级:A:90 - 100], , B:[80 - 90], C:60 - 80], D:0 - 60]
score = float(input('请输入一个成绩:'))
if 90 <= score <= 100: # 连等的比较方式只有 python 语言有,其他语言没有print('考试成绩等级 A')
elif 80 <= score < 90:print('考试成绩等级 B')
elif 60 <= score < 80:print('考试成绩等级 C')
elif 0 <= score < 60:print('考试成绩等级 D')
else:print('考试成绩有误')# 需求二:用户被要求输入一个年龄,程序会根据年龄段给出相应的描述。
# 年龄段:[0 - 14], [14 - 18], [18 - 24], [24 - 35], [35 - 65], [65
# 描述:  少年,     青少年,     青年,      核动力驴,   牛马,     老牛马
age = int(input('请输入一个年龄:'))
if 0 <= age < 14:print('少年')
elif 14 <= age < 18:print('青少年')
elif 18 <= age < 24:print('青年')
elif 24 <= age < 35:print('核动力驴')
elif 35 <= age < 65:print('牛马')
elif age >= 65:print('老牛马')
else:print('年龄输入有误')# 需求三: 用户被要求输入一个月份。程序会根据月份判断所属的季节,并输出相应的季节和特定节日。
month = int(input('请输入月份:'))
if 3 <= month <= 5:print('春季')print('清明节、劳动节、妇女节')
elif 6 <= month <= 8:print('夏季')print('端午节、七夕节、中元节')
elif 9 <= month <= 11:print('秋季')print('国庆节、中秋节、重阳节、教师节')
elif month == 12 or 1 <= month <= 2:print('冬季')print('春节、元宵节、元旦、双十二')
else:print('月份输入有误')

2.4.嵌套分支结构

# 需求一 : 用户被要求输入一个分数。程序会根据分数给出相应的等级和评价。
score = float(input('请输入成绩:'))# 约束正确的范围
if 0 <= score <= 100:if 90 <= score <= 100:print('A 级\n你很优秀继续加油!')elif 80 <= score < 90:print('B 级\n还是不错的继续加油!')elif 60 <= score < 80:print('C 级\n你已经过关了继续加油!')else:print('D 级\n你的态度不错继续加油!')pass # pass 关键字,没有任何含义,只是作为语法正确的占位符
else:print('成绩有误')pass# 需求二:用户被要求输入一个年份和一个月份。程序会根据输入的年份和月份判断该月份有多少天。
year, month = int(input('请输入一个年份:')), int(input('请输入 一个月份:'))if 1000 <= year <= 9999 and 1 <= month <= 12:# 定义一个变量保存天数days = 31if month == 4 or month == 6 or month == 9 or month == 11:days = 30elif month == 2:if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:days = 29else:days = 28print(f'{year}年{month}月,一共{days}天')
else:print('年份或月份输入有误')# 需求三:用户被要求输入购买金额和会员等级。程序会根据购买金额和会员等级计算折扣后的支付金额。
# 如果会员等级是"普通会员" ,并且购买金额大于等于 1000 ,则折扣为 0.9 (九折优惠),否则不打折。
# 如果会员等级是"高级会员" ,并且购买金额大于等于 500 ,则折扣为 0.8 (八折优惠),否则不打折。
# 如果会员等级是"至尊会员" ,折扣为 0.7 (七折优惠)。
# 如果会员等级不属于上述情况,则不打折。
# 1、通过 input 函数输入购买金额和会员等级
money, level = float(input('请输入消费金额:')), input('请输入会员等级:')# 定义一个标记
flag = True# 2、判断会员等级
# python 3.10 开始支持定值判断(无法支持范围判断)的分支结构语法 match(类似于 java 中的 switch 语句,excel 中也有 switch 函数)。
match level:case '普通会员':if money >= 1000:money *= 0.9passcase '高级会员':if money >= 500:money *= 0.8passcase '至尊会员':money *= 0.7passcase _: # _ 表示前面 3 个都不满足,则执行此条flag = Falseprint('您的会员等级不对')pass# if flag:
#     print(f'您的会员等级是:{level}, 您最后需要支付的金额是:{money}')
# else:
#     print(f'您最后需要支付的金额是:{money}')# 三目运算符(二分类问题的简写)
# 语法(只有 python 有):
# 条件成立的结果 if 条件 else 条件不成立的结果
print('-' * 30)
print(f'您的会员等级是:{level},' if flag else '', f'您最后需要支付的金额是:{money}', sep = '')

3.循环结构

3.1.while 循环结构

# 需求一: 打印 1 ~ 10 之间的整数。
# 使用 while 循环做循环次数固定的场景需要记住以下步骤:
# 1、定义循环变量并初始化(给一个值)
# 2、确定循环条件
# 3、确定循环体
# 4、循环变量改变
# control + c 强制停下程序
n = 1
while n <= 10:print(n)n += 1# 需求二:打印 1 ~ 10 之间的偶数。
n = 1
while n <= 10:if n % 2 == 0:print(n)n += 1pass# 需求三: 用户被要求输入一个正整数。程序会使用 while 循环计算输入的正整数的阶乘。
n = int(input('请输入一个正整数:'))if n >= 1:# 定义一个变量保存阶乘的结果jc = 1# 定义循环变量i = 2while i <= n:jc *= ii += 1print(f'{n}的阶乘是:{jc}')pass
else:print('您输入的不是正整数')
# 用户输入当前日期是星期几(1 - 7 的数字即可),如果是工作日(1 - 5),天气好就去谈业务,天气不好在公司整理资料;如果是周末温度超过 30 度去游泳,不超过去爬山。# 1、输入星期
weekday = int(input('请输入今天是星期几(1 - 7)?'))# 2、判断是否是工作日
if 1 <= weekday <= 5:tq = input('请输入今天天气怎么样(好/不好)')match tq:case '好':print('出去谈业务')passcase _:print('在公司整理资料')pass
elif 6 <= weekday <= 7:c = float(input('请输入当天的温度:'))if c > 30:print('游泳')else:print('爬山')pass
else:print('输入有误')

# 判断三角形类型并计算三角形面积。
# 要求:输入三角形的三条边长度,判断是等边三角形、等腰三角形还是一般三角形,若是三角形,则计算三角形的面积输出。# 输入三角形的三条边
a, b, c = float(input('请输入三角形的第一条边:')), float(input('请输入三角形的第二条边:')), float(input('请输入三角形的第三条边:'))# 判断是否能组成三角形
if a + b > c and a + c > b and b + c > a:# 判断是否是等边三角形、等腰三角形还是一般三角形if a == b and a == c:print('等边三角形')elif a == b or a == c or b == c:print('等腰三角形')else:print('一般三角形')# 海伦公式:已知三角形的三条边,求三角形的面积# 求半周长p = (a + b + c) / 2# 计算面积# S 作为变量,会变色和一般变量颜色不一致,改为 ss = (p * (p - a) * (p - b) * (p - c)) ** 0.5print(f'三角形的面积是:{s}')pass
else:print('无法组成三角形')
# 判断是否能购买特定商品。
# 要求:输入一个人的年龄和拥有的资金数额,若年龄大于等于 18 岁且资金大于等于 1000 元,输出“可以购买高端电子产品”;若年龄小于 18 岁且资金大于等于 500 元,输出“可以购买普通电子产品”;否则输出“无法购买电子产品”# python 中没有 double, 只有 floatage, money = int(input('请输入年龄:')), float(input('请输入资金金额:'))if age >= 18 and money >= 1000:print('可以购买高端电子产品')
elif 0 < age < 18 and money >= 500:print('可以购买普通电子产品')
else:print('无法购买电子产品')
# 判断用户输入的一个字符的字符串。
# 要求:用户输入一个字符,判读该字符是大写字母、小写字母、数字还是其他字符,分别输出对应的结果。s = input('请输入一个字符:')# ASCII 编码表
# 'a': 97
# 'z': 97 + 26 - 1 = 122
# 'A': 65
# 'Z': 65 + 26 - 1 = 90
# '0': 48
# ord(str): 把单个字符转为十进制数字
print(ord(s))if 'a' <= s <= 'z':print('小写字母')
elif 'A' <= s <= 'Z':print('大写字母')
elif '0' <= s <= '9':print('数字')
else:print('其他')

3.2.while...else 循环结构

# 需求一:打印 1 ~ 10 之间的整数,条件不成立提示。
i = 1while i <= 10:print(i)i += 1
else:print('循环结束')

PS:break 关键字

break 必须在循环里用,一般放在判断里。

# 给出换购的提示语句
# 三引号里的内容是注释,但若前面用变量接收了,其就是一个变量(文本/字符串)。
# 三引号里的内容有回车换行,其变量展示也是有回车换行;而单引号和双引号要展示换行则需要用 \n。
msg = '''是否参加优惠换购活动:
1、满 50 元,加 2 元换购百事可乐饮料 1 瓶
2、满 100 元,加 3 元换购 500 ml 可乐 1 瓶
3、满 100 元,加 10 元换购 5 公斤面粉
4、满 200 元,加 10 元换购 1 个苏泊尔炒菜锅 1 个
5、满 200 元,加 20 元换购欧莱雅爽肤水 1 瓶
0、不换购
-1、退出
请选择:'''while 1:# 接收选择key = int(input(msg)) # 写变量不能加引号,不然就是文本了if key == -1:break# 通过 input 函数输入消费金额money = float(input('请输入消费金额:'))# 定义一个是否换购成功的字符串s = ''match key:case 1:if money >= 50:money += 2s = '成功换购:百事可乐饮料 1 瓶'passcase 2:if money >= 100:money += 3s = '成功换购:500 ml 可乐 1 瓶'passcase 3:if money >= 100:money += 10s = '成功换购:5 公斤面粉'passcase 4:if money >= 200:money += 10s = '成功换购:1 个苏泊尔炒菜锅 1 个'passcase 5:if money >= 200:money += 20s = '成功换购:欧莱雅爽肤水 1 瓶'passcase 0:passcase _:print('没有这项换购')print(f'您本次消费金额是:{money} RMB')print(s if s else '您本次消费未达到换购标准')

# 输入赵本山的考试成绩,显示所获奖励
# 成绩 == 100 分,爸爸给他买辆车
# 成绩 >= 90 分,妈妈给他买 MP4
# 90 分 > 成绩 >= 60 分,妈妈给他买本参考书
# 成绩 < 60 分,什么都不买# 接收赵本山的成绩
score = float(input('请输入赵本山的成绩:'))if 0 <= score <= 100:if score == 100:print('爸爸给他买辆车')elif score >= 90:print('妈妈给他买 MP4')  elif 90 > score >= 60:print('妈妈给他买本参考书')else:print('什么都不买') pass
else:print('成绩有误')

# 计算 100 以内偶数之和,编程实现:计算 100 以内(包括 100)的偶数之和# 定义循环变量并初始化为 2
i = 2# 定义变量保存偶数和
sum_ = 0 # sum 是关键字,所以定义变量需要加 _,一般加下划线while i <= 100:sum_ += ii += 2print(f'100 以内偶数和是:{sum_}')

PS:pass 关键字

没有任何实际意义只是作为占位符使用。主要就是为了保证语法不出错误。

3.3.for 循环结构

如果循环次数固定,那么首先选 for 循环;如果循环次数不固定,那么首先选 while 循环。

循环条件不能是数字,数字是不可迭代分割的。

PS:range 函数

若 range 给 2 个值,是 start 和 end,若要改 step,则 range 要给 3 个值。

range(start, end, step) 是左闭右开,包含左边 start,不包含右边 end。

⚠️在绝大多数情况下,只要涉及到范围,默认都是左闭右开的区间。

diff:生成随机数目前是左闭右闭。看源码会发现其本质还是左闭右开。

# 需求一: 打印 1~100 之间的偶数
# 定义变量保存偶数和
sum_ = 0
for 循环变量 in range(2, 101, 2):sum_ += 循环变量pass
print(sum_)# 需求二:如果一个数等于它的每一位数的立方和, 则称为水仙花数(一定是个三位数), 如 153 = 1 + 125 + 27 求 100 - 999 之间的全部水仙花数
# 153,370,371,407
for i in range(100, 1000):a, b, c = i % 10, i // 10 % 10, i // 100if a ** 3 + b ** 3 + c ** 3 == i:print(i)pass

3.4.嵌套循环

一般不会超过 3 层嵌套循环,会有优化方案。

多一个 %,解决方法:

# # 需求一: 打印九九乘法表# # # 第一行
# # a = 1
# # b = 1
# # print(f'{a} * {b} = {a * b}')# # 第一行优化
# b = 1
# for a in range(1, b + 1):
#     print(f'{a} * {b} = {a * b}', end = '\t')
# print()# # # 第二行
# # b += 1
# # print(f'{a} * {b} = {a * b}', end = '\t') # end = '\t' 不让其换行
# # a += 1
# # print(f'{a} * {b} = {a * b}')# # 第二行优化
# b = 2
# for a in range(1, b + 1):
#     print(f'{a} * {b} = {a * b}', end = '\t')
# print()# # # 第三行
# # b += 1
# # a = 1
# # print(f'{a} * {b} = {a * b}', end = '\t') 
# # a += 1
# # print(f'{a} * {b} = {a * b}', end = '\t')
# # a += 1
# # print(f'{a} * {b} = {a * b}')# # 第三行优化
# b = 3
# for a in range(1, b + 1):
#     print(f'{a} * {b} = {a * b}', end = '\t')
# print()# 整体优化
for b in range(1, 10):for a in range(1, b + 1):print(f'{a} * {b} = {a * b}', end = '\t')print()# 不用 \t,用空格
for b in range(1, 10):for a in range(1, b + 1):print(f'{a} * {b} = {a * b}', end = '  ' if a * b >= 10 else '   ')print()# # 多条件嵌套,一般套不明白,不建议使用
# 4 if a >= 100 else 3 if a >= 10 else ''

# 需求二: 三位数有多少种不同的组合 (要求三位数每一位都不同)
ct = 0for a in range(1, 10):for b in range(0, 10):for c in range(0, 10):if a != b and b != c and a != c:ct += 1print(ct)

# 需求三: 百钱百鸡是一个经典的数学问题,它的目标是找出给定金额下,购买一百只鸡的不同买法。
# 假设有公鸡每只 5 元,母鸡每只 3 元,小鸡 1 元 3 只。
# 每种类型的鸡都得有,且要求一百元正好购买一百只鸡。# 🐔:20,公鸡最多有 100 / 5 = 20 只
# 🐓:33,母鸡最多有 100 / 3 = 33 只
# 🐤:100 - 🐔 - 🐓for a in range(1, 20): # a 公鸡个数for b in range(1, 33): # b 母鸡个数c = 100 - a * 5 - b * 3 # c 是小鸡钱数if a + b + (c * 3) == 100:print(f'🐔:{a}, 🐓:{b}, 🐤:{c * 3}')

# 用户登录验证,验证次数最多 3 次# 定义正确的用户名和密码
username = password = 'admin'# 使用 for 循环来模拟次数
for a in range(2, -1, -1):# 接收输入的用户名和密码user = input('请输入用户名:')pwd = input('请输入密码:')if user == username and pwd == password:print(f'{user} 登录成功')breakprint(f'您还有 {a} 次机会' if a != 0 else '')
else:print('请联系管理员')

# 一辆以固定速度行驶的汽车,清晨司机看到里程表上从左到右的读数和从右到左的读数是一样的,这个数是 95859,2 小时后里程表上又出现一个新的对称数,问此车的时速是多少?新的对称数是什么?设里程表为 5 位数。
for i in range(95860, 100000):a, b, c, d = i % 10, i // 10 % 10, i // 1000 % 10, i // 10000if a == d and b == c:print(f'新的对称数是:{i},车速是:{(i - 95859) / 2} km/h')break

# 求 n!,n 由键盘输入,范围要求 3 - 15 之间,如果用户输入的数不满足条件,则提示重新输入,直到输入了正确的 n,计算阶乘并输出结果。while 1:n = int(input('请输入一个 3 - 15 之间的整数:'))if 3 <= n <= 15:breakpassjc = 1
for a in range(2, n + 1):jc *= a
print(f'{n}的阶乘是:{jc}')

# 任意输入 5 个数,找出最小数#定义一个变量保存最小值
min_ = -1 # 一般认为 -1 要不是错误,要不是没有for i in range(1, 6):n = float(input(f'请输入第 {i} 个数字:'))if i == 1:min_ = nelif n < min_:min_ = nprint(f'5 个数字的最小值是:{min_}')

# 任意输入 n 个数,当输入 -1 时结束,找出其中最大数和最小数# 定义保存最大值和最小值的变量
max_ = min_ = -1while 1:n = float(input('请输入数字(输入 -1 结束):'))if n == -1:breakelif max_ == -1:max_ = min_ = nelse:if n > max_:max_ = nelif n < min_:min_ = npassprint(f'最大值:{max_}\n最小值:{min_}' if max_ != -1 else '没有最大值和最小值')

# 猴子摘来一些桃,吃掉全部的一半,又吃了一只;第二天、第三天以后也是如此。第十天猴子一看,只剩一只桃,问猴子第一天共摘了多少只桃?# 第十天:1
# 第九天:4
# 第八天:10
# 第七天:22n = 1for i in range(9, 0, -1):n = (n + 1) * 2passprint(f'小猴子第一天摘了:{n} 个桃')

# 出 1 - 10000 之间的全部同构数,同构数指一个数出现在它的平方的右端
# 如 5 的平方是 25,5 是 25 右端的数,5 和 25 就是一对同构数# 定义一个取余的变量
n = 10for i in range(1, 10001):if n == i: # 进位n *= 10a = i ** 2if i == a % n:print(f'{i}\t{a}')

# 输出 3 - 100 之间的全部素数
ct = 0
for a in range(3, 101, 2):for i in range(2, a // 2 + 1):ct += 1if a % i == 0:breakelse:print(a, end = ', ') # end = ', ' 让其不要换行,在一行用, 分割
print('\n', ct)print('*' * 80)# 优化
ct = 0
for a in range(3, 101, 2):ct += 1if a > 7 and (a % 3 == 0 or a % 5 == 0 or a % 7 == 0 or a % 9 == 0):passelse:print(a, end = ', ') # end = ', ' 让其不要换行,在一行用, 分割     
print('\n', ct)

# 计算 1 + 3!+ 5!+ ... + (2n - 1)! 前 10 项和# 定义变量保存阶乘的和
jc_sum = 0for i in range(1, 2 * 10, 2):# 定义变量保存阶乘结果jc = 1for j in range(2, i + 1):jc *= jjc_sum += jcprint(jc_sum)

# 计算 s = 1 + (1 + 2) + (1 + 2 + 3) + ... + (1 + 2 + 3 + ... + n)
n = int(input('请输入一个数字:'))
sum_ = 0# for i in range(1, n + 1):
#     for j in range(1, i + 1):
#         sum_ += j
# print(sum_)# 优化
s = 0
for i in range(1, n + 1):sum_ += is += sum_
print(s)

# 雨淋湿了本子上一道题,8 个数字只能看清 3 个,第 1 个数字虽然看不清,但可看出不是 1:[方框 *(方框 3 + 方框)] ^ 2 = 8 方框 方框 9,确定方框是什么数
for a in range(2, 10): # a 是第一个方框for b in range(1, 10): # b 是第二个方框for c in range(0, 10): # c 是第三个方框n = (a * (b * 10 + 3 + c)) ** 2d, e = n % 10, n // 1000if d == 9 and e == 8 and n <= 9999:print(f'[{a} x ({b}3 + {c})] ^ 2 = {n}')

# 求 100 之内的所有完备数,完备数是其各因子之和等于其本身的正数。如 6,其因子是 1,2,3,各因子之和是 6 本身。
for i in range(2, 101):a = 1for j in range(2, i // 2 + 1):if i % j == 0:a += jif a == i:print(i)

相关文章:

结构控制

目录​​​​​​​ 1.顺序结构 2.分支结构 2.1.单分支结构 2.2.二分支结构 2.3.多分支结构 2.4.嵌套分支结构 3.循环结构 3.1.while 循环结构 3.2.while...else 循环结构 PS&#xff1a;break 关键字 PS&#xff1a;pass 关键字 3.3.for 循环结构 PS&#xff1a;…...

Go语言中的内存分配与初始化:new与make函数详解

在Go语言中&#xff0c;内存分配和初始化是编程的基础操作。Go提供了两个内置函数new和make&#xff0c;用于不同场景下的内存分配和初始化。理解这两个函数的区别和适用场景对于编写高效、安全的Go代码至关重要。本文将详细介绍new和make函数&#xff0c;并提供示例说明它们的…...

The 2024 ICPC Kunming Invitational Contest

VP链接&#xff1a;https://codeforces.com/gym/105386 B. Gold Medal 签到题。对每一个读入的数 a&#xff0c;先记录已有奖牌数量&#xff0c;即 &#xff0c;再将 a 对 k 取模。然后将 a 数组从大到小排序&#xff0c;将每个不足 k 的数补到 k。如果 m 有剩余&#xff0c;…...

对原jar包解压后修改原class文件后重新打包为jar

文章目录 背景三种修改方式1.POM中移除原jar中依赖的历史版本2.原jar它不使用pom依赖而是直接放在源码中再编译使用JarEditor 插件对源码进行修改(推荐)使用java-decompiler反编译后修改源码覆盖原class&#xff08;不好用-不推荐直接跳过&#xff09;提醒 参考资料-推荐阅读拓…...

【C++】ReadFile概述,及实践使用时ReadFile的速率影响研究

ReadFile 函数概述 ReadFile 是 Windows API 函数&#xff0c;用于从文件或设备&#xff08;如串口、硬盘等&#xff09;中读取数据。它是同步和异步 I/O 操作的基础函数。 函数原型 BOOL ReadFile(_In_ HANDLE hFile, // 文件或设备句柄_Out_write…...

WebGL进阶(十一)层次模型

理论基础&#xff1a; 效果&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"vie…...

Django:从入门到精通

一、Django背景 Django是一个由Python编写的高级Web应用框架&#xff0c;以其简洁性、安全性和高效性而闻名。Django最初由Adrian Holovaty和Simon Willison于2003年开发&#xff0c;旨在简化Web应用的开发过程。作为一个开放源代码项目&#xff0c;Django迅速吸引了大量的开发…...

C++设计模式行为模式———中介者模式

文章目录 一、引言二、中介者模式三、总结 一、引言 中介者模式是一种行为设计模式&#xff0c; 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互&#xff0c; 迫使它们通过一个中介者对象进行合作。 中介者模式可以减少对象之间混乱无序的依赖关系&…...

Perfetto学习大全

Perfetto 是一个功能强大的性能分析和追踪工具&#xff0c;主要用于捕获和分析复杂系统中的事件和性能数据&#xff0c;特别是在 Android 和 Linux 环境下。它的核心目标是帮助开发者深入了解系统和应用程序的运行状态&#xff0c;以便优化性能和诊断问题。 Perfetto的主要作用…...

管家婆财贸ERP BR040.销售单明细表变更

最低适用版本&#xff1a; C系列 23.8 插件简要功能说明&#xff1a; 销售明细表支持直接修改单据自由项1-16更多细节描述见下方详细文档 插件操作视频&#xff1a; 进销存类定制插件--销售单明细表变更 1. 应用中心增加菜单【销售单明细表变更】 a. 复制23.8版本销售单明细…...

2411rust,实现特征

原文 在Rust2024中,impl Trait在中位置的默认工作方式有了变化.是为了简化impl Trait,以更好地匹配人们一般的需求. 还添加了一个灵活的语法,让你需要时可完全控制. 从Rust2024开始,一直在更改,何时可在返回位置impl Trait的隐藏类型中使用泛型参数的规则: 1,即对返回位置i…...

SpringBoot3与JUnit5集成测试

你可以在 Spring Boot 3 中轻松设置和运行 JUnit 集成测试。合理使用 Spring 提供的注解和工具&#xff0c;可以确保测试的高效性和可靠性。以下是集成测试的步骤和示例&#xff1a; 1. 添加依赖 在 pom.xml 中添加 Spring Boot Starter Test 依赖&#xff0c;它包含 JUnit 5 …...

工程企业需要什么样的物资管理系统?为什么需要物资管理系统?

一、背景与意义 在工程项目的建设中&#xff0c;无论是高楼大厦的拔地而起&#xff0c;还是高速公路的绵延铺展&#xff0c;物资都是最基础的要素之一。从钢筋水泥到施工机械&#xff0c;任何一种物资的管理不善都可能导致项目延误、成本超支&#xff0c;甚至质量问题。然而&a…...

Vue + Websocket播放PCM(base64转ArrayBuffer、 字符串转ArrayBuffer)

文章目录 引言I 音视频处理相关概念和APIII 案例:基于开源库 pcm-player方式播放借助MediaSource和Audio对象播放音频流。基于原生api AudioContext 播放操作III 格式转换js字符串转ArrayBufferbase64 转 ArrayBufferIV 解决pcm-player分片播放问题引言 需求: 基于webscoket传…...

华为防火墙技术基本概念学习笔记

1.防火墙概述 1.1防火墙与交换机、路由器对比 路由器与交换机的本质是转发&#xff0c;防火墙的本质是控制。 防火墙与路由器、交换机是有区别的。路由器用来连接不同的网络&#xff0c;通过路由协议保证互联互通&#xff0c;确保将报文转发到目的地;交换机则通常用来组建局域…...

Mesh路由组网

Mesh无线网格网络&#xff0c;多跳&#xff08;multi-hop&#xff09;网络&#xff0c;为解决全屋覆盖信号&#xff0c;一般用于家庭网络和小型企业 原理 网关路由器&#xff08;主路由&#xff0c;连接光猫&#xff09;&#xff0c;Mesh路由器&#xff08;子路由&#xff0c;…...

【数据结构】七种常用排序总结

一、七种排序及其讲解 以下为七种排序的讲解&#xff1a; 【数据结构】插入排序——直接插入排序 和 希尔排序 【数据结构】选择排序——选择排序 和 堆排序 【数据结构】交换排序——冒泡排序 和 快速排序 【数据结构】归并排序 —— 递归及非递归解决归并排序 二、排序的…...

【在Linux世界中追寻伟大的One Piece】多线程(一)

目录 1 -> Linux线程概念 1.1 -> 什么是线程 1.2 -> 线程的优点 1.3 -> 线程的缺点 1.4 -> 线程异常 1.5 -> 线程用途 2 -> Linux线程 VS 进程 2.1 -> 线程和进程 2.2 -> 进程的多个线程共享 3 -> Linux线程控制 3.1 -> POSIX线程…...

《Python编程实训快速上手》第十天--处理CSV文件和JSON数据

CSV&#xff1a;简化的电子表格&#xff0c;被保存为纯文本文件 JSON&#xff1a;是一种数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成&#xff0c;以JavaScript源代码的形式将信息保存在纯文本文件中 一、csv模块 CSV文件中的每行代表电…...

基于springboot停车场管理系统源码和论文

如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统停车场管理系统信息管理难度大&#xff0c;容错率低&#xff0c;…...

Linux的桌面

Linux的桌面是可以卸载的 的确&#xff0c;Linux并不像Windows&#xff0c;Linux本身是一个基于命令行的操作系统&#xff0c;在内核眼中&#xff0c;桌面只不过是个普通的应用程序&#xff0c;所以&#xff0c;在Linux的桌面中可以完成的事情&#xff0c;命令行中也基本可以完…...

Spring Boot 3.0废弃了JavaEE,改用了Jakarta EE

Spring Boot 3.0废弃了JavaEE&#xff0c;改用了Jakarta EE 历史背景 javax变成Jakarta的主要原因是因为Java EE项目从Oracle转移到了Eclipse Foundation&#xff0c;并改名为Jakarta EE。 JavaEE是从Java 1.2版本开始推出的Java企业级开发平台&#xff0c;最初的名称是J2EE(J…...

java-排序算法汇总

排序算法&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09; 选择排序&#xff08;Selection Sort&#xff09; 插入排序&#xff08;Insertion Sort&#xff09; 快速排序&#xff08;Quick Sort&#xff09; 归并排序&#xff08;Merge Sort&#xff09; 堆排序&…...

C0030.Clion中运行提示Process finished with exit code -1073741515 (0xC0000135)解决办法

1.错误提示 2.解决办法 添加环境变量完成之后&#xff0c;重启Clion软件&#xff0c;然后就可以正常调用由mingw编译的opencv库了。...

如何理解JS的 异步

JS是一门单线程的语言&#xff0c;这是因为它运行在浏览器的渲染主线程中&#xff0c;而渲染主线程只有一个。 而渲染主线程承担着诸多的工作&#xff0c;渲染页面、执行JS都在其中运行。 如果使用同步的方式&#xff0c;就极有可能导致主线程产生阻塞&#xff0c;从而导致消…...

vsgithub

VS&GitHub项目联动&#xff08;上传和克隆&#xff09;&#xff0c;创建你的第一个仓库&#xff0c;小白配置_vs上传代码到github-CSDN博客...

Android蓝牙架构,源文件目录/编译方式学习

Android 版本 发布时间 代号&#xff08;Codename&#xff09; Android 1.0 2008年9月23日 无 Android 1.1 2009年2月9日 Petit Four Android 1.5 2009年4月27日 Cupcake Android 1.6 2009年9月15日 Donut Android 2.0 2009年10月26日 Eclair Android 2.1 2…...

10 - Clickhouse集群部署以及副本和分片

目 一、副本 1、简介 2、副本写入流程 3、副本配置步骤 3.1、启动zookeeper集群 3.2、在 hallo100 的/etc/clickhouse-server/config.d 目录下创建一个名为metrika.xml 的配置文件,内容如下&#xff1a; 3.3、在 hallo100 的/etc/clickhouse-server/config.xml 中增加如…...

FreeRTOS的软件定时器与事件标志组

目录 1.FreeRTOS软件定时器 1.1 什么是FreeRTOS软件定时器&#xff1f; 1.2 学习软件定时器的意义 1.3 软件定时器的简介 1.3.1 软件定时器概述 1.3.2 编写回调函数的注意事项 1.4 定时器服务/Daemon 任务 1.4.1 定时器服务任务与队列 1.4.2 定时器相关配置 configUSE_T…...

生产制造领域的多元化模式探索

在当今全球化和信息化的时代背景下&#xff0c;生产制造领域正经历着前所未有的变革。随着消费者需求的多样化、市场竞争的加剧以及技术的不断进步&#xff0c;传统的生产制造模式已经难以满足现代企业的需求。因此&#xff0c;多种生产制造模式应运而生&#xff0c;以适应不同…...

大数据技术之SparkCore

RDD概述 什么是RDD RDD&#xff08;Resilient Distributed Dataset&#xff09;叫做弹性分布式数据集&#xff0c;是Spark中最基本的数据抽象。代码中是一个抽象类&#xff0c;它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 RDD五大特性 RDD编程 RDD的创…...

element-plus的组件数据配置化封装 - table

目录 一、封装的table、table-column组件以及相关ts类型的定义 1、ATable组件的封装 - index.ts 2、ATableColumn组件的封装 - ATableColumn.ts 3、ATable、ATableColumn类型 - interface.ts 二、ATable、ATableColumn组件的使用 三、相关属性、方法的使用以及相关说明 1. C…...

蓝桥杯每日真题 - 第15天

题目&#xff1a;&#xff08;钟表&#xff09; 题目描述&#xff08;13届 C&C B组B题&#xff09; 解题思路&#xff1a; 理解钟表指针的运动&#xff1a; 秒针每分钟转一圈&#xff0c;即每秒转6度。 分针每小时转一圈&#xff0c;即每分钟转6度。 时针每12小时转一圈…...

c#:winform调用bartender实现打印(学习整理笔记)

效果 学习路径 C# winform调用Bartender进行自定义打印、批量打印、检索文件夹中的模板_哔哩哔哩_bilibili 一、初始环境搭建见&#xff1a; c#:winform引入bartender-CSDN博客https://blog.csdn.net/weixin_46001736/article/details/143989473?sharetypeblogdetail&s…...

周期法频率计的设计

目录 周期法频率计 分析&#xff1a; 设计过程&#xff1a; 周期法频率计 对于低频信号&#xff0c;应用周期法进行测频。周期法测频的基本原理是&#xff1a;应用标准频率信号统计被测信号两个相邻脉冲之间的脉冲数&#xff0c;然后通过脉冲数计算出被测信号的周期&#xff…...

【2024亚太杯亚太赛APMCM C题】数学建模竞赛|宠物行业及相关产业的发展分析与策略|建模过程+完整代码论文全解全析

第一个问题是&#xff1a;请基于附件 1 中的数据以及你的团队收集的额外数据&#xff0c;分析过去五年中国宠物行业按宠物类型的发展情况。并分析中国宠物行业发展的因素&#xff0c;预测未来三年中国宠物行业的发展。 第一个问题&#xff1a;分析中国宠物行业按宠物类型的发展…...

uniapp的renderjs使用

‌uniapp中的RenderJS主要服务于APP和H5平台&#xff0c;其作用包括降低逻辑层和视图层的通讯损耗&#xff0c;提供高性能视图交互能力&#xff0c;以及在视图层操作DOM和运行Web的JS库‌。 RenderJS是uni-app中一个特性&#xff0c;它允许开发者在页面中使用JavaScript直接渲…...

CPU命名那些事

一、Intel CPU命名 1. 命名结构 Intel CPU 的命名通常包含以下几个部分&#xff1a; 品牌 产品线 系列 代数 具体型号 后缀 例如&#xff1a;Intel Core i7-13700K 2. 各部分含义 品牌 Intel&#xff1a;表示厂商&#xff08;几乎所有命名中都有&#xff09;。不同品…...

【LLM】一文学会SPPO

博客昵称&#xff1a;沈小农学编程 作者简介&#xff1a;一名在读硕士&#xff0c;定期更新相关算法面试题&#xff0c;欢迎关注小弟&#xff01; PS&#xff1a;哈喽&#xff01;各位CSDN的uu们&#xff0c;我是你的小弟沈小农&#xff0c;希望我的文章能帮助到你。欢迎大家在…...

鸿蒙多线程开发——线程间数据通信对象03(sendable)

1、简 介 在传统JS引擎上&#xff0c;对象的并发通信开销的优化方式只有一种&#xff0c;就是把实现下沉到Native侧&#xff0c;通过Transferable对象的转移或共享方式降低并发通信开销。而开发者仍然还有大量对象并发通信的诉求&#xff0c;这个问题在业界的JS引擎实现上并没…...

web前端开发--动画效果

1、3D旋转 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>3D旋转</title><style type"text/css">div{/*设置大盒子样式*/width: 100px;height: 100px;/*background-color: rgba(255,0,0,0.5);*/ba…...

【数据分享】中国价格统计年鉴(2013-2024) PDF

数据介绍 犹如一座珍贵的宝库&#xff0c;全面而系统地记录了中国在这一时期的价格变动情况。它涵盖了丰富的内容&#xff0c;包括宏观经济指标、商品价格、居民消费价格以及城市物价监测等多个方面。 在宏观经济指标方面&#xff0c;年鉴中收录了 GDP、CPI、PPI 等重要数据&…...

鸿蒙NEXT开发案例:字数统计

【引言】 本文将通过一个具体的案例——“字数统计”组件&#xff0c;来探讨如何在鸿蒙NEXT框架下实现这一功能。此组件不仅能够统计用户输入文本中的汉字、中文标点、数字、以及英文字符的数量&#xff0c;还具有良好的用户界面设计&#xff0c;使用户能够直观地了解输入文本…...

TritonServer中加载模型,并在Gunicorn上启动Web服务调用模型

TritonServer中加载模型,并在Gunicorn上启动Web服务调用模型 一、TritonServer中加载模型1.1 搭建本地仓库1.2 配置文件1.3 服务端代码1.4 启动TritonServer二、Gunicorn上启动Web服务2.1 安装和配置Gunicorn2.2 启动Gunicorn三、调用模型四、性能优化与监控五、总结在深度学习…...

[UE5学习] 一、使用源代码安装UE5.4

一、简介 本文介绍了如何使用源代码安装编译UE5.4&#xff0c;并且新建简单的项目&#xff0c;打包成安卓平台下的apk安装包。 二、使用源代码安装UE5.4 注意事项&#xff1a; 请保证可以全程流畅地科学上网。请保证C盘具有充足的空间。请保证接下来安装下载的visual studi…...

2023AE软件、Adobe After Effects安装步骤分享教程

2023AE软件是一款由Adobe公司开发的视频编辑软件&#xff0c;也被称为Adobe After Effects。它在广告、电影、电视和网络视频等领域广泛应用&#xff0c;用于制作动态图形、特效、合成和其他视觉效果。该软件支持多种视频和音频文件格式&#xff0c;具有丰富的插件和预设&#…...

Xilinx 7 系列 FPGA的各引脚外围电路接法

Xilinx 7系列FPGA的外围电路接法涉及到多个方面&#xff0c;包括电源引脚、时钟输入引脚、FPGA配置引脚、JTAG调试引脚&#xff0c;以及其他辅助引脚。 本文参考资料&#xff1a; ds180 - 7 Series FPGAs Data Sheet - Overview ds181 - Artix 7 FPGAs Data Sheet - DC and AC…...

【LeetCode热题100】队列+宽搜

这篇博客是关于队列宽搜的几道题&#xff0c;主要包括N叉树的层序遍历、二叉树的锯齿形层序遍历、二叉树最大宽度、在每个数行中找最大值。 class Solution { public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> ret;if(!root) …...

<Sqlite><websocket>使用Sqlite与websocket,实现网页端对数据库的【读写增删】操作

前言 本文是在websocket进行通讯的基础,添加数据库进行数据的存储,数据库软件使用的是sqlite。 环境配置 系统:windows 平台:visual studio code 语言:javascript、html 库:nodejs、sqlite 概述 此前,我们实现在利用websocket和socket,将网页端与下位控制器如PLC进行…...

summernote富文本批量上传音频,视频等附件

普通项目,HTML的summernote富文本批量上传音频,视频等附件(其他附件同理) JS和CSS的引入 <head><th:block th:include"include :: summernote-css" /> </head> <body><th:block th:include"include :: summernote-js" /> …...