Python 程序设计语言 笔记.docx_第1页
Python 程序设计语言 笔记.docx_第2页
Python 程序设计语言 笔记.docx_第3页
Python 程序设计语言 笔记.docx_第4页
Python 程序设计语言 笔记.docx_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python 程序设计语言 笔记第一周 基本程序设计1. 1程序设计的基本方法 IPO(输入、输出、处理(算法)(1)理解问题的计算部分:抽象问题 使用IPO 从多种方法中选择一种解决问题(2)程序编写步骤: 分析问题:分析问题的计算部分 确定问题:将计算部分划分为IPO三部分 设计算法 编写程序 调试测试 升级维护例:温度转换问题【问题描述】对于摄氏度和华氏度,存在以下转换:气压结冰点沸点摄氏度1标准大气压0度100度华氏度1标准大气压0度212度请利用python程序完成以上转换。【解题步骤】 分析问题的计算部分简化为三个步骤: 确定功能,利用IPO方法进一步分析: 确定IPO输入:华氏度(F)/摄氏度(C) 编写程序处理:温度转化公式 调试程序输出:摄氏度(C)/华氏度(F) 设计算法 编写程序 测试调试 升级维护1.2 python程序元素分析程序1:# TempConvert.pyval = input(请输入带温度表示符号的温度值(例如: 32C): )if val-1 in C,c:# in 判断左侧内容是否在右侧集合中f = 1.8 * float(val0:-1) + 32# float() 将括号中的字符串转换为浮点数print(转换后的温度为: %.2fF%f)# .2表示输出的浮点数f有两位小数elif val-1 in F, f:c = (float(val0:-1) - 32) / 1.8print(转换后的温度为: %.2fC%c)else:print(输入有误)(1)缩进:标明代码层次关系、表明程序框架(2)注释:辅助说明,不被执行也不受语法约束,可以写入任何内容,用以提高可读性注释方法: 单行注释:# 开头; 多行注释: 开头和结尾;(3)变量:能够表示值的一个名称,值可以变化 命名:给自定义元素关联名字的过程(唯一性) 命名规则: 大小写字母、数字、下划线(大小写不统一) 首字母只能是大小写字母或下划线,不能使用空格 中文等非字母符号也可以作为名字 不能与python定义的保留字相同(4)表达式:产生/计算数据值的一行代码(通过保留字和操作符)(5)空格的使用: 表示每行缩进关系的空格不能改变 空格不能分割命名(6)input()函数:从控制台获得用户的输入。使用方法为: = input()获得的用户输入以字符串的形式保存在中如果val = “28C”,则val-1 = “C”,val0:2 = “28” 表示从区间0,2)的一个子字符串可以通过val0:-1来获取除了最后一个字符以外的字符串(7)分支语句:根据判断条件,执行不同的路径。使用方法:Ifelif elif else: (8)赋值:同步赋值:同时给多个变量赋值。使用方法:, = ,例:若要使变量x和y的值实现交换,则只需一行代码:x, y = y, x(9)print()函数:用来输出字符信息,或以字符的形式输出变量的值,通过%选择要输出的变量(10)循环语句:控制程序循环运行的语句,根据判断/计数条件确定循环次数。使用方法:for I in range():函数编写模板(1)input print模板:(2)initial print模板: 用户输入:input() 初始变量:运算需要的初始值 运算部分:算法实现 运算部分:算法实现 结果输出:print() 结果输出:print()1.3 python蟒蛇程序的实现分析:程序2:import turtle# (乌龟)轨迹描绘函数库def drawSnake(rad,angle,len,neckrad):# 绘制蟒蛇函数for i in range(len):turtle.circle(rad,angle)# 圆形轨迹函数,参数rad描述圆形半径的位置turtle.circle(-rad,angle)# rad为负值,半径在乌龟右侧turtle.circle(rad,angle/2)# 参数angle表示乌龟沿圆形爬行的弧度值turtle.fd(rad)# 也称为turtle.forward()函数# 表示轨迹直线移动,参数表示移动距离turtle.circle(neckrad+1,180)turtle.fd(rad*2/3)def main():turtle.setup(1300,800,0,0)# 启动图形窗口,参数分别为窗口的宽度、高度# 窗口左上角点的横、纵坐标位置pythonsize = 30turtle.pensize(pythonsize)# 轨迹的宽度,参数为像素大小,这里为30turtle.pencolor(blue)# 轨迹颜色,参数为字符串(英文或16进制颜色代码)turtle.seth(-40)# 轨迹运动方向,参数为角度(逆时针,以正东方向为0度)drawSnake(40,80,5,pythonsize/2)# 绘制蟒蛇函数,用以绘制python蟒蛇main()def定义函数: 函数是一组代码的集合,用以完成特定的功能,这组代码的名字就叫函数名 def所定义的函数,必须要通过函数名对函数进行调用才能执行函数库的引用:方式一:import 如:import turtle方式二:from import from import * 调用函数时不需要使用库名,直接使用如:from turtle *fd(100)注意:方式一可调用不同库中的同名函数,方式二则不可第二周 类型及应用2.1类型 编程语言对数据的划分数字类型、字符串类型、元组类型列表类型、文件类型、字典类型(1)数字类型:数字类型对python语言中的数字的表示和使用进行了定义和规范1 分类: 整数类型 浮点数类型 复数类型 整数类型概念与数学一致,没有取值范围限制例:1010(十进制数),0x9a(十六进制数,以0x/0X开头),0b010(二进制数,以0b/0B开头)0o123(八进制数,以0o/0O开头) 浮点数类型是带有小数点及小数的数字,数值范围和小数精度有一定限制,因系统而异例:0.0(与整数0不同),96e4(科学计数法,e/E代表10的次幂,e/E后的数字为指数) 复数类型概念与数学一致,z=a+bj(j/J代表虚数部分)例:12.3+4j对于一个复数,如z = 1.1+9j,可以使用z.real和z.imag来获得复数的实部和虚部2 数字类型的关系: 特例 特例整数 浮点数 复数 (范围逐渐扩大) 整数 浮点数 浮点数因此这三种数字类型可以进行混合运算,生成结果为最宽类型 例: 3 + 4.2 = 7.23 类型转换:利用int(), float() 和complex() 三个函数实现 例:int(4.5) = 4; float(4) = 4.0; complex(4) = 4 + 0j;【注意】不能将复数转成整数和浮点数!(但可以间接利用取实部虚部的方法实现)4 数字类型的判断 type(x); 例:type(4.5) 得到 5 数字类型的运算:运算符和运算函数操作含义x+yx与y之和x-yx与y之差x*yx与y之积x/yx与y之商x/y不大于x和y之商的最大整数x%yx与y之商的余数+xx-xx的负值x*yx的y次幂abs(x)x的绝对值divmod(x,y)(x/y,x%y)pow(x,y)x的y次幂(2)字符串类型 用双引号“”或单引号括起来的一个或多个字符 可以保存在变量中,也可以单独存在1 判断字符串类型:输入:type(str1) 输出:2 可以使用 转义字符输出“”或之类的字符也可以用同样的方法 输出转义字符,n 输出换行符等例:print(“”大家好”);输出:”大家好” 3 字符串是一个字符序列,字符串最左端位置标示为0,向右递增,字符串中字符位置的标示称为“索引”,例如:HelloJhon0123456789可以使用单个索引访问字符串的特定位置。格式如下:其中索引可以为常量和表达式4 python中字符串(设长度为L)索引从0开始,最后一个字符索引为L-1同时也允许使用负数,对字符串从右至左进行反向检索,最右索引值为-1可以通过两个索引值来确定一个范围,从而返回这个范围内的子字符串。格式如下:,其中start和end都为整型,索引范围为start, end)程序实例:【题目描述】输入一个月份数字,返回对应月份名称的缩写【分析】IPO模式: 输入:输入一个表示月份的数字(1-12) 处理:利用字符串基本操作实现功能 输出:输出数字对应月份名称缩写【解答】程序3:# month.pymonths=JanFebMarAprMayJunJulAugSepOctNovDecn=input(请输入月份数(1-12):)pos=(int(n)-1) * 3monthAbbrev=monthspos:pos+3print(月份简写是+monthAbbrev+.)输入:输出:7月份简写是Jul.(3)元组类型(Tuple) 包含0个至多个元素的类型,元素之间用逗号分割例:t1 = 123, 45.6, “hello”; t2 = (); t3 = 12;元组外部可以使用或不使用括号1元组类型的三个特点: 元组中的元素可以是不同类型的,可以嵌套(用括号区分) 元组中的各个元素存在先后关系,可以通过索引来访问元组中的元素例:t10; 元组定义后不能更改和删除 安全2 与字符串类型类似,可以通过索引区间来访问元组中的部分元素也可以对元组进行+和*的运算 例:t21:;(4)列表类型( List ) 有序的元素集合1 与元组类似,列表的每个元素类型可以不同,可以通过索引访问列表的单个元素 例:a = 0,1,2 print(a) 输出:0,1,22 与元组不同,列表的大小没有限制,可以随时修改(5)小结:1 序列(字符串、元组、列表)类型的操作:序列操作符操作的含义 + 连接两个序列 + 对序列进行整数次重复索引序列中的元素:取序列的一个子序列len()序列中元素个数for in 对序列进行循环列举 in 成员检查,判断是否在序列中2 方法,格式如下:.func() 字符串方法:字符串方法含义.upper()字符串中字母大写.lower()字符串中字母小写.strip()去掉两边空格和指定字符.split()按指定字符分割字符串为数组.join()连接两个字符串序列.find()搜索指定字符串.replace()字符串替换 列表方法:列表方法含义.append(x)将元素x增加到列表最后.sort()将列表元素排序.reverse()将列表元素反转.index(x)返回第一次出现元素x的索引值.insert(i,x)在位置i处插入新元素x.count(x)返回元素x在列表中的数量.remove(x)删除列表中第一次出现的元素x.pop(i)取出列表中位置i的元素并删除2.2 math库和random库的使用及实例:(1)math库:函数数学表示含义圆周率pi的近似值,15位小数自然常数eee的近似值,15位小数ceil(x)x对浮点数向上取整floor(x)x对浮点数向下取整pow(x,y)xyx的y次幂log(x)lnx以e为底的对数log10(x)log10x以10为底的对数sqrt(x)x平方根exp(x)exe的x次幂degrees(x)弧度转角度radians(x)角度转弧度sin(x)sinxx的正弦值cos(x)cosxx的余弦值tan(x)tanxx的正切值asin(x)arcsinxx的反正弦值acos(x)arccosxx的反余弦值atan(x)arctanxx的反正切值x-1.0, 1.0(2)random库:函数含义seed(x)给随机数一个种子值,默认随机种子是系统时钟random()生成一个0, 1.0之间的随机小数uniform(a,b)生成一个a到b之间的随机小数randint(a,b)生成一个a到b之间的随机整数randrange(a,b,c)随机生成一个从a开始到b以c递增的数choice()从列表中随机返回一个元素shuffle()将列表中元素随机打乱sample(,k)从指定列表随机获取k个元素【注意】seed()函数用来设置随机种子,随机种子相同,随机序列相同 伪随机数实例:的计算 蒙特卡洛方法(随机抽样/统计实验方法) 先构造单位正方形和1/4圆 向正方形内抛洒大量点 统计落入圆内的点占所有点的比例【分析】IPO: 输入:抛点的数量 处理:对于每个抛洒点,计算点到圆心的距离 通过判断该点在圆内或圆外。统计圆内点的数量 输出:值程序4:# pi.pyfrom random import randomfrom math import sqrtfrom time import clockDARTS = 1200hits = 0clock()for i in range(1,DARTS):# 抛洒DARTS次 x, y = random(), random()# 给出随机坐标(x,y) dist = sqrt(x*2 + y*2)# 计算抛点到原点的距离 if dist 75打印空气污染警告If PM2.5值 75: print(Unhealthy. Be careful!) if PM 35: print(Good. Go running!) main()【运行结果】输出:输入:What is todays PM2.5? 90Unhealthy. Be careful!(1)If语句格式:If :【注】是条件表达式,是一个或多个语句序列先判断条件,若true,则执行,再转向下一条语句;若false,则直接跳过,转向下一条语句(2)简单条件构造 简单条件基本形式 是关系操作符, =, , != 使用“=”表示赋值语句,使用“=”表示等于 除数字外,字符或字符串也可以按照字典顺序用于条件比较 是布尔表达式,为bool类型布尔值的真假以True和False表示(3)二分支语法结构If :else:程序6:# quadratic.py# 计算二次方程的实数根程序import mathdef main(): print(This program finds the real solutions to a quadraticn) a,b,c = eval(input(Please enter the coefficients(a,b,c): ) delta = b*b - 4*a*c if delta = 0: discRoot = math.sqrt(delta) root1 = (-b + discRoot) / (2*a) root2 = (-b - discRoot) / (2*a) print(nThe solutions are:, root1, root2) else: print(The equation has no real roots!)main()【运行结果】输出:This program finds the real solutions to a quadratic输入:Please enter the coefficients(a,b,c): 1,2,3The equation has no real roots!3.3 多分支(1)多分支决策要解决双根问题,就需要对delta等于0的情况进行处理。语句的结构上要引入嵌套结构: 当delta 0,处理双根情况一种方案是在程序中使用两个if-else语句。把一个复合语句放到另一个语句的结构之中称为嵌套。1. 多分支决策是解决复杂问题的重要手段之一2. 一个三分之决策可以由两个二分支结构嵌套实现3. 使用if-else描述多分支决策时,实现更多分支需要更多嵌套,影响程序易读性Python使用if-elif-else描述多分支决策,简化分支结构的嵌套问题。格式如下:If :elif :elif :else:例:程序7:# quadratic.pyimport mathdef main(): print(This program finds the real solutions to a quadraticn) a,b,c = eval(input(Please enter the coefficients(a,b,c): ) delta = b*b - 4*a*c if a = 0: x = -b/c print(nThere is an solution, x) elif delta 0: print(nThe equation has no real roots!) elif dalta = 0: x = -b/(2*a) print(nTheere is a double root at, x) else: discRoot = math.sqrt(delta) root1 = (-b + discRoot) / (2*a) root2 = (-b - discRoot) / (2*a) print(nThe solutions are:, root1, root2)main()3.4 异常处理异常处理语句Python使用tryexcept,可使程序不因运行错误而崩溃Python的异常处理语句还可以使用else和finally关键字(可选项,若使用则else必须在finally之前)格式如下:try:except :except :except:else:finally: tryexcept可以捕捉任何类型的错误对于二次方程,还会有其他可能的错误如:输入非数值类型(NameError)输入无效的表达式(SyntaxError)等此时可以用一个try语句配多个except来实现程序8:# 异常处理测试def main(): try: number1,number2 = eval(input(Enter two numbers,separated by a comma:) result = number1/number2 except ZeroDivisionError: print(Division by zero!) except SyntaxError: print(A comma may be missing in the input) else: print(No exceptions, the result is, result) finally: print(executing the final clause)main()【运行结果】输出:输入:Enter two numbers, separated by a comma: 1 2A comma may be missing in the inputexecuting the final clauseEnter two numbers, separated by a comma: 3,2No exceptions, the result is 1.5executing the final clauseEnter two numbers, separated by a comma: 3,0Division by zero!executing the final clause【实例】三者最大值【IPO】输入:三个数值 处理:三者最大算法 输出:打印最大值【算法比较】 通盘比较 将每一个值与其他所有值比较以确定最大值三个值的情况比较简单,如果是五值比较复杂,而且效率低(因为表达式没有被充分利用) 决策树 避免冗余比较结构更加复杂! 顺序处理 逐个扫描每个值,保留最大者【程序】程序9:# program: maxn.py# 寻找一组数中的最大值def main(): n = eval(input(How many numbers are there?) # 将第一个值赋值给max max = eval(input(Enter a number ) # 连续与后面n-1值进行比较 for i in range(n-1): x = eval(input(Enter a number ) if x max: max = x print(The largest value is, max)main()【运行结果】输出:输入:How many numbers are there?5Enter a number 9Enter a number 6Enter a number 3Enter a number 10Enter a number 20The largest value is 20 使用Python内置函数max()3.5 基本循环结构(1)for循环 Python可以使用for语句循环遍历整个序列的值格式如下:for in :在for循环中,循环变量var遍历了队列中的每一个值,循环变量var遍历了队列中的每一个值,循环语句体为每个值执行一次例:for循环求平均数IPO:输入:待输入数字个数,数字处理:平均数算法输出:平均数通用设计方案: 输入数字的个数n 将sum初始化为0 循环n次:输入数字x将x加入sum中 将sum/n作为平均数输出出来程序10:#average1.pyn = eval(input(How many numbers?)sum = 0.0for i in range(n): x = eval(input(Enter a number ) sum = sum + xprint(nThe average is, sum/n)【运行结果】输出: 输入:How many numbers?3Enter a number 5Enter a number 7Enter a number 6The average is 6.0for循环的缺点:程序开始时必须提供输入数字总数以提供固定循环次数大规模数字则需要用户数清楚个数为此,Python提供了另一种循环模式即无限循环,不需要提前知道循环次数(2)while循环,语句格式:while 条件总是在循环体执行之前被判断,这种结构又被称为前测循环(当型循环)如果循环体没有对i初始化或循环体没有累加,条件判断一直为真,循环体将一直执行,即为死循环程序,这时通常使用+C来终止一个程序(3)break 退出循环例:程序11:#TestBreak.pysum = 0number = 0while number 100: breakprint(The number is, number)print(The sum is, sum)【运行结果】The number is 14The sum is 105(4)continue 用于结束本次循环,即跳出循环体中下面尚未执行的语句,对于while循环,继续求解循环条件;对于for循环,继续遍历循环列表continue语句和break语句的区别:continue语句只结束本次循环,而不终止整个循环的执行,而break语句则是直接结束整个循环流程,不再判断循环条件是否成立(5)循环语句中的else 当不满足循环条件时,执行该语句3.6 通用循环构造方法(1)交互式循环:交互式循环是无限循环的一种,允许用户通过交互的方式重复程序特定部分(2)哨兵循环:执行循环直到遇到特定的值,循环语句才终止执行的循环结构设计方法: 设定一个哨兵值作为循环终止的标志 任何值都可以做哨兵,但要与实际数据有所区别(3)文件循环:面向文件的方法是数据处理的典型应用,可以事先将数据录入到文件,便于编辑修改,python中采用readline()方法中的end of file循环模式(4)循环嵌套:决策和循环互相嵌套可以实现复杂算法,假设数字以逗号分隔出现在文件的同一行上(3)(4)整合程序如图:3.7 死循环和循环嵌套(1)死循环 无法靠自身的控制中止的循环死循环的使用:通过死循环可以一直检测捕捉特定异常(2)后测循环(直到型循环):先接受输入,再判断循环条件是否满足。在Python中没有后测循环语句,但可以通过while和break语句间接实现,如:(3)半路循环 循环判断条件在循环体的中部,例:3.8 布尔表达式条件语句和循环语句都使用布尔表达式作为条件布尔值为真(True)或假(Flase)(1)布尔操作符:and,or,not and和or用于组合两个布尔表达式,并产生一个布尔结果 and or not运算符计算一个布尔表达式的反值not (2)布尔操作符的优先级:not and or例:壁球比赛计分:假设scoreA和scoreB代表两个壁球选手的分数规则1:只要一个选手达到了15分,本场比赛就结束即: scoreA = 15 or scoreB = 15在程序中构造一种循环条件,对游戏结束条件取反,只要比赛还没有结束游戏就一直进行下去即: while not( scoreA = 15 or scoreB = 15 ) # 比赛继续规则2:如果一方打了七分而另一方一分未得时,比赛也结束即:scoreA = 15 or scoreB = 15 or (a = 7 and b = 0) or (b = 7 and a = 0)需要一个团队赢得至少两分才算赢,即其中一个队已经达到了15分,且分数差异至少为2时比赛结束(排球)即:(a = 15 or b = 15) and abs(a-b)=2(3)布尔代数:布尔表达式遵循特定的代数定律,这些规律被称为布尔逻辑或布尔代数代数布尔代数a*0 = 0a and false = falsea*1 = aa and true = aa+0 = 0a or false = a 任何数据和true进行or操作都是真 and和or操作符都符合分配率 not操作符可负负抵消 德摩根定律:not放进表达式后,and和or发生变化如:not(a or b) = (not a) and (not b)not(a and b) = (not a) or (not b) 布尔代数的应用 用德摩根定律分析和简化表达式(4)布尔表达式作为决策 判断退出循环条件 对于数字(整数和浮点数)的零值被认为是false,任何非零值都是true bool类型是特殊的整数 布尔表达式具有短路求值的特性第四周 函数4.1 函数的定义、调用与返回(1)函数定义 def语句,格式如下:def ():【说明】函数名:任何有效的Python标识符参数列表:调用函数时传递给函数的值 (个数 = 0,多个参数用”,”分隔)形式参数(形参):定义函数时给函数传递的参数 形参只在函数内部有效实际参数(实参):调用函数时给函数传递的参数(可以是实数,变量,函数;必须要初始化)函数体:函数被调用时执行的代码,由一至多个语句组成函数调用的一般形式:()函数返回: return语句 结束函数调用并返回结果 return语句是可选的,可以出现在函数体的任意位置 若无return语句,函数结束后将控制权返回给调用方函数接口 返回值和参数函数传递信息的主要途径: 通过函数返回值的方式传递信息 通过参数传递信息例:打印生日快乐歌歌词程序4.1.1def happy(): print(Happy birthday to you!)def sing(person): happy() happy() print(Happy birthday to, person + !)def main(): sing(Mike) print()main()【运行结果】Happy birthday to you!Happy birthday to you!Happy birthday to Mike!(2)函数的调用和返回值 调用过程: 函数的返回值:函数的返回值可以是变量或表达式三种形式 无返回值,单值和多值(用逗号分隔)无返回值 等价于 return None(None是表示没有任何东西的特殊类型)例:设计两点距离函数,求三角形周长程序4.1.2import mathdef square(x): return x*xdef distance(x1,y1,x2,y2): dist = math.sqrt(square(x1 - x2) + square(y1 - y2) return distdef isTriangle(x1,y1,x2,y2,x3,y3): flag = (x1 - x2) * (y3 - y2) - (x3 - x2) * (y1 - y2) != 0 return flagdef main(): print(Please enter (x,y) of three points in turn:) #获取用户输入的三个坐标点 x1, y1 = eval(input(Point1: (x, y) = ) x2, y2 = eval(input(Point2: (x, y) = ) x3, y3 = eval(input(Point3: (x, y) = ) # 判断三个点是否构成三角形 if (isTriangle(x1,y1,x2,y2,x3,y3): # 计算三角形周长 perim = distance(x1,y1,x2,y2) + distance(x2,y2,x3,y3) + distance(x1,y1,x3,y3) print(The perimeter of the triangle is : 0:0.2f.format(perim) else: print(Kidding me? This is not a triangle!)main()【运行结果】Please enter (x,y) of three points in turn:Point1: (x, y) = 1,3Point2: (x, y) = 2,2Point3: (x, y) = 3,4The perimeter of the triangle is : 5.89(3)改变参数值的函数: 函数的形参只接受了实参的值,给形参赋值并不影响实参 Python的参数是通过值来传递的(赋值) 如果变量时可变对象(如列表) 返回到调用程序后,该对象会呈现被修改后的状态4.2 函数与程序结构/递归(1)函数和程序结构: 函数可以简化程序,使程序模块化 函数可将较长程序分割成短小程序段,提高可读性(2)递归函数: 递归 函数定义中使用函数自身的方法。例:阶乘 递归的定义特征:1. 有一或多个基例是不需要再次递归的 2. 所有的递归链都要以一个基例结尾 注意:1. 递归每次调用都会引起新函数的开始 2. 递归有本地值的副本,包括该值的参数 3. 阶乘递归函数中:每次函数调用中的相关n值在中途的递归链暂时存储,并在函数返回时使用【例1】计算5!程序4.2.1def fact(n):if n = 0: return 1else:return n * fact(n-1)【例2】字符串反转Python列表有反转的内置方法方法1:字符转换为字符列表,反转列表,列表转换回字符串方法2:递归【IPO】输入:字符串 处理:用递归的方法反转字符串 输出:反转后的字符串【

温馨提示

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

评论

0/150

提交评论