零基础学python(持续更新中。。。)

零基础学python

打印

#sep是几个字符中间依靠什么连接,默认空字符
print('hello jwq','zhn','zzz',sep='|')
#end是结尾什么连接,默认\n,换行
print('hello',end=',')

数值类型

#int 整型 type() 里面是判断类型
num=1
print(type(num))
#打印内容<class 'int'>#float 浮点型
num=0.5
print(type(num))
#打印内容<class 'float'>#bool 布尔类型 False True 大小写固定写法 这两个也可以当做整型False=0  True=1
num=True
print(type(num))
#打印内容<class 'bool'>#complex 复数型 其中的2为实部,3为虚部,j为虚数单位,这个也只能是j
num=2+3j
print(type(num))
#打印内容<class 'complex'>
num1=2+3j
num2=3+2j
print(num1+num2)
#打印内容(5+5j)#str 字符串类型
num='123'
print(type(num))
#打印内容<class 'str'>

格式化输出

#%s格式化输出 占位符 注意% name 中间空一格,不空也能输出,最好空一下
name='jwq'
print('我的名字:%s' % name)#%d 整数输出 其中的4位数字位数,刚好为顶格,有多前面会加空格(前面设置了0(如04)除外,会用0补齐),少了还是正常显示
name='jwq'
age=12
print('我的名字:%s,我的年龄:%04d' % (name,age))#%f 浮点数 默认后面补6位,遵循四舍五入 .2一定要加点,不加就是整数(会变成默认6位),加了位数就不遵循四舍五入了,直接舍去
age=1.2337
print('%.2f' % age)#%% 后面加()就行了
print('我是%%的%%' % ())
#输出 我是%的%#f格式化 类似于模板语法
name='jwq'
age=18
print(f'我的名字:{name},我的年龄:{age}')
#输出 我的名字:jwq,我的年龄:18

算数运算符

