Python基础语法

上传人:ph****6 文档编号:77093320 上传时间:2022-04-19 格式:DOC 页数:20 大小:75.50KB
收藏 版权申诉 举报 下载
Python基础语法_第1页
第1页 / 共20页
Python基础语法_第2页
第2页 / 共20页
Python基础语法_第3页
第3页 / 共20页
资源描述:

《Python基础语法》由会员分享,可在线阅读,更多相关《Python基础语法(20页珍藏版)》请在装配图网上搜索。

1、-Python的特点1. 简单Python是一种代表简单思想的语言。2. 易学Python有极其简单的语法。3. 免费、开源Python是FLOSS自由/开放源码软件之一。4. 高层语言使用Python编写程序时无需考虑如何管理程序使用的存一类的底层细节。5. 可移植性Python已被移植到很多平台,这些平台包括Linu*、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QN*、VMS、Psion、A RISC OS、V*Works、PlayStation、Sharp Zauru

2、s、Windows CE甚至还有PocketPC。6. 解释性可以直接从源代码运行。在计算机部,python解释器把源代码转换为字节码的中间形式,然后再把它翻译成计算机使用的机器语言。7. 面向对象Python既支持面向过程编程也支持面向对象编程。8. 可扩展性局部程序可以使用其他语言编写,如c/c+。9. 可嵌入型可以把Python嵌入到c/c+程序中,从而提供脚本功能。10. 丰富的库Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子、*ML、*ML-RPC、HTML、WAV文件、密码系统、GUI图形用

3、户界面、Tk和其他与系统有关的操作。-分割线-以下是Python的根本语法-一、根本概念1. python中数有四种类型:整数、长整数、浮点数和复数。整数, 如 1长整数 是比拟大的整数浮点数 如 1.23、3E-2复数 如 1 + 2j、 1.1 + 2.2j2. 字符串字符的序列python中单引号和双引号使用完全一样。使用三引号(或)可以指定一个多行字符串。转义符 自然字符串, 通过在字符串前加r或R。 如 rthis is a line with n 则n会显示,并不是换行。python允许处理unicode字符串,加前缀u或U, 如 uthis is an unicode strin

4、g。字符串是不可变的。按字面意义级联字符串,如this is string会被自动转换为this is string。3. 标识符的命名第一个字符必须是字母表中字母或下划线_。标识符的其他的局部有字母、数字和下划线组成。标识符对大小写敏感。4. 对象python程序中用到的任何东西都成为对象。5. 逻辑行和物理行物理行是我们在编写程序时看到的,逻辑行则是python看到的。python中分号;标识一个逻辑行的完毕,但是实际中一般每个物理行只写一个逻辑行,可以防止使用分号。多个物理行中可以写一个逻辑行,如下:s = peter is writing this article上面的使用被称为明确的

5、行连接, 又如:print peter6. 缩进空白在python是非常重要的,行首的空白是最重要的,又称为缩进。行首的空白空格和制表符用来决定逻辑行的缩进层次,从而决定语句分组。这意味着同一层次的语句必须有一样的缩进,每一组这样的语句称为一个块。注意:不要混合使用空格和制表符来缩进,因为在跨越不同的平台时无常工作。二、运算符与表达式1. 运算符与其用法运算符名称说明例子+加两个对象相加3 + 5得到8。a + b得到ab。-减得到负数或是一个数减去另一个数-5.2得到一个负数。50 - 24得到26。*乘两个数相乘或是返回一个被重复假设干次的字符串2 * 3得到6。la * 3得到lalal

