Python基础语法2
目录
1、顺序语句
2、条件语句
2.1、语法格式
2.2、缩进和代码块
3、空语句
4、循环语句
4.1、while循环
4.2、for循环
4.3、continue
4.4、break
5、综合案例
1、顺序语句
默认情况下,Python 的代码执行顺序是按照从上到下的顺序,依次执行的。例如:
print("1")
print("2")
print("3")
执行结果一定为 "123",而不会出现 "321" 或者 "132" 等。这种按照顺序执行的代码,我们称为顺序语句。这个顺序是很关键的,编程是一件明确无歧义的事情,安排好任务的顺序,计算机才能够正确的进行执行。
2、条件语句
条件语句能够表达 "如果 ... 否则 ..." 这样的语义。这构成了计算机中基础的逻辑判定。条件语句也叫做分支语句,表示了接下来的逻辑可能有几种走向。
2.1、语法格式
Python 中使用 if else 关键字表示条件语句:
if:
if expression:do_something1do_something2
next_something
如果 expression 值为 True,则执行 do_something1,do_something2,next_something。
如果 expression 值为 False,则只执行 next_something,不执行 do_something1,do_something2。
if - else:
if expression:do_something1
else:do_something2
如果 expression 值为 True,则执行 do_something1。
如果 expression 值为 False,则执行 do_something2。
if - elif - else:
if expression1:do_something1
elif expression2:do_something2
else:do_something3
如果 expression1 值为 True,则执行 do_something1。
如果 expression1 值为 False,并且 expression2 为 True 则执行 do_something2。
如果 expression1 值为 False,并且 expression2 为 False 则执行 do_something3。
注意:Python中的条件语句写法,和很多编程语言不太一样。
1、if 后面的条件表达式没有 ( ), 使用 : 作为结尾。
2、if / else 命中条件后要执行的 "语句块", 使用缩进 (通常是 4 个空格或者 1 个 tab)来表示,而不是 { }
3、对于多条件分支,不是写作 else if,而是 elif (合体了)。
例如:
choice = input("输入 1 表示认真学习, 输入 2 表示躺平摆烂: ")
if choice == "1":print("你会找到好工作!")
elif choice == "2":print("你可能毕业就失业了!")
else:print("你的输入有误!")
2.2、缩进和代码块
代码块指的是一组放在一起执行的代码,在 Python 中使用缩进表示代码块。不同级别的缩进,程序的执行效果是不同的。
# 代码1
a = input("请输入一个整数: ")
if a == "1":print("hello")print("world")# 代码2
a = input("请输入一个整数: ")
if a == "1":print("hello")
print("world")
注意上述代码的区别:在代码1 中,print("world") 有一级缩进,这个语句属于 if 内的代码块,意味着条件成立才执行,条件不成立则不执行。在代码2 中,print("world") 没有缩进,这个语句是 if 外部的代码,不属于 if 内部的代码块;意味着条件无论是否成立,都会执行。
另外,代码块内部还可以嵌套代码块,例如:
a = input("请输入第一个整数: ")
b = input("请输入第二个整数: ")
if a == "1":if b == "2":print("hello")print("world")
print("python")
在这个代码中:
print("hello") 具有两级缩进,属于 if b == "2"条件的代码块。
print("world") 具有一级缩进,属于if a == "1" 条件的代码块。
print("python") 没有缩进,无论上述两个条件是否成立,该语句都会执行。
基于缩进的方式表示代码块,带来的好处就是强制要求程序猿要写明确的缩进,来明确代码之间的相对关系。如果缩进书写的不对,则直接报错。
像C++ / Java这些语言,即使完全不写缩进,语法也不会报错,就可能导致代码可读性就比较差。
同时,带来的坏处就是,如果缩进层次比较多,就容易分不清楚某个语句属于哪个层级。因此,就有了 "写 Python 需要自备游标卡尺" 这个梗。
练习1:输入一个整数,判定是否是奇数
a = int(input("请输入一个整数: "))
if a % 2 == 0:print("偶数")
else:print("奇数")
或者还可以这样写:
a = int(input('请输入一个整数: '))
if a % 2 == 1:print("奇数")
else:print("偶数")
上面的这个代码的实现方式在C++或JAVA中是不太行的,例如-19%2在C++和JAVA中计算出的是一个-1,但是在Python中结果为1。
练习2:输入一个整数,判定是正数还是负数
a = int(input("请输入一个整数: "))
if a > 0:print("正数")
elif a < 0:print("负数")
else:print("为 0")
练习3:判定年份是否是闰年
year = int(input("请输入年份: "))
if year % 100 == 0:#判定世纪闰年if year % 400 == 0:print("闰年")else:print("平年")
else:#判定普通闰年if year % 4 == 0:print("闰年")else:print("平年")
或者还可以这么写:
year = int(input("请输入年份: "))
if (year % 100 != 0 and year % 4 == 0) or year % 400==0:print("闰年")
else:print("平年")
3、空语句
例如:输入一个数字,如果数字为 1,则打印 hello。
a = int(input("请输入一个整数:"))
if a == 1:print("hello")a = int(input("请输入一个整数:"))
if a != 1:pass
else:print("hello")
这两段代码是等价的。其中 pass 表示空语句,并不会对程序的执行有任何影响,只是占个位置,保持 Python 语法格式符合要求。
如果代码写成:
a = int(input("请输入一个整数:"))
if a != 1:else:print("hello")
程序是不符合 Python 语法的,会直接报错。
4、循环语句
有些操作是需要反复执行的,这种就需要使用循环。
4.1、while循环
基本语法格式:
while 条件:循环体
条件为真,则执行循环体代码。条件为假,则结束循环。
例如:打印 1-10 的整数
num = 1
while num <= 10:print(num)num += 1
例如:计算 1-100 的和
sum = 0
num = 1
while num <= 100:sum += numnum += 1
print(sum)
例如:计算 5 的阶乘
result = 1
n = 1
while n <= 5:result *= nn += 1
print(result)
例如:求 1! + 2! + 3! + 4! + 5!
num = 1
sum = 0
while num <= 5:factorResult = 1i = 1while i <= num:factorResult *= ii += 1sum += factorResultnum += 1
print(sum)
这个程序用到了两重循环,也就是在循环语句中也可以套循环。
4.2、for循环
基本语法格式:
for 循环变量 in 可迭代对象:循环体
注意:
python 的 for 和其他语言不同,没有 "初始化语句","循环条件判定语句","循环变量更新语句",而是更加简单
所谓的 "可迭代对象",指的是 "内部包含多个元素,能一个一个把元素取出来的特殊变量"。
例如:打印 1-10
for i in range(1, 11):print(i)
使用 range 函数,能够生成一个可迭代对象,上面的代码中生成的范围是 [1, 11), 也就是 [1, 10]。
例如:打印 2, 4, 6, 8, 10
for i in range(2, 12, 2):print(i)
通过 range 的第三个参数,可以指定迭代时候的 "步长"(默认的步长是1),也就是一次让循环变量加几。
例如:打印 10-1
for i in range(10, 0, -1):print(i)
range 的步长也可以设定成负数。
例如:求 1 - 100 的和
sum = 0 #当前有个内置函数sum,咱们定义的sum变量与内置的函数冲突了,虽然#不影响运行,但是后续的代码中就不能使用内置函数sum了。
for i in range(1, 101):sum += i
print(sum)
4.3、continue
continue 表示结束这次循环,进入下次循环。例如:
for i in range(1, 6):if i == 3:continueprint(f"吃完第 {i} 个包子")
4.4、break
break 表示结束整个循环。例如:
for i in range(1, 6):if i == 3:breakprint(f"吃完第 {i} 个包子")
例如:输入若干个数字,求平均值,使用 "分号" 作为结尾。
sum = 0
count = 0
while True:num = input("请输入数字:")if num == ';':breaknum = float(num)sum += numcount += 1
print(sum / count)
5、综合案例
实现 "人生重开模拟器",这是一款文字类小游戏,玩家输入角色的初始属性之后,就可以开启不同的人生经历。完整的程序代码较多,此处我们只实现其中的一部分逻辑。
import random
import sys
import time# 人生重开模拟器
print("+---------------------------------------------------------------------+")
print("| |")
print("| 花有重开日, 人无再少年 |")
print("| |")
print("| |")
print("| 欢迎来到, 人生重开模拟器| |")
print("+---------------------------------------------------------------------+")# 设置初始属性
# 在游戏中我们设定四个属性:颜值 (face),体质 (strong),智力 (iq),家境 (home)
# 我们约定每个属性的范围为 [1, 10], 并且总和不能超过 20.
while True:print("请设定初始属性(可用总点数 20)")face = int(input("设定 颜值(1-10):"))strong = int(input("设定 体质(1-10):"))iq = int(input("设定 智力(1-10):"))home = int(input("设定 家境(1-10):"))# 检查输入的值是否合理if face < 1 or face > 10:print("颜值设置有误!")continueif strong < 1 or strong > 10:print("体质设置有误!")continueif iq < 1 or iq > 10:print("智力设置有误!")continueif home < 1 or home > 10:print("家境设置有误!")continueif face + strong + iq + home > 20:print("总点数超过了 20!")continueprint("初始属性设定完成!")break# 设置性别,如果是单数, 则性别设为男孩;如果是双数, 则性别设为女孩
# 使用random.randint(beg,end),就能生成[beg,end]之间的随机整数
# 其中random是Python中的一个模块,模块就是指别人写好的代码,直接给我们来使用。
# 在Python中,如果想要引入其他模块,需要先使用import语句,把模块的名字给“导入”进来。例如:import random
# 对于PyCharm来说,有一个功能就是能够自动导入当前使用的模块。
point = random.randint(1, 6) # 掷色子
if point % 2 == 1:gender = 'boy'print("你是个男孩")
else:gender = 'girl'print("你是个女孩")# 设置出生点,首先按照家境(home), 分成四个档位.
# 10 是第一档. 加成最高。
# [7, 9] 是第二档. 也有一些加成。
# [4, 6] 是第三档. 加成较少。
# [1, 3] 是第四档. 会扣掉属性。
# 再扔一次色子, 生成 [1, 3] 的随机数, 用来表示每一种细分情况
point = random.randint(1, 3) # 掷色子
if home == 10:# 第一档print('你出生在帝都, 你的父母是高官政要')home += 1iq += 1face += 1
elif 7 <= home <= 9:# 第二档if point == 1:print('你出生在大城市, 你的父母是公务员')face += 2elif point == 2:print('你出生在大城市, 你的父母是大企业高管')home += 2else:print('你出生在大城市, 你的父母是大学教授')iq += 2
elif 4 <= home <= 6:# 第三档if point == 1:print('你出生在三线城市, 你的父母是教师')iq += 1elif point == 2:print('你出生在镇上, 你的父母是医生')strong += 1else:print("你出生在镇上, 你的父母是个体户")home += 1
else:# 第四档if 1 <= point <= 2:print('你出生在村里, 你的父母是辛苦劳作的农民')strong += 1face -= 2elif 3 <= point <= 4:print('你出生在穷乡僻壤, 你的父母是无业游民')home -= 1else:print('你出生在镇上, 你父母感情不和')strong -= 1# 按照年龄, 把人生经历分成四个阶段:
# 幼年阶段 [1, 10]
# 青年阶段 [11, 20]
# 壮年阶段 [20, 50]
# 老年阶段 50 岁以上# 每个阶段都会有不同的精力和事件发生:
# 幼年阶段可塑性强, 体质, 颜值, 智力都会有较快变化
# 青年阶段主要是求学, 同时父母一辈会有明显变化, 智力和家境会有明显变化
# 壮年阶段相对平稳, 属性变化不大, 主要是一些随机事件影响到属性
# 老年阶段体质, 颜值, 智力都会显著退化, 并且随着年龄的上升, 疾病/死亡的风险逐渐升高# 此处我们以幼年为例, 简单实现一下这里的处理逻辑:
# 使用 for 循环, 按照年龄循环起来
# 针对每一年, 先掷一次 [1, 3] 的色子, 根据不同的随机数值, 来触发不同的事件
# 根据性别, 年龄, 各种属性, 来触发不同的事件,这里都使用if - else的方式来组织
# 不同的事件可能会对属性有正面/负面的影响
# 在每一年的最后, 打印这一年遇到的事情
# 如果夭折, 则直接sys.exit(0) 退出程序
# 使用time.sleep(1) 使程序暂停执行 1s, 方便观察程序结果
for age in range(1, 11):info = f'你今年 {age} 岁, 'point = random.randint(1, 3)# 性别触发事件if gender == 'girl' and home <= 3 and point == 1:info += '你家里人重男轻女思想非常严重, 你被遗弃了!'print(info)print("游戏结束!")sys.exit(0) # sys是system这个单词的缩写,也是Python内部提供的一个模块。# 体质触发的事件elif strong < 6 and point != 3:info += '你生了一场病,'if home >= 5:info += '在父母的精心照料下恢复了健康'strong += 1home -= 1else:info += '你的父母没精力管你, 你的身体状况更糟糕了'strong -= 1# 颜值触发的事件elif face < 4 and age >= 7:info += '你因为长的太丑, 别的小朋友不喜欢你, 'if iq > 5:info += '你决定用学习填充自己'iq += 1else:if gender == 'boy':info += '你和别的小朋友经常打架'iq -= 1strong += 1else:info += '你经常被别的小朋友欺负'strong -= 1# 智商触发的事件elif iq < 5:info += '你看起来傻傻的, 'if home >= 8 and age >= 6:info += '你的父母给你送到更好的学校学习'iq+=1elif 4 <= home <= 7:if gender == 'boy':info += '你的父母鼓励你多运动, 加强身体素质'strong += 1else:info += '你的父母鼓励你多打扮自己'face += 1else:info += '你的父母为此经常吵架'if point == 1:strong -= 1elif point == 2:iq -= 1else:pass# 健康成长else:info += '你健康成长, 'if point == 1:info += '看起来更聪明了'iq += 1elif point == 2:info += '看起来更好看了'face += 1else:info += '看起来更结实了'strong += 1# 打印这一年发生的事情print('-------------------------------------------')print(info)print(f'strong={strong}, face={face}, iq={iq}, home={home}')time.sleep(1) # 其中time也是Python提供的模块,sleep的作用是让程序暂停一会再继续执行。# 更多的逻辑, 此处就不再实现了。大家可以按照类似的方式, 设计更多的事件, 完成 青年, 壮年, 老年 的相关逻辑。
相关文章:
Python基础语法2
目录 1、顺序语句 2、条件语句 2.1、语法格式 2.2、缩进和代码块 3、空语句 4、循环语句 4.1、while循环 4.2、for循环 4.3、continue 4.4、break 5、综合案例 1、顺序语句 默认情况下,Python 的代码执行顺序是按照从上到下的顺序,依次执行的…...
部署LLaMA Factory,及快速使用
什么是LLaMA Factory LLaMA Factory 是一个围绕 Meta 的 LLaMA(Large Language Model Meta AI)模型设计的工具或代码结构,主要用于简化模型的创建、管理和部署。以下是其关键点解析: 1. 核心概念 LLaMA 模型&a…...
11.第二阶段x64游戏实战-框架代码细节优化
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:10.第二阶段x64游戏实战-添加计时器 首先是这个GameData类,我们要让…...
Spring Boot 中使用 Netty
2025/4/15 向 一、什么是Netty Netty 是 Java 中一个非常高性能的网络通信框架,用来开发服务器和客户端程序,主要用于处理 TCP/UDP 的网络连接,比如: 聊天服务 实时推送 高并发网络通信(比如游戏、IoT、金融系统&a…...
【Leetcode-Hot100】最大子数组和
题目 解答 class Solution(object):def maxSubArray(self, nums):""":type nums: List[int]:rtype: int"""len_nums len(nums)result -1e5left_fit, right_fit 0, len_nums-1if len_nums 1:return nums[0]sum_left, sum_right 0, 0while r…...
Android 项目 Camera 问题:Fail to connect to camera service
问题与处理策略 问题描述 在 Android 项目中,使用相机时,报如下错误 java.lang.RuntimeException: Fail to connect to camera service# 翻译无法连接到相机服务问题原因 通常情况是应用没有获取到相机权限,导致连接相机服务失败 Android…...
Java二叉树深度解析:结构、算法与应用实践指南
一、二叉树核心概念体系 1. 二叉树基础定义 graph TBA((根节点)) --> B((左子节点))A --> C((右子节点))B --> D((叶子节点))B --> E((叶子节点))C --> F[null]C --> G((叶子节点)) 2. 二叉树类型对比 类型结构特性典型应用场景普通二叉树任意节点最多两…...
阿里FPGA XCKU3P开箱- 25G 光纤
阿里FPGA XCKU3P开箱 - Hello-FPGA - 博客园 25G 光纤 板子有2个SFP的光纤接口,最大支持25G速率,使用ibert 进行验证,SFP在BANK227的GTY 接口。 ibert 配置如下: 测试 测试符合预期,确认了SFP的具体位置 和 支持的速…...
深度学习之微积分
2.4.1 导数和微分 2.4.2 偏导数 回调函数(3)C#
原接口定义请参照高级语言调用C接口(二)回调函数(2) 我们直接来看C#的接口定义 [DllImport("XXX.dll")]public static extern IntPtr Init(string pcPayDeviceIP, int usTlsPort, OnPayResult onPayResult); 委托定义 [UnmanagedFunctionPointer(CallingConvention…...
ns-3中UDP饱和流发包时间间隔设置最合理值
ns3的官方手册很全,相关书籍也是有的,官网先贴在这里: ns-3 | a discrete-event network simulator for internet systemsa discrete-event network simulator for internet systemshttps://www.nsnam.org/相关的脚本介绍也都有一些…...
深度学习(第1章——神经网络原理和Pytorch入门)
前言: 本章将讲解神经网络原理,神经元如何处理输入并输出,什么是梯度,多层感知机中梯度的计算,Pytoch自动梯度效果,如何使用原生Python实现一个简单的神经网络,以及对应Pytorch实现。 神经网络原…...
使用DeepSeek AI高效降低论文重复率
一、论文查重原理与DeepSeek降重机制 1.1 主流查重系统工作原理 文本比对算法:连续字符匹配(通常13-15字符)语义识别技术:检测同义替换和结构调整参考文献识别:区分合理引用与不当抄袭跨语言检测:中英文互译内容识别1.2 DeepSeek降重核心技术 深度语义理解:分析句子核心…...
【3D文件】3D打印迪迦奥特曼,3D打印的迪迦圣像,M78遗迹管理局,5款不同的3D打印迪迦免费下载,总有一款适合你
【3D文件】3D打印迪迦奥特曼,3D打印的迪迦圣像,M78遗迹管理局,5款不同的3D打印迪迦免费下载,总有一款适合你 资源下载: 3D文件AI生成器,机器学习生成,AI生成3D文件,3D打印迪迦奥特…...
【未解决】Spring AI 1.0.0-M6 使用 Tool Calling 报错,请求破解之法
1.报错 2.Java 代码 2.1 pom.xml <dependencyManagement><dependencies><!-- Spring AI --><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>1.0.0-M6</ver…...
第 2 篇:快速上手 Framer Motion(实操入门)
1. 环境准备 在开始使用 Framer Motion 之前,你需要先确保你的开发环境中已经设置好了 React 项目。我们将使用 Next.js 作为示例,如果你是使用其他 React 框架,步骤也基本相同。 1.1 创建一个 Next.js 项目 如果你还没有创建 Next.js 项目…...
如何写好合同管理系统需求分析
引言 在当今企业数字化转型的浪潮中,合同管理系统作为企业法律合规和商业运营的重要支撑工具,其需求分析的准确性和完整性直接关系到系统建设的成败。本文基于Volere需求过程方法论,结合江铃汽车集团合同管理系统需求规格说明书实践案例&…...
C语言自定义类型详解一:结构体(内存对齐)
结构体的声明: 结构体是一些值的集合,这些值是成员变量,结构体的每个成员可以是不同类型的变量(包括其他结构体变量) 类如:描述一个学生 struct Stu {char name[200];int age;char sex[5];//性别char id…...
GitHub配置密钥
1.生成SSH密钥 1)检查 SSH 密钥是否存在 首先,确认是否已经在本地系统中生成了 SSH 密钥对。可以通过以下命令检查: ls -al ~/.ssh 在命令输出中,应该能看到类似 id_rsa 和 id_rsa.pub 这样一对文件。如果这些文件不存在&#…...
PyTorch逻辑回归总结
目录 PyTorch逻辑回归总结神经网络基础基本结构学习路径 线性回归简单线性回归多元线性回归 逻辑回归核心原理损失函数 梯度下降法基本思想关键公式学习率影响 PyTorch实现数据准备模型构建代码优化 核心概念对比 PyTorch逻辑回归总结 神经网络基础 基本结构 输入节点隐藏节…...
Browser-use 是连接你的AI代理与浏览器的最简单方式
AI MCP 系列 AgentGPT-01-入门介绍 Browser-use 是连接你的AI代理与浏览器的最简单方式 AI MCP(大模型上下文)-01-入门介绍 AI MCP(大模型上下文)-02-awesome-mcp-servers 精选的 MCP 服务器 AI MCP(大模型上下文)-03-open webui 介绍 是一个可扩展、功能丰富且用户友好的…...
nginx自编译重现gzip和chunked的现象
前言 最近做项目,发现一个比较好玩的事,nginx的module gzip模式默认支持1KB压缩,和chunked返回,本来现在的很多框架都很完善了,但是,一些新语言框架或者一些老旧框架会不能完整支持chunked,导致…...
RNN - 循环神经网络(概念介绍)
RNN 潜变量自回归模型 使用潜变量 h t h_t ht 总结过去信息 p ( h t ∣ h t − 1 , x t − 1 ) p(h_t | h_{t-1}, x_{t-1}) p(ht∣ht−1,xt−1) p ( x t ∣ h t , x t − 1 ) p(x_t | h_t, x_{t-1}) p(xt∣ht,xt−1) 循环神经网络 更新隐藏状态࿱…...
OpenCV的详细介绍与安装(一)
1.OpenCV概述 OpenCV是一个开源的计算机视觉和机器学习软件库, 它轻量级而且高效——由一系列 C 函数和少量 C 类构成,它支持多种编程语言(如C、Python、Java),并可在Windows、Linux、macOS、Android和iOS等平台上运行…...
50、Spring Boot 详细讲义(七) Spring Boot 与 NoSQL
七 Spring Boot 与 NoSQL 目录 MongoDB 集成Redis 集成Elasticsearch 集成1、 MongoDB 集成 1.1 MongoDB 概述 1.1.1 MongoDB 的基本概念 文档型数据库: 数据存储为类似 JSON 的文档结构(BSON 格式)。每个文档由字段和值对组成,类似于键值对。支持嵌入式文档和数组,灵活…...
微信小程序组件传参
微信小程序组件传参感觉和vue还是挺像的 父组件向子组件传参 在小程序中父组件子组件传参,主要使用properties属性。演示下: 创建组件文件夹component,创建组件demoComponent,记得创建的时候选择组件,不是page页面 …...
C++实用函数:bind
本篇来介绍了C++中bind功能。 1 std::bind 在 C++ 里,std::bind 是一个函数模板,其作用是创建一个可调用对象,该对象可绑定到一组参数上。std::bind 的函数原型如下: template< class F, class... Args > /*unspecified*/ bind( F&& f, Args&&...…...
C# 程序结构||C# 基本语法
原文:C# 程序结构_w3cschool (注:本文为教程文章,请勿标记为付费文章!特此声明) 本节我们将学习 C# 编程语言的结构,为了让大家能够对 C# 程序结构有个更好的理解,我们会先演示一个…...
分库分表-除了hash分片还有别的吗?
在分库分表的设计中,除了常见的 Hash 分片,还有多种策略根据业务场景灵活选择。以下是几种主流的分库分表策略及其应用场景、技术实现和优缺点分析,结合项目经验(如标易行投标服务平台的高并发场景)进行说明: 一、常见分库分表策略 1. 范围分片(Range Sharding) 原理:…...
单片机非耦合业务逻辑框架
在小型单片机项目开发初期,由于业务逻辑相对简单,我们往往较少关注程序架构层面的设计。 然而随着项目经验的积累,开发者会逐渐意识到模块间的耦合问题:当功能迭代时,一处修改可能引发连锁反应。 此时,构…...
WordPress - 此站点出现严重错误
本篇讲 当WordPress出现 此站点出现严重错误 时,该如何解决。 目录 1,现象 2, FAQ 3,管理Menu无法打开 下面是详细内容。 1,现象 此站点出现严重错误(このサイトで重大なエラーが発生しました&#x…...
Java EE(8)——线程安全总结(翻新版)——定时器(Timer)线程池(ThreadPoolExecutor)
1.Timer 1.1Timer基本介绍 1.Timer的主要作用 任务调度:Timer允许你安排一个任务在未来的某个时间点执行,或者以固定的间隔重复执行 后台执行:Timer可以使用一个后台线程来执行任务,这意味着调度和执行任务不会阻塞主线程(主线程…...
#[特殊字符]Rhino建模教程 · 第一章:正方体建模入门
🦏Rhino建模教程 第一章:正方体建模入门 本章将从最基础的操作入手,带你一步步掌握Rhino建模的核心流程,适合新手或需要复习基础的用户。 🎯 目标:制作一个带凹槽、圆角、封盖的正方体模型,并…...
How to run ERSEM
Build ERSEM Make a “build” folder, and go into the build folder. Create “build_archer2.edit.sh” #!/usr/bin/env bash# Script for compiling FVCOM-FABM-ERSEM for ARCHER2 # # The build is split into three phases: # # 1) Build the FABM-ERSEM library. Her…...
关于QT5项目只生成一个CmakeLists.txt文件
编译器自动检测明明可以检测,Kit也没有报红 但是最后生成项目只有一个文件 一:检查cmake版本,我4.1版本cmake一直报错 cmake3.10可以用 解决之后还是有问题 把环境变量加上去:...
C++ string类
1.标准库中的string类 在 C 里,string类属于标准库的一部分,它在<string>头文件中定义,用于处理和操作字符串。 1.1string类的常用接口说明 1.1.1. string类对象的常见构造 string() (重点) 构造空的string类…...
如何使用ChatGPT撰写短视频爆款文案
短视频已经成为了互联网内容消费的重要形式,吸引观众的眼球成为内容创作者的首要任务。在短视频平台的内容过载中,如何写出一篇能够迅速吸引观众点击、分享并获得高互动的爆款文案,是每个短视频创作者都在追求的目标。今天,我们将…...
基于Tesseract与Opencv的电子发票识别[1]
本文我们将尝试使用tesseract识别电子发票上的信息并不断提高识别准确率,是一个逐渐调整的过程,仅用于记录研究过程。 图像识别:使用tesseract识别。图像预处理:使用OpenCV等图像处理库对发票图像进行预处理,如灰度化…...
数据库—函数笔记
一,数据库函数的分类 内置函数(Built-in Functions) 数据库系统自带的函数,无需额外定义即可直接调用。 聚合函数:对数据集进行计算(如 SUM, AVG, COUNT)。 字符串函数:处理文本数据…...
产品研发流程说明记录
1. 前言 在小型公司,产品研发流程通常较为简单,需求提出后经过简单评审便直接开发上线。而在中大型互联网公司,研发流程更加规范和系统,涉及多部门协作和多环节把控。本文将详细介绍一个标准的产品需求研发流程,帮助相…...
智慧城市:如同为城市装上智能大脑,开启智慧生活
智慧城市的概念随着信息技术的飞速发展而逐渐兴起,它通过集成物联网、大数据、人工智能和数字孪生等先进技术,为城市管理和居民生活带来了前所未有的智能化变革。本文将深入探讨这些核心技术及其在智慧城市的典型应用场景,展示智慧城市如何提…...
游戏测试入门知识
高内聚指的是一个模块或组件内部的功能应该紧密相关。这意味着模块内的所有元素都应该致力于实现同一个目标或功能,并且该模块应当尽可能独立完成这一任务。 低耦合则是指不同模块之间的依赖程度较低,即一个模块的变化对其它模块造成的影响尽可能小。理…...
Sentinel源码—2.Context和处理链的初始化二
大纲 1.Sentinel底层的核心概念 2.Sentinel中Context的设计思想与源码实现 3.Java SPI机制的引入 4.Java SPI机制在Sentinel处理链中的应用 5.Sentinel默认处理链ProcessorSlot的构建 4.Java SPI机制在Sentinel处理链中的应用 (1)初始化Entry会初始化处理链 (2)初始化处…...
Java基础第20天-JDBC
JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题,程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,从而完成对数据库的各种操作 ResultSet 表示数据库结果集的数据表,通常通过执行查询数据库的语句生…...
VMware下Ubuntu空间扩容
目的: Ubuntu空间剩余不足,需要对Ubuntu进行扩容。 使用工具: 使用Ubuntu系统中的gparted工具进行系统扩容。 前提: 1、电脑有多余的未分配磁盘空间,比如我的Ubuntu磁盘G盘是200G,现在快满了,…...
第十一章 网络编程
在TCP/IP协议中,“IP地址TCP或UDP端口号”唯一标识网络通讯中的一个进程。 因此可以用Socket来描述网络连接的一对一关系。 常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)…...
Bad Request 400
之前一直以为400就是前端代码有问题 这下遇到了,发现是因为前后端不一致 后端代码注意:现在我写的int 前端请求 原因 :前后端不一致 💡 问题核心:后端 amount 类型是 int,但前端传了小数 237.31...
行业深度:金融数据治理中的 SQL2API 应用创新
金融行业作为数据密集型领域,面临着监管合规要求严苛、数据交互频次高、安全风险防控难度大等多重挑战。SQL2API 技术通过 “数据服务化 合规化” 的双重赋能,成为金融机构破解数据治理难题的核心工具,在多个关键场景实现突破性创新。 &…...