#加法
print(1+1)
#输出 2#减法
print(1-1)
#输出 0#乘法
print(1*1)
#输出 1#除法 商一定是浮点型,且除数不能为0,向下取整,只要未被除尽一直除,不四舍五入
print(1/3)
#输出 0.3333333333333333#取余 除法取余数
print(4%3)
#输出 1#幂 相当于2的3次方
print(2**3)
#输出 8 #取整除 若有浮点数,也会用浮点数
print(3//2)
#输出 1
#如下
print(5.6//2)
print(5//2.0)
#都输出 2.0#优先级顺序 可以用()调整优先级>乘除取余取整除>加减#+= 赋值运算符 等同于a1=a1+1
a1=1
a1+=a1
print(a1)
#输出 2#+= 赋值运算符 等同于a1=a1-1
a1=1
a1-=a1
print(a1)
#输出 0

输入函数

name=input("请输入你的名字:")
print(name)
#输出 请输入你的名字:123
#输出 123

转义符

#制表符 \t 通常占用四个字符
print('姓名\t年龄\t电话')
#输出 姓名	年龄	电话#换行符 \n 
print('姓名\n年龄\n电话')
#输出 姓名		
#输出 年龄
#输出 电话#回车符 \r 将当前位置移到最开头
print('姓名\r年龄\r电话')
#输出 电话#反斜杠 \\ 
print('姓名\\年龄\\电话')
#输出 姓名\年龄\电话#r 就是里面不转义,取消转义
print(r'姓名\\年龄\\电话')
#输出 姓名\\年龄\\电话

if判断

age=19
if age<18:print("你还没有成年哦!")
else:print('你成年了')
#输出 你成年了#在写一个成绩判断
score=input('请输入你的成绩:')
if score<'60':print("成绩不合格!")
else:print(f'成绩合格了,成绩为{score}')
#输入 请输入你的成绩:99
#输出 请输入你的成绩:99

比较运算符

# ==
print(100 == 100)
#输出 True# !=
print(100 != 100)
#输出 False# > <
print(100 > 90)
print(100 < 90)
#输出 True
#输出 False

逻辑运算符

# and 两边都为真才是真,一边为假就是假
print(100>90 and 90>80)
#输出 True# or 一边为真就是真
print(100>90 or 90<80)
#输出 True# not 表示相反结果 本来为假,加入了not就为真
print(not 100<90)
#输出 True

三目运算(三元表达式)

age=19
print("你还没有成年哦!") if age<18 else print('你成年了')
#输出 你成年了#elif 第n个判断条件
age=19
if age<18:print("你还没有成年哦!")
elif 18<age<23:print('你在读大学哦')
elif age>23 :print('你已经长大了')
#输出 你在读大学哦# if嵌套
score=input('请输入你的成绩:')
if score<'60':print('成绩不合格')
else :if '60'<score<'80':print('成绩及格')elif '80'<score<'90':print('成绩良好')else:print('成绩优秀')
#输入 请输入你的成绩:91
#输出 成绩优秀

循环

# while循环 如果while循环条件一直为true,那么就是死循环,比如这里不加i+=1
i=1
while i<5:print('继续努力!')i+=1
#输出 继续努力!
#输出 继续努力!
#输出 继续努力!
#输出 继续努力!# while循环嵌套
i=1
while i<3:print('继续努力!')i+=1j=1while j<3:print('天天向上!')j+=1
#输出 继续努力!
#输出 天天向上!
#输出 天天向上!
#输出 继续努力!
#输出 天天向上!
#输出 天天向上!# for循环(迭代循环)
str='abcd'
for i in str :print(i)
#输出 a
#输出 b
#输出 c
#输出 d# range循环计数器 第一个参数是开始,第二个参数是结束,第三个是步长,遵循左闭右开
for i in range(0,3) :print(i)
#输出 0
#输出 1
#输出 2#做一个1+2+3+...+100的结果
num=0
for i in range(1,101) :num+=i
print(f'最终的计算结果:{num}')
#输出 最终的计算结果:5050# break 直接退出循环
num=0
for i in range(1,5) :num+=iprint(i)if num==3:print('我等于3了,该直接退出了')break
#输出 1
#输出 2
#输出 我等于3了,该直接退出了# continue
num=0
for i in range(1,5) :num+=iprint(i)if num==3:print('我等于3了,该退出当前循环了')continue
#输出 1
#输出 2
#输出 我等于3了,该退出当前循环了
#输出 3
#输出 4

编码

# Unicode
name='jwq'
name1=name.encode()
name2=name1.decode()
print(name1)
print(name2)
#输出 b'jwq'
#输出 jwq#uft-8
name='蒋先生'
name1=name.encode('utf-8')
name2=name1.decode('utf-8')
print(name1)
print(name2)
#输出 b'\xe8\x92\x8b\xe5\x85\x88\xe7\x94\x9f'
#输出 蒋先生

字符串运算符

# +
name='蒋先生'
name1='太帅了'
print(name+name1)# *
name='蒋先生'
name1='太帅了\n'
print((name+name1)*2)
#输出 蒋先生太帅了
#输出 蒋先生太帅了# in not in
name='jwq'
print('j' in name)
print('j' not in name)
#输出 True
#输出 False#[] 下标开始从0开始,从右往左 -1开始
name='jwq'
print(name[0])
print(name[-1])
#输出 j
#输出 q
#切片
name='jwq'
print(name[0:2])
print(name[0:-1])
print(name[1:])
print(name[:1])
print(name[:])
print(name[0::2]) #步长为2去切
print(name[0:2:2])#0-2步长为2去切
#输出 jw
#输出 jw
#输出 #输出 wq
#输出 j
#输出 jwq
#输出 jq
#输出 j

字符串常见操作

# find,index 寻找字符串,如果存在就返回字符串所在下标,find如果不在则返回-1,index直接报错
name='jwq'
print(name.find('w'))
print(name.index('w'))
#输出 1
#输出 1# count 某个字符在字符串中出现的次数,不存在显示0
name='jwqqwj'
print(name.count('w'))
#输出 2# startswith 某个字符串是否在这个字符串开头,如果给定一个范围就在范围中寻找
# endswith 看结尾,其他同上
name='jwqqwj'
print(name.startswith('jwq'))
print(name.endswith('wj'))
#输出 True
#输出 True# isupper 所有字母是否为大写
name='jwqqwj'
print(name.isupper())# replace 替换
name='jwqqwj'
print(name.replace('j','z'))
print(name.replace('j','z',1))
#输出 zwqqwz
#输出 zwqqwj#切割 根据指定的分割符来进行分割,这里以逗号为例
name='jwq,qwj'
print(name.split(','))
#输出 ['jwq', 'qwj']# capitalize 第一个字符大写,其他都小写
name='jwq,qwj'
print(name.capitalize())
#输出 Jwq,qwj# lower 全部小写
name='JWQQWJ'
print(name.lower())
#输出 jwqqwj# upper 全部转为大写
name='jwqqwj'
print(name.upper())
#输出 JWQQWJ

list

list=[1,2,'jwq',3]
print(list)
#输出 [1,2,'jwq',3]# append 添加对象
list=[1,2,'jwq',3]
list.append('zhn')
print(list)
#输出 [1, 2, 'jwq', 3, 'zhn']# extend 分散添加 添加的对象一定是可迭代的
list=[1,2,'jwq',3]
list.extend('zhn')
print(list)
#输出 [1, 2, 'jwq', 3, 'z', 'h', 'n']# insert 下标添加 指定位置如果有元素,则元素后移
list=[1,2,'jwq',3]
list.insert(4,'zhn')
print(list)
#输出 [1, 2, 'jwq', 3, 'zhn']# [] 通过下标修改
list=[1,2,'jwq',3]
list[0]=3
print(list)
#输出 [3, 2, 'jwq', 3]# in not in 元素是否存在字符串中
list=[1,2,'jwq',3]
print(2 in list)
print(2 not in list)
#输出 True
#输出 False# del 删除元素
list=[1,2,'jwq',3]
del list[1]
print(list)
#输出 [1, 'jwq', 3]# pop 删除指定下标元素 默认删除最后一个
list=[1,2,'jwq',3]
list.pop(1)
print(list)
#输出 [1, 'jwq', 3]# remove 删除指定元素
list=[1,2,'jwq',3]
list.remove(2)
print(list)
#输出 [1, 'jwq', 3]# sort 排序 默认从小到大
list=[1,55,3,18]
list.sort()
print(list)
#输出 [1, 3, 18, 55]# reverse 倒序
list=[1,55,3,18]
list.reverse()
print(list)
#输出 [18, 3, 55, 1]#列表推导式
list=[]
[list.append(i) for i in range(1,6)]
print(list)
[list.append(i) for i in range(1,6) if i%2==1]
print(list)
#输出 [1, 2, 3, 4, 5]
#输出 [1, 3, 5]

元组

# 元组 只有一个元素时,末尾加逗号 元组只能查询,不可以增删改
tup=(1,2,3,'jwq')
print(type(tup))
#输出 <class 'tuple'>

字典

# 字典键是惟一的,值可以重复
dic={'name':'jwq','age':18}
print(type(dic))
#输出 <class 'dict'># [键名] .get(键名) .get这个键名不存在,返回None
dic={'name':'jwq','age':18}
print(dic['name'])
print(dic.get('name'))
#输出 jwq
#输出 jwq# 修改键值
dic={'name':'jwq','age':18}
dic['age']=20
print(dic)
#输出 {'name': 'jwq', 'age': 20}# 添加元素
dic={'name':'jwq','age':18}
dic['size']=20
print(dic)
#输出 {'name': 'jwq', 'age': 18, 'size': 20}#删除元素
dic={'name':'jwq','age':18}
del dic['name']
print(dic)
#输出 {'age': 18}# pop 删除指定元素
dic={'name':'jwq','age':18}
dic.pop('name')
print(dic)
dic.popitem() #3.7版本以前随机删除,3.7以后默认删除最后一个
print(dic)
#输出 {'age': 18}
#输出 {'name': 'jwq'}#清空字典
dic={'name':'jwq','age':18}
dic.clear()
print(dic)
#输出 {}#长度
dic={'name':'jwq','age':18}
print(len(dic))
#输出 2# keys() 返回所有键名
dic={'name':'jwq','age':18}
print(dic.keys())
#输出 dict_keys(['name', 'age'])# values() 返回所有键值
dic={'name':'jwq','age':18}
print(dic.values())
#输出 dict_values(['jwq', 18])# items() 键值对以元组的形式
dic={'name':'jwq','age':18}
print(dic.items())
#输出 dict_items([('name', 'jwq'), ('age', 18)])

集合

# 定义空集合使用set() 集合具有无序性,每次运行都是随机打乱的,数字除外,集合无序是因为涉及hash表,数字为什么不变,是因为hash中数字是它本身,不能修改集合中的值,集合有唯一性,可以自动去重,集合只有添加和删除
s={1,2,3}
print(type(s))
#输出 <class 'set'># add 添加 一次只能添加一个元素
s={1,2,3}
s.add(4)
print(s)
#输出 {1, 2, 3, 4}# update 把传入元素拆分,一个个放进集合,由于无序性,每次运行都不一样 元素必须是能够被我们for循环取值的可迭代对象
s={1,2,3}
s.update('456')
print(s)
#输出{1, 2, 3, '4', '6', '5'}# remove 删除元素
s={1,2,3}
s.remove(1)
print(s)
#输出 {2, 3}# pop 默认删除第一个
s={1,2,3}
s.pop()
print(s)
#输出 {2, 3}# discard 有这个值就删除,没有不做改变
s={1,2,3}
s.discard(2)
print(s)
#输出 {1, 3}# & 交集
s1={1,2,3}
s2={2,3,4}
print(s1 & s2)
#输出 {2, 3}# | 并集
s1={1,2,3}
s2={2,3,4}
print(s1 | s2)
#输出 {1, 2, 3, 4}

类型转换

# int() 浮点型强转为整型,去掉小数点
age=12.2
print(int(age))
#输出 12# float() 整型强转为浮点型,加小数点
age=12
print(float(age))
#输出 12.0# str() 整型强转为字符型
age=12
print(type(str(age)))
#输出 <class 'str'># eval 计算字符串里面数字 它也是可以实现list、dict、tuple和str之间的转换
a=eval('10+10')
print(a)
print(type(a))
#输出 20
#输出 <class 'int'># list 支持转换成list的类型:str、tuple、dict、set
a=(1,2,3)
print(list(a))
#输出 [1, 2, 3]

深浅拷贝

# 深浅拷贝只针对可变对象(可变对象定义看下面)
# 浅拷贝 赋值内存地址是一样的
list1=[1,2,3,4]
list2=list1
print('list1:',list1)
print('list2:',list2)
list1.append(5)
print('list1:',list1)
print('list2:',list2)
#输出 list1: [1, 2, 3, 4]
#输出 list2: [1, 2, 3, 4]
#输出 list1: [1, 2, 3, 4, 5]
#输出 list2: [1, 2, 3, 4, 5]# 浅拷贝 copy id的内存地址是不同的 嵌套列表中一起改变了,因为他们的内存地址是一样的
import copy
list1=[1,2,3,4,[5,6,7]]
list2=copy.copy(list1)
print('list1:',list1)
print('list2:',list2)
list1.append(5)
print('list1:',list1)
print('list2:',list2)
list1[4].append(8)
print('list1:',list1)
print('list2:',list2)
print('list1[4]:',id(list1[4]))
print('list2[4]:',id(list2[4]))
#输出 list1: [1, 2, 3, 4, [5, 6, 7]]
#输出 list2: [1, 2, 3, 4, [5, 6, 7]]
#输出 list1: [1, 2, 3, 4, [5, 6, 7], 5]
#输出 list2: [1, 2, 3, 4, [5, 6, 7]]
#输出 list1: [1, 2, 3, 4, [5, 6, 7, 8], 5]
#输出 list2: [1, 2, 3, 4, [5, 6, 7, 8]]
#输出 list1[4]: 2033598556040
#输出 list2[4]: 2033598556040#深拷贝(数据完全不共享) 可以看到无论是外层还是内层都是不一样的
import copy
list1=[1,2,3,4,[5,6,7]]
list2=copy.deepcopy(list1)
print('list1:',list1)
print('list2:',list2)
list1.append(5)
print('list1:',list1)
print('list2:',list2)
list1[4].append(8)
print('list1:',list1)
print('list2:',list2)
print('list1[4]:',id(list1[4]))
print('list2[4]:',id(list2[4]))
#输出 list1: [1, 2, 3, 4, [5, 6, 7]]
#输出 list2: [1, 2, 3, 4, [5, 6, 7]]
#输出 list1: [1, 2, 3, 4, [5, 6, 7], 5]
#输出 list2: [1, 2, 3, 4, [5, 6, 7]]
#输出 list1: [1, 2, 3, 4, [5, 6, 7, 8], 5]
#输出 list2: [1, 2, 3, 4, [5, 6, 7]]
#输出 list1[4]: 1585437960072
#输出 list2[4]: 1585437961480

可变对象

# 定义:变量对应的值可以改变,但是内存地址是不变的
# 常见可变类型 list、dict、set,拿字典、集合举例
dic={'name':'jwq','age':18}
print(id(dic['name']))
dic['name']='zhn'
print(id(dic['name']))
set={1,2,3,4}
print(set,id(set))
set.remove(1)
print(set,id(set))
#输出 2547392693280
#输出 2547392693560
#输出 {1, 2, 3, 4} 2864694744904
#输出 {2, 3, 4} 2864694744904

不可变对象

# 定义:变量对应的值不能被修改,如果修改就会生成一个新的值从而分配新的内存空间
n=10
print(n,id(n))
n=20
print(n,id(n))
#输出 10 1855956352
#输出 20 1855956672

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/20667.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

剑指 Offer II 024. 反转链表

comments: true edit_url: https://github.com/doocs/leetcode/edit/main/lcof2/%E5%89%91%E6%8C%87%20Offer%20II%20024.%20%E5%8F%8D%E8%BD%AC%E9%93%BE%E8%A1%A8/README.md 剑指 Offer II 024. 反转链表 题目描述 给定单链表的头节点 head &#xff0c;请反转链表&#xff…

通过API 调用本地部署 deepseek-r1 模型

如何本地部署 deepseek 请参考&#xff08;windows 部署安装 大模型 DeepSeek-R1&#xff09; 那么实际使用中需要开启API模式&#xff0c;这样可以无拘无束地通过API集成的方式&#xff0c;集成到各种第三方系统和应用当中。 上遍文章是基于Ollama框架运行了deepSeek R1模型…

【产品经理】需求分析方法论+实践

阐述了需求分析的基本认知&#xff0c;包括需求分析的定义、原则和内容。接着&#xff0c;文章详细介绍了需求分析的十个步骤&#xff0c;从收集需求到结果评审&#xff0c;为产品经理提供了清晰的操作指南。 作为产品经理&#xff0c;需求分析是一个最基本的工作&#xff0c;但…

【玩转 Postman 接口测试与开发2_020】(完结篇)DIY 实战:随书示例 API 项目本地部署保姆级搭建教程(含完整调试过程)

《API Testing and Development with Postman》最新第二版封面 文章目录 最新版《Postman 接口测试与开发实战》示例 API 项目本地部署保姆级搭建教程1 前言2 准备工作3 具体部署3.1 将项目 Fork 到自己名下3.2 创建虚拟环境并安装依赖3.3 初始运行与项目调试 4 示例项目的用法…

2025年02月19日Github流行趋势

项目名称&#xff1a;OmniParser 项目地址url&#xff1a;https://github.com/microsoft/OmniParser 项目语言&#xff1a;Jupyter Notebook 历史star数&#xff1a;12878 今日star数&#xff1a;2153 项目维护者&#xff1a;yadong-lu, ThomasDh-C, aliencaocao, nmstoker, kr…

侯捷 C++ 课程学习笔记:设计模式在面向对象开发中的应用

在侯捷老师的《C 面向对象开发》课程中&#xff0c;除了对面向对象编程的基础特性&#xff08;封装、继承和多态&#xff09;的深入讲解外&#xff0c;还引入了设计模式这一高级主题。设计模式是面向对象编程中的一种最佳实践&#xff0c;能够帮助开发者解决常见的设计问题&…

前七章综合练习

一&#xff0c;拓扑图 二&#xff0c;实验要求 不限 三&#xff0c;实验步骤 第一步&#xff0c;搭建拓扑图 如上 注意&#xff1a; 第二步&#xff0c;配置IP trust&#xff1a; client1 client2 fw untrusrt-1&#xff1a; fw r3 电信DNS 百度web-1 untrust-2&#xf…

个人shell脚本分享

在周一到周五做增量备份&#xff0c;在周六周日做完全备份 #!/bin/bash定义变量 SRC“/path/to/source” # 源目录 BKUP“/backup” # 备份主目录 FUL“KaTeX parse error: Expected EOF, got # at position 22: …ull" #̲ 完全备份目录 INC"BKUP/inc” # 增量备份…

C语言之函数封装技巧

目录 前言 一、函数在源代码中的三种状态 二、函数封装的运用 案例1&#xff1a;实现打印20以内的素数 案例2&#xff1a;存放因子数并返回长度 三、return返回与形参返回 四、<>与“” 五、解耦 总结 前言 在C语言中&#xff0c;函数封装是一种重要的技巧&#…

深度神经网络终极指南:从数学本质到工业级实现(附Keras版本代码)

深度神经网络终极指南&#xff1a;从数学本质到工业级实现&#xff08;附Keras版本代码&#xff09; 为什么深度学习需要重新理解&#xff1f;&#xff08;与浅层模型的本质差异&#xff09; 模型类型参数容量特征学习方式适合问题类型浅层模型102-104手动特征工程低维结构化数…

vue3 + thinkphp 接入 七牛云 DeepSeek-R1/V3 流式调用和非流式调用

示例 如何获取七牛云 Token API 密钥 https://eastern-squash-d44.notion.site/Token-API-1932c3f43aee80fa8bfafeb25f1163d8 后端 // 七牛云 DeepSeek API 地址private $deepseekUrl https://api.qnaigc.com/v1/chat/completions;private $deepseekKey 秘钥;// 流式调用pub…

IIS asp.net权限不足

检查应用程序池的权限 IIS 应用程序池默认使用一个低权限账户&#xff08;如 IIS_IUSRS&#xff09;&#xff0c;这可能导致无法删除某些文件或目录。可以通过以下方式提升权限&#xff1a; 方法 1&#xff1a;修改应用程序池的标识 打开 IIS 管理器。 在左侧导航树中&#x…

代码解读:如何将HunYuan T2V模型训练成I2V模型?

Diffusion models代码解读:入门与实战 前言:HunYuan T2V模型出来很久了,但是想要训练成I2V的模型还是有点难度。此外,还有很多预训练视频模型都是T2V的,可以借鉴本文的方法加入参考图作为条件,并严格保持视频的第一帧与Image一样。 目录 Patch Image Padding Channel …

windows事件倒计时器与提醒组件

widgets 这是桌面组件前端开源组件&#xff0c;作者称&#xff1a;项目还在持续完善中&#xff0c;目前包含键盘演示、抖音热榜、喝水提醒、生日列表、待办事项、倒计时、灵动通知、打工进度等多个组件 有vue编程能力的可以自己做组件 百度网盘 夸克网盘 桌面组件 | Ca…

汽车零部件工厂如何通过工业一体机实现精准控制

在汽车制造行业中&#xff0c;零部件的精度和质量直接关系到整车的性能与安全。随着汽车工业的快速发展&#xff0c;汽车零部件工厂对生产过程的精准控制提出了更高的要求。传统的生产管理模式往往依赖人工操作和分散的系统&#xff0c;难以满足现代汽车零部件工厂的需求。而工…

BMS保护板测试仪:电池安全与性能的坚实守护者

在新能源汽车、储能系统、电动工具等电池驱动型产品日益普及的今天&#xff0c;电池的安全性和性能成为了人们关注的焦点。而BMS保护板测试仪作为电池管理系统&#xff08;BMS&#xff09;中不可或缺的一部分&#xff0c;为电池的安全运行提供了有力保障。 BMS保护板测试仪的重…

Django的初步使用

1.安装Django pip install django 验证是否安装成功&#xff1a; $ python3 Python 3.8.10 (default, Jan 17 2025, 14:40:23) [GCC 9.4.0] on linux Type "help", "copyright", "credits" or "license" for more information. >…

(前端基础)CSS(一)

了解 Cascading Style Sheet&#xff1a;层叠级联样式表 CSS&#xff1a;表现层&#xff08;美化网页&#xff09;如&#xff1a;字体、颜色、边框、高度、宽度、背景图片、网页定位、网页浮动 css优势&#xff1a; 内容和表现分离网页结构表现统一&#xff0c;可以实现复用…

CASAIM与韩国DOOSAN集团达成合作,开启工业制造自动化检测新篇

近日&#xff0c;CASAIM与韩国知名跨国企业斗山集团&#xff08;DOOSAN&#xff09;达成战略合作&#xff0c;联合打造CASAIM全自动化智能检测系统&#xff0c;助力斗山集团全面提升产品质量检测精度与效率&#xff0c;完成智能化检测升级&#xff0c;保持在全球市场竞争中的领…

矛盾(WEB)

##解题思路 打开靶场就是一段自相矛盾的代码&#xff0c;既要num是数字类型&#xff0c;又要判断为1 这种情况我们会想到弱类型的编程语言&#xff0c;插件查看过后&#xff0c;php就是弱类型的语言&#xff0c;此处并非是严格相等&#xff0c;只是 因此可以根据弱类型编程语言…