6、a。*幂返回*的y次幂3 * 4得到81即3 * 3 * 3 * 3/除*除以y4/3得到1整数的除法得到整数结果。4.0/3或4/3.0得到1.33333/取整除返回商的整数局部4 / 3.0得到1.0%取模返回除法的余数8%3得到2。-25.5%2.25得到1.5左移把一个数的比特向左移一定数目每个数在存中都表示为比特或二进制数字,即0和12 右移把一个数的比特向右移一定数目11 1得到5。11按比特表示为1011,向右移动1比特后得到101,即十进制的5。&按位与数的按位与5 & 3得到1。|按位或数的按位或5 | 3得到7。按位异或数的按位异或5 3得到6按位翻转*的按位翻转是-(*+

7、1)5得到6。小于返回*是否小于y。所有比拟运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。5 3返回0即False而3 5返回1即True。比拟可以被任意连接:3 5 大于返回*是否大于y5 3返回True。如果两个操作数都是数字,它们首先被转换为一个共同的类型。否则,它总是返回False。=小于等于返回*是否小于等于y* = 3; y = 6; * =大于等于返回*是否大于等于y* = 4; y = 3; * = y返回True。=等于比拟对象是否相等* = 2; y = 2; * = y返回True。* = str; y = stR;

8、 * = y返回False。* = str; y = str; * = y返回True。!=不等于比拟两个对象是否不相等* = 2; y = 3; * != y返回True。not布尔非如果*为True,返回False。如果*为False,它返回True。* = True; not y返回False。and布尔与如果*为False,* and y返回False,否则它返回y的计算值。* = False; y = True; * and y,由于*是False,返回False。在这里,Python不会计算y,因为它知道这个表达式的值肯定是False因为*是False。这个现象称为短路计算。or布

9、尔或如果*是True,它返回True,否则它返回y的计算值。* = True; y = False; * or y返回True。短路计算在这里也适用。 2. 运算符优先级从低到高运算符描述lambdaLambda表达式or布尔或and布尔与not *布尔非in,not in成员测试is,is not同一性测试,=,!=,=比拟|按位或按位异或&按位与移位+,-加法与减法*,/,%乘法、除法与取余+*,-*正负号*按位翻转*指数*.attribute属性参考*inde*下标*inde*:inde*寻址段f(arguments.)函数调用(e*peression,.)绑定或元组显示e*pressi

10、on,.列表显示key:datum,.字典显示e*pression,.字符串转换 3. python 控制台输出 使用printprint abc #打印abc并换行print abc%s % d #打印abcdprint abc%sef%s % (d, g) #打印abcdefg三、控制流1. if 语句i = 10n = int(raw_input(enter a number:)if n = i: print equalelif n 删除一个变量/名称,del之后,该变量就不能再使用。六、数据构造python有三种建的数据构造:列表、元组和字典。1. 列表list是处理一组有序工程的数据

11、构造,列表是可变的数据构造。列表的工程包含在方括号中,eg: 1, 2, 3, 空列表。判断列表中是否包含*项可以使用in, 比方 l = 1, 2, 3; print 1 in l; #True;支持索引和切片操作;索引时假设超出围,则Inde*Error;使用函数len()查看长度;使用del可以删除列表中的项,eg: del l0 # 如果超出围,则Inde*Errorlist函数如下:appendvalue-向列表尾添加项valuel = 1, 2, 2l.append(3) #1, 2, 2, 3count(value)-返回列表中值为value的项的个数l = 1, 2, 2pri

12、nt l.count(2) # 2e*tend(list2)-向列表尾添加列表list2l = 1, 2, 2l1 = 10, 20l.e*tend(l1)print l #1, 2, 2, 10, 20inde*(value, start, stop)-返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueErrorl = 1, 2, 2a = 4try: print l.inde*(a)e*cept ValueError, ve: print there is no %d in list % ainsert(i, value)-向列表i位置插入项vlaue,如果没有i,则

13、添加到列表尾部l = 1, 2, 2l.insert(1, 100)print l #1, 100, 2, 2l.insert(100, 1000)print l #1, 100, 2, 2, 1000pop(i)-返回i位置项,并从列表中删除;如果不提供参数,则删除最后一个项;如果提供,但是i超出索引围,则异常Inde*Errorl = 0, 1, 2, 3, 4, 5print l.pop() # 5print l #0, 1, 2, 3, 4print l.pop(1) #1print l #0, 2, 3, 4try: l.pop(100)e*cept Inde*Error, ie:

14、print inde* out of rangeremove(value)-删除列表中第一次出现的value,如果列表中没有vlaue,则异常ValueErrorl = 1, 2, 3, 1, 2, 3l.remove(2)print l #1, 3, 1, 2, 3try: l.remove(10)e*cept ValueError, ve: print there is no 10 in listreverse()-列表反转l = 1, 2, 3l.reverse()print l #3, 2, 1sort(cmp=None, key=None, reverse=False)-列表排序【P

15、ython Library Reference】cmp:cmp specifies a custom parison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda *,y: cmp(*.low

16、er(), y.lower() key:key specifies a function of one argument that is used to e*tract a parison key from each list element: key=str.lowerreverse:reverse is a boolean value. If set to True, then the list elements are sorted as if each parison were reversed.In general, the key and reverse conversion pr

17、ocesses are much faster than specifying an equivalent cmp function. This is because cmp is called multiple times for each list element while key and reverse touch each element only once.l5 = 10, 5, 20, 1, 30l5.sort()print l5 #1, 5, 10, 20, 30l6 = bcd, abc, cde, bbbl6.sort(cmp = lambda s1, s2: cmp(s1

18、0,s21)print l6 #abc, bbb, bcd, cdel7 = bcd, abc, cde, bbb, fafl7.sort(key = lambda s: s1)print l7 #faf, abc, bbb, bcd, cde2. 元组tuple和list十分相似,但是tuple是不可变的,即不能修改tuple,元组通过圆括号中用逗号分割的项定义;支持索引和切片操作;可以使用 in查看一个元素是否在tuple中。空元组();只含有一个元素的元组(a,) #需要加个逗号优点:tuple比list速度快;对不需要修改的数据进展写保护,可以是代码更平安tuple与list可以相互转

19、换,使用置的函数list()和tuple()。l = 1, 2, 3print l # 1, 2, 3t = tuple(l)print t # (1, 2, 3)l1 = list(t)print l1 #1, 2, 3元组最通常的用法是用在打印语句,如下例:name = Peter Zhangage = 25print Name: %s; Age: %d % (name, age)# Name: Peter Zhang; Age: 25函数如下:count(value)-返回元组中值为value的元素的个数t = (1, 2, 3, 1, 2, 3)print t.count(2) # 2

20、inde*(value, start, stop)-返回列表中第一个出现的值为value的索引,如果没有,则异常 ValueErrort = (1, 2, 3, 1, 2, 3)print t.inde*(3) # 2try: print t.inde*(4)e*cept ValueError, ve: print there is no 4 in tuple # there is no 4 in tuple 3. 字典字典由键值对组成,键必须是唯一的;eg: d = key1:value1, key2:value2;空字典用表示;字典中的键值对是没有顺序的,如果想要一个特定的顺序,则使用前需

21、要对它们排序;dkey = value,如果字典中已有key,则为其赋值为value,否则添加新的键值对key/value;使用del dkey 可以删除键值对;判断字典中是否有*键,可以使用in 或 not in;d = d1 = oned2 = twod3 = threedel d3for key, value in d.items(): print %s - %s % (key, value)#1 - one#2 - twodict函数如下:clear()-删除字典中所有元素d1 = 1:one, 2:twod1.clear()print d1 # copy()-返回字典的一个副本(浅复

22、制)d1 = 1:one, 2:twod2 = d1.copy()print d2 #1: one, 2: twodict.fromkeys(seq,val=None) -创立并返回一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值(默认为None)l = 1, 2, 3t = (1, 2, 3)d3 = .fromkeys(l)print d3 #1: None, 2: None, 3: Noned4 = .fromkeys(t, default)print d4 #1: default, 2: default, 3: defaultget(key,default)-返

23、回字典dict中键key对应值,如果字典中不存在此键,则返回default 的值(default默认值为None)d5 = 1:one, 2:two, 3:threeprint d5.get(1) #oneprint d5.get(5) #Noneprint d5.get(5, test) #testhas_key(key)-判断字典中是否有键keyd6 = 1:one, 2:two, 3:threeprint d6.has_key(1) #Trueprint d6.has_key(5) #Falseitems()-返回一个包含字典中(键, 值)对元组的列表d7 = 1:one, 2:two,

24、 3:threefor item in d7.items(): print item#(1, one)#(2, two)#(3, three)for key, value in d7.items(): print %s - %s % (key, value)#1 - one#2 - two#3 - threekeys()-返回一个包含字典中所有键的列表d8 = 1:one, 2:two, 3:threefor key in d8.keys(): print key#1#2#3values()-返回一个包含字典中所有值的列表d8 = 1:one, 2:two, 3:threefor value

25、in d8.values(): print value#one#two#threepop(key, default)-假设字典中key键存在,删除并返回dictkey,假设不存在,且未给出default值,引发KeyError异常d9 = 1:one, 2:two, 3:threeprint d9.pop(1) #oneprint d9 #2: two, 3: threeprint d9.pop(5, None) #Nonetry: d9.pop(5) # raise KeyErrore*cept KeyError, ke: print KeyError:, ke #KeyError:5pop

26、item()-删除任意键值对,并返回该键值对,如果字典为空,则产生异常KeyErrord10 = 1:one, 2:two, 3:threeprint d10.popitem() #(1, one)print d10 #2: two, 3: threesetdefault(key,default)-假设字典中有key,则返回vlaue值,假设没有key,则加上该key,值为default,默认Noned = 1:one, 2:two, 3:threeprint d.setdefault(1) #oneprint d.setdefault(5) #Noneprint d #1: one, 2:

27、two, 3: three, 5: Noneprint d.setdefault(6, si*) #si*print d #1: one, 2: two, 3: three, 5: None, 6: si*update(dict2)-把dict2的元素参加到dict中去,键字重复时会覆盖dict中的键值d = 1:one, 2:two, 3:threed2 = 1:first, 4:forthd.update(d2)print d #1: first, 2: two, 3: three, 4: forthviewitems()-返回一个view对象,key, valuepair的列表,类似于视

28、图。优点是,如果字典发生变化,view会同步发生变化。在迭代过程中,字典不允许改变,否则会报异常d = 1:one, 2:two, 3:threefor key, value in d.viewitems(): print %s - %s % (key, value)#1 - one#2 - two#3 - threeviewkeys()-返回一个view对象,key的列表d = 1:one, 2:two, 3:threefor key in d.viewkeys(): print key#1#2#3viewvalues()-返回一个view对象,value的列表d = 1:one, 2:tw

29、o, 3:threefor value in d.viewvalues(): print value#one#two#three4. 序列序列类型是指容器的元素从0开场的索引顺序访问,一次可以访问一个或者多个元素;列表、元组和字符串都是序列;序列的两个主要特点是索引操作符和切片操作符;索引可以得到特定元素;切片可以得到局部序列; 1 numbers = zero, one, two, three, four 2 3 print numbers1 # one 4 print numbers-1 # four 5 #print numbers5 # raise Inde*Error 6 7 pri

30、nt numbers: # zero, one, two, three, four 8 print numbers3: # three, four 9 print numbers:2 # zero, one10 print numbers2:4 # two, three11 print numbers1:-1 # one, two, three 切片操作符中的第一个数冒号之前表示切片开场的位置,第二个数冒号之后表示切片到哪里完毕。 如果不指定第一个数,Python就从序列首开场。如果没有指定第二个数,则Python会停顿在序列尾。 注意,返回的序列从开场位置 开场 ,刚好在完毕位置之前 完毕。

31、即开场位置是包含在序列切片中的,而完毕位置被排斥在切片外。 可以用负数做切片。负数用在从序列尾开场计算的位置。5. 绑定当创立一个对象并给它赋一个变量的时候,这个变量仅仅指向那个对象,而不是表示这个对象本身! 也就是说,变量名指向计算机中存储那个对象的存,这被称作名称到对象的绑定。如果要复制一个列表或者类似的序列或者其他复杂的对象不是如整数那样的简单对象,则必须使用切片操作符来取得拷贝。七、面向对象编程python支持面向对象编程;类和对象是面向对象编程的两个主要方面,类创立一个新的类型,对象是这个类的实例。对象可以使用普通的属于对象的变量存储数据,属于对象或类的变量被称为域;对象也可以使用属

32、于类的函数,这样的函数称为类的方法;域和方法可以合称为类的属性。域有两种类型-属于实例的或属于类本身;它们分别被称为实例变量和类变量。类使用关键字class创立,类的域和方法被列在一个缩进块中。类的方法必须有一个额外的第一个参数,但是在调用时不为这个参数赋值,这个特殊变量指对象本身,按照惯例它的名称是self,类似C#中的this。class Animal: pass #empty block_init_方法在类的一个对象被创立时调用该方法;相当于c+中的构造函数。_del_方法在类的对象被销毁时调用该方法;相当于c+中的析构函数。在使用del删除一个对象时也就调用_del_方法。Python

33、中所有的类成员(包括数据成员)都是public的;只有一个例外,如果使用的数据成员以双下划线为前缀,则为私有变量。class Person: Count = 0 def _init_(self, name, age): Person.Count += 1 self.name = name self._age = agep = Person(peter, 25)p1 = Person(john, 20)print Person.Count #2print p.name #peterprint p._age #AttributeError: Person instance has no attri

34、bute _age继承:为了使用继承,基类的名称作为一个元组跟在类名称的后面;python支持多重继承。下面是一个关于继承的例子: 1 class SchoolMember: 2 Represent any school member. 3 def _init_(self, name, age): 4 self.name = name 5 self.age = age 6 print Initializing a school member. 7 8 def tell(self): 9 Tell my details10 print Name: %s, Age: %s, % (self.nam

35、e, self.age),11 12 class Teacher(SchoolMember):13 Represent a teacher.14 def _init_(self, name, age, salary):15 SchoolMember._init_(self, name, age)16 self.salary = salary17 print Initializing a teacher18 19 def tell(self):20 SchoolMember.tell(self)21 print Salary: %d % self.salary22 23 class Studen

36、t(SchoolMember):24 Represent a student.25 def _init_(self, name, age, marks):26 SchoolMember._init_(self, name, age)27 self.marks = marks28 print Initializing a student29 30 def tell(self):31 SchoolMember.tell(self)32 print Marks: %d % self.marks33 34 print SchoolMember._doc_35 print Teacher._doc_36

37、 print Student._doc_37 38 t = Teacher(Mr. Li, 30, 9000)39 s = Student(Peter, 25, 90)40 41 members = t, s42 43 for m in members:44 m.tell()程序输出如下:Represent any school member.Represent a teacher.Represent a student.Initializing a school member.Initializing a teacherInitializing a school member.Initial

38、izing a studentName: Mr. Li, Age: 30, Salary: 9000Name: Peter, Age: 25, Marks: 90八、输入/输出程序与用户的交互需要使用输入/输出,主要包括控制台和文件;对于控制台可以使用raw_input和print,也可使用str类。raw_input(*)输入*然后读取用户的输入并返回。1. 文件输入/输出可以使用file类翻开一个文件,使用file的read、readline和write来恰当的读写文件。对文件读写能力取决于翻开文件时使用的模式,常用模式有读模式(r)、写模式(w)、追加模式(a),文件操作之后需要调用cl

39、ose方法来关闭文件。 1 test = 2 This is a program about file I/O. 3 4 Author: Peter Zhange 5 Date: 2011/12/25 6 7 8 f = file(test.t*t, w) # open for writing, the file will be created if the file doesnt e*ist 9 f.write(test) # write te*t to file10 f.close() # close the file11 12 f = file(test.t*t) # if no mod

40、e is specified, the default mode is readonly.13 14 while True:15 line = f.readline()16 if len(line) = 0: # zero length indicates the EOF of the file17 break18 print line,19 20 f.close()2. 存储器python提供一个标准的模块,成为pickle,使用它可以在一个文件中存储任何python对象,之后可以完整的取出来,这被称为持久地存储对象;还有另外一个模块成为cPickle,它的功能和pickle完全一样,只不过

41、它是用c写的,要比pickle速度快(大约快1000倍)。import cPickledatafile = data.datanamelist = peter, john, kingf = file(datafile, w)cPickle.dump(namelist, f)f.close()del namelistf = file(datafile)storednamelist = cPickle.load(f)print storednamelist#peter, john, king九、异常当程序中出现*些异常的状况时,异常就发生了。python中可以使用try . e*cept 处理。t

42、ry: print 1/0e*cept ZeroDivisionError, e: print ee*cept: print error or e*ception occurred.#integer division or modulo by zero可以让try . e*cept 关联上一个else,当没有异常时则执行else。我们可以定义自己的异常类,需要继承Error或E*ception。class ShortInputE*ception(E*ception): A user-defined e*ception class def _init_(self, length, atleast

43、): E*ception._init_(self) self.length = length self.atleast = atleasttry: s = raw_input(enter someting-) if len(s) 3: raise ShortInputE*ception(len(s), 3)e*cept EOFError: print why you input an EOFe*cept ShortInputE*ception, e*: print The lenght of input is %d, was e*pecting at the least %d % (e*.le

44、ngth, e*.atleast)else: print no e*ception#The lenght of input is 1, was e*pecting at the least 3try.finallytry: f = file(test.t*t) while True: line = f.readline() if len(line) = 0: break time.sleep(2) print line,finally: f.close() print Cleaning up.十、Python标准库Python标准库是随Pthon附带安装的,包含了大量极其有用的模块。1. sy

45、s模块sys模块包含系统对应的功能sys.argv-包含命令行参数,第一个参数是py的文件名sys.platform-返回平台类型sys.e*it(status)-退出程序,可选的status(围:0-127):0表示正常退出,其他表示不正常,可抛异常事件供捕获sys.path-程序中导入模块对应的文件必须放在sys.path包含的目录中,使用sys.path.append添加自己的模块路径sys.modules-This is a dictionary that maps module names to modules which have already been loadedsys.st

46、din,sys.stdout,sys.stderr-包含与标准I/O 流对应的流对象s = sys.stdin.readline()sys.stdout.write(s)2. os模块该模块包含普遍的操作系统功能os.name字符串指示你正在使用的平台。比方对于Windows,它是nt,而对于Linu*/Uni*用户,它是posi*os.getcwd()函数得到当前工作目录,即当前Python脚本工作的目录路径os.getenv()和os.putenv()函数分别用来读取和设置环境变量os.listdir()返回指定目录下的所有文件和目录名os.remove()函数用来删除一个文件os.sys

47、tem()函数用来运行shell命令os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用rn,Linu*使用n而Mac使用ros.sep 操作系统特定的路径分割符os.path.split()函数返回一个路径的目录名和文件名os.path.isfile()和os.path.isdir()函数分别检验给出的路径是一个文件还是目录os.path.e*iste()函数用来检验给出的路径是否真地存在十一、其他1. 一些特殊的方法名称说明_init_(self,.)这个方法在新建对象恰好要被返回使用之前被调用。_del_(self)恰好在对象要被删除之前调用。_str_(sel

48、f)在我们对对象使用print语句或是使用str()的时候调用。_lt_(self,other)当使用 小于 运算符等等都有特殊的方法。_getitem_(self,key)使用*key索引操作符的时候调用。_len_(self)对序列对象使用建的len()函数的时候调用。下面的类中定义了上表中的方法:class Array: _list = def _init_(self): print constructor def _del_(self): print destructor def _str_(self): return this self-defined array class def _getitem_(self, key): return self._listkey def

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!