Python程序设计-期末复习完全手册(直接使用版+高频考题真题)_第1页
Python程序设计-期末复习完全手册(直接使用版+高频考题真题)_第2页
Python程序设计-期末复习完全手册(直接使用版+高频考题真题)_第3页
Python程序设计-期末复习完全手册(直接使用版+高频考题真题)_第4页
Python程序设计-期末复习完全手册(直接使用版+高频考题真题)_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

Python程序设计·期末复习完全手册(直接使用版)第一部分:考试题型与分值分布(通用)题型题量分值主要考查范围策略选择题15-20题30-40分语法规则、数据类型、基本概念牢记各数据结构特点和函数用法填空题5-10题10-20分程序运行结果、缺失语句逐行分析程序逻辑程序阅读题3-5题15-25分写出程序运行结果按执行顺序一步步推算程序填空题2-3题10-15分补全缺失代码分析上下文逻辑编程题1-2题15-25分编写完整程序先写思路再写代码第二部分:Python基础语法速查2.1基本数据类型数据类型关键字示例说明整型inta=10不限大小(Python3)浮点型floatb=3.14小数字符串strc="Hello"单引号或双引号布尔型boold=True/False注意首字母大写空值NoneTypee=None表示空类型转换函数功能示例int(x)转为整型int("123")→123float(x)转为浮点型float("3.14")→3.14str(x)转为字符串str(100)→"100"bool(x)转为布尔型bool(0)→Falseeval(s)执行字符串表达式eval("1+2")→32.2输入与输出#输入

x=input("请输入:")#返回字符串类型

num=int(input("请输入数字:"))#需转换类型

#输出

print("Hello")#换行输出

print("a=",a)#逗号分隔,自动加空格

print("a=%d"%a)#格式化(旧)

print(f"a={a}")#f-string(推荐)

print("{}+{}={}".format(1,2,3))#format方法

#print的sep和end参数

print(1,2,3,sep="-")#1-2-3(分隔符)

print("Hello",end="")#不换行,末尾加空格2.3变量命名规则规则说明组成字母、数字、下划线开头不能以数字开头大小写严格区分大小写关键字不能使用Python保留关键字Python关键字速记(常见)False,True,None,and,or,not,if,elif,else,

for,while,break,continue,def,return,class,

import,from,as,in,is,lambda,try,except,

finally,with,pass,del,global,nonlocal,yield2.4运算符算术运算符运算符含义示例结果+加5+27-减5-23*乘5*210/除(浮点)5/22.5//整除5//22%取余5%21**幂5**225比较(关系)运算符运算符含义示例==等于a==b!=不等于a!=b<小于a<b<=小于等于a<=b>大于a>b>=大于等于a>=b逻辑运算符运算符含义规则and与两边都为True才为Trueor或一边为True就为Truenot非取反赋值运算符运算符等价形式a+=ba=a+ba-=ba=a-ba*=ba=a*ba/=ba=a/b成员运算符运算符含义示例in在...中'a'in'abc'→Truenotin不在...中5notin[1,2,3]→True身份运算符运算符含义示例is是同一个对象aisbisnot不是同一个对象aisnotb第三部分:控制结构速查3.1条件语句if条件:

语句块#缩进必须一致(4个空格)

elif条件2:

语句块

else:

语句块条件表达式(三元运算符)x=aifa>belseb#如果a>b则x=a,否则x=b3.2循环语句while循环while条件:

循环体

if条件:

break#跳出整个循环

if条件:

continue#跳过本次循环剩余语句

else:

语句#正常结束(非break退出)时执行for循环for变量in序列:

循环体

#range函数

range(n)#0,1,2,...,n-1

range(m,n)#m,m+1,...,n-1

range(m,n,s)#m,m+s,m+2s,...以步长s递增

#常见用法

foriinrange(10):#0到9

foriinrange(1,11):#1到10

foriinrange(10,0,-1):#10到1

forchin"Hello":#遍历字符串

foritemin[1,2,3]:#遍历列表第四部分:组合数据类型速查4.1列表(list)#定义

a=[1,2,3,4]

b=list("hello")#['h','e','l','l','o']

c=[]#空列表

#索引(从0开始,负索引从-1开始)

a[0]#1

a[-1]#4

#切片[开始:结束:步长](左闭右开)

a[1:3]#[2,3]

a[::2]#[1,3]

a[::-1]#[4,3,2,1](逆序)

#常用方法

a.append(5)#末尾添加→[1,2,3,4,5]

a.insert(1,10)#在索引1插入10

a.extend([6,7])#扩展列表

a.remove(3)#删除第一个值为3的元素

a.pop(2)#删除索引2元素并返回

a.index(2)#查找值为2的索引

a.count(2)#统计2出现的次数

a.sort()#升序排序(原地修改)

a.sort(reverse=True)#降序排序

a.reverse()#逆序

len(a)#列表长度

max(a)/min(a)#最大/最小值

sum(a)#求和列表推导式[xforxinrange(10)]#[0,1,2,...,9]

[x**2forxinrange(10)]#平方

[xforxinrange(10)ifx%2==0]#偶数

[(x,y)forxin[1,2]foryin[3,4]]#嵌套循环4.2元组(tuple)#定义(不可变序列)

t=(1,2,3)

t=1,2,3#括号可省略

t=(1,)#单个元素必须加逗号

#方法

t.count(2)#统计

t.index(2)#查找索引

len(t)#长度元组与列表的区别:元组不可变,可作为字典的键;列表可变。4.3字典(dict)#定义(键值对,键必须不可变)

d={"name":"张三","age":20}

d=dict(name="张三",age=20)

#访问

d["name"]#键不存在会报错

d.get("name","默认值")#键不存在返回默认值

#修改与添加

d["score"]=90#添加或修改

d.update({"a":1})#批量更新

#删除

d.pop("name")#删除并返回值

deld["age"]#删除

#遍历

forkeyind:#遍历键

forkey,valueind.items():#遍历键值对

forvalueind.values():#遍历值

#常用方法

d.keys()#所有键

d.values()#所有值

d.items()#所有键值对字典推导式{k:vfork,vinzip(keys,values)}

{k:k**2forkinrange(5)}#{0:0,1:1,2:4,3:9,4:16}4.4集合(set)#定义(元素唯一、无序)

s={1,2,3}

s=set([1,2,2,3])#自动去重→{1,2,3}

#方法

s.add(4)#添加

s.remove(2)#删除(不存在报错)

s.discard(2)#删除(不存在不报错)

s.pop()#随机删除

#集合运算

a&b#交集

a|b#并集

a-b#差集

a^b#对称差集4.5字符串(str)#常用方法

s="HelloWorld"

len(s)#11

s.lower()#"helloworld"

s.upper()#"HELLOWORLD"

s.title()#"HelloWorld"

s.strip()#去除两边空格

s.split()#["Hello","World"]

s.split(",")#按逗号分隔

s.replace("Hello","Hi")#替换

s.find("World")#查找,返回索引,找不到返回-1

s.startswith("He")#判断开头

s.endswith("ld")#判断结尾

"".join(["a","b"])#"ab"(连接)

s.count("l")#统计出现次数

s.isdigit()#判断是否全是数字

s.isalpha()#判断是否全是字母字符串切片:与列表切片用法相同。字符串格式化#f-string(推荐)

f"姓名:{name},年龄:{age}"

#format方法

"{}+{}={}".format(1,2,3)

#百分号

"name=%s,age=%d"%(name,age)第五部分:函数速查5.1函数定义与调用def函数名(参数1,参数2=默认值):

"""文档字符串(函数说明)"""

函数体

return返回值#无return时返回None

#调用

result=函数名(实参1,实参2)参数类型参数类型写法说明位置参数deff(a,b)按位置传递默认参数deff(a,b=10)默认参数必须放在后面可变位置参数deff(*args)接收任意多个位置参数,元组可变关键字参数deff(**kwargs)接收任意多个关键字参数,字典#示例

deffunc(a,b=1,*args,**kwargs):

print(a,b,args,kwargs)

func(1,2,3,4,x=5,y=6)

#输出:12(3,4){'x':5,'y':6}5.2lambda匿名函数lambda参数:表达式

#示例

f=lambdax,y:x+y

print(f(1,2))#3

#常用于高阶函数

list(map(lambdax:x**2,[1,2,3]))#[1,4,9]

list(filter(lambdax:x>0,[-1,2,-3,4]))#[2,4]5.3常用内置函数函数功能示例abs(x)绝对值abs(-5)→5round(x,n)四舍五入到n位round(3.14159,2)→3.14max(seq)最大值max([1,3,2])→3min(seq)最小值min([1,3,2])→1sum(seq)求和sum([1,2,3])→6len(seq)长度len("hello")→5sorted(seq)排序(不改变原序列)sorted([3,1,2])→[1,2,3]range()生成整数序列enumerate(seq)带索引遍历fori,vinenumerate(lst)zip(a,b)并行遍历forx,yinzip(a,b)map(f,seq)映射filter(f,seq)过滤type(x)查看类型isinstance(x,t)类型判断isinstance(5,int)→Truehelp(f)查看帮助5.4变量作用域作用域缩写说明局部(Local)L函数内部定义的变量闭包(Enclosing)E外层函数的局部变量全局(Global)G模块级别定义内置(Built-in)BPython内置的名字x=10#全局变量

deffunc():

globalx#声明使用全局变量

x=20#修改全局变量

deffunc2():

x=30#创建局部变量,不影响全局第六部分:文件操作速查#打开文件

f=open("文件名","模式",encoding="utf-8")

#模式:'r'读'w'写(覆盖)'a'追加

#'r+'读写'b'二进制模式

#读取

content=f.read()#读取全部

content=f.read(100)#读取100个字符

line=f.readline()#读取一行

lines=f.readlines()#读取所有行,返回列表

#写入

f.write("字符串")

f.writelines(列表)

#关闭

f.close()

#with语句(自动关闭,推荐)

withopen("test.txt","r",encoding="utf-8")asf:

content=f.read()CSV文件读写importcsv

#读

withopen("data.csv","r")asf:

reader=csv.reader(f)

forrowinreader:

print(row)

#写

withopen("data.csv","w",newline="")asf:

writer=csv.writer(f)

writer.writerow(["姓名","年龄"])

writer.writerows([["张三",20],["李四",21]])第七部分:异常处理速查try:

#可能出错的代码

num=int(input("请输入数字:"))

result=10/num

exceptValueError:#捕获值错误

print("请输入有效的整数")

exceptZeroDivisionError:#捕获除零错误

print("不能除以零")

exceptExceptionase:#捕获所有异常

print(f"发生错误:{e}")

else:#无异常时执行

print(f"结果是:{result}")

finally:#无论是否异常都执行

print("程序结束")常见异常类型异常说明ValueError值错误(类型正确,值不正确)TypeError类型错误NameError名字未定义IndexError索引超出范围KeyError字典键不存在ZeroDivisionError除零错误FileNotFoundError文件未找到SyntaxError语法错误第八部分:面向对象速查classStudent:

#类属性

school="XX大学"

#构造方法(初始化方法)

def__init__(self,name,age):

=name#实例属性

self.age=age

#实例方法

defintroduce(self):

returnf"我叫{},今年{self.age}岁"

#静态方法

@staticmethod

defschool_info():

return"这是一所好学校"

#类方法

@classmethod

defchange_school(cls,new_school):

cls.school=new_school

#创建对象

s1=Student("张三",20)

print()#访问属性

print(roduce())#调用方法

#继承

classUndergraduate(Student):

def__init__(self,name,age,major):

super().__init__(name,age)#调用父类构造

self.major=major

#方法重写(多态)

defintroduce(self):

returnf"我是本科生{},专业{self.major}"面向对象核心概念概念说明封装将数据和操作封装在类中继承子类继承父类的属性和方法多态不同对象对同一方法有不同实现init初始化方法,创建对象时自动调用self代表实例本身,必须作为第一个参数super()调用父类方法第九部分:模块与包速查#导入模块

importmath#导入整个模块

frommathimportsqrt,pi#导入特定函数

frommathimport*#导入全部(不推荐)

importmathasm#起别名

#常用标准库

importmath#数学函数

importrandom#随机数

importdatetime#日期时间

importos#操作系统接口

importsys#系统参数

importre#正则表达式

importjson#JSON数据处理

#常用math函数

math.sqrt(16)#4.0

math.pow(2,3)#8.0

math.pi#3.14159...

math.e#2.71828...

math.ceil(3.1)#4(向上取整)

math.floor(3.9)#3(向下取整)

#常用random函数

random.random()#[0,1)随机浮点数

random.randint(1,10)#[1,10]随机整数

random.choice(seq)#随机选一个元素

random.shuffle(lst)#原地打乱列表

random.sample(seq,n)#随机抽取n个不重复元素第十部分:高频编程题模板(可直接套用)模板1:判断素数defis_prime(n):

ifn<2:

returnFalse

foriinrange(2,int(n**0.5)+1):

ifn%i==0:

returnFalse

returnTrue模板2:求最大公约数和最小公倍数defgcd(a,b):

whileb:

a,b=b,a%b

returna

deflcm(a,b):

returna*b//gcd(a,b)模板3:求阶乘#循环

deffactorial(n):

result=1

foriinrange(1,n+1):

result*=i

returnresult

#递归

deffactorial(n):

ifn<=1:

return1

returnn*factorial(n-1)模板4:判断回文defis_palindrome(s):

returns==s[::-1]

#数字判断回文

defis_palindrome_num(n):

returnstr(n)==str(n)[::-1]模板5:斐波那契数列#输出前n项

deffib(n):

a,b=0,1

for_inrange(n):

print(a,end='')

a,b=b,a+b

#递归

deffib(n):

ifn<=1:

returnn

returnfib(n-1)+fib(n-2)模板6:水仙花数fornuminrange(100,1000):

a=num//100

b=num//10%10

c=num%10

ifa**3+b**3+c**3==num:

print(num)模板7:统计字符串各类字符s=input("请输入字符串:")

letter=digit=space=other=0

forchins:

ifch.isalpha():

letter+=1

elifch.isdigit():

digit+=1

elifch.isspace():

space+=1

else:

other+=1

print(f"字母:{letter}数字:{digit}空格:{space}其他:{other}")模板8:求列表最大值及下标lst=[3,1,7,4,9]

max_val=max(lst)

max_index=lst.index(max_val)#第一个出现的索引

#或手动遍历

max_val=lst[0]

max_index=0

fori,vinenumerate(lst):

ifv>max_val:

max_val=v

max_index=i模板9:冒泡排序defbubble_sort(lst):

n=len(lst)

foriinrange(n-1):

forjinrange(n-1-i):

iflst[j]>lst[j+1]:

lst[j],lst[j+1]=lst[j+1],lst[j]

returnlst模板10:选择排序defselect_sort(lst):

n=len(lst)

foriinrange(n-1):

min_idx=i

forjinrange(i+1,n):

iflst[j]<lst[min_idx]:

min_idx=j

lst[i],lst[min_idx]=lst[min_idx],lst[i]

returnlst模板11:二分查找defbinary_search(lst,target):

left,right=0,len(lst)-1

whileleft<=right:

mid=(left+right)//2

iflst[mid]==target:

returnmid

eliflst[mid]<target:

left=mid+1

else:

right=mid-1

return-1模板12:字典统计词频text="helloworldhellopython"

word_count={}

forwordintext.split():

word_count[word]=word_count.get(word,0)+1

print(word_count)模板13:学生成绩管理(列表+字典)students=[

{"name":"张三","score":85},

{"name":"李四","score":92},

{"name":"王五","score":78}

]

#求平均分

avg=sum(s["score"]forsinstudents)/len(students)

#最高分

max_stu=max(students,key=lambdas:s["score"])

#排序

sorted_stus=sorted(students,key=lambdas:s["score"],reverse=True)模板14:文件读写统计withopen("data.txt","r",encoding="utf-8")asf:

lines=f.readlines()

word_count=0

forlineinlines:

word_count+=len(line.split())

print(f"行数:{len(lines)},单词数:{word_count}")第十一部分:高频程序阅读题(写出运行结果)序号程序运行结果1print(5//2,5/2,5%2)22.512print("hello"[::-1])olleh3print(list(range(1,6,2)))[1,3,5]4a=[1,2,3];a.append(4);print(a)[1,2,3,4]5print({1,2,2,3}){1,2,3}6d={"a":1};d["b"]=2;print(d){'a':1,'b':2}7print("a"in"abc","d"in"abc")TrueFalse8x=10;ifx>5:print("A")elifx>3:print("B")else:print("C")A9foriinrange(3):print(i,end="")01210i=0;whilei<3:print(i);i+=1012(每行一个)11lst=[1,2,3];print(lst*2)[1,2,3,1,2,3]12a=10;b=20;a,b=b,a;print(a,b)201013print(len("你好啊"))314s="a,b,c";print(s.split(","))['a','b','c']15print([x**2forxinrange(4)ifx%2==0])[0,4]16print(list(zip([1,2],["a","b"])))[(1,'a'),(2,'b')]17deff(a,b=2):returna+b;print(f(3))518f=lambdax:x*2;print(f(5))1019print(3and0,0or5)0520a=[1,2];b=a;b[0]=9;print(a)[9,2]第十二部分:常见错误与调试错误类型错误示例正确写法缩进不一致混用Tab和空格统一使用4个空格赋值与等于混淆ifa=5:ifa==5:列表越界lst[10]检查索引范围忘记冒号ifa>bifa>b:函数缺少selfdefmethod():defmethod(self):字典键不存在d["key"]d.get("key")或先用in判断变量未定义print(x)先定义变量字符串与数字拼接"score:"+90f"score:{90}"修改不可变对象t[0]=1(元组)使用列表循环中修改列表forxinlst:lst.remove(x)遍历副本或索引逆序遍历忘记导包sqrt(16)importmath;math.sqrt(16)整数除法期望浮点5/2=2(Python2)Python3中5/2=2.5,或5.0/2第十三部分:高频选择题题库(50题)模块一:基本语法题号题目选项A选项B选项C选项D答案1Python中输出使用什么函数input()print()output()write()B2Python中注释单行使用///**/#--C3以下合法的变量名是2var_varvar-nameclassB4Python中表示空值的是0""NoneFalseC5表达式5//2的结果是2.522.03B6表达式3**2的结果是5698C7type(3.14)的结果是intfloatstrboolB模块二:数据结构题号题目选项A选项B选项C选项D答案8以下哪个是不可变数据类型列表字典元组集合C9lst=[1,2,3];lst.append(4)后lst是[4,1,2,3][1,2,3,4][1,2,4,3]报错B10d={"a":1};获取键"a"的值用d["a"]d("a")d.ad{a}A11集合{1,2,2,3}的输出是{1,2,2,3}{1,2,3}{1,2}报错B12"hello"[1:3]的结果是"he""el""ell""lo"B13len([1,2,3])的结果是1234C14如何创建空字典[]{}set()dict[]B15a=[1,2,3];a.insert(1,9)后a为[1,2,3,9][1,9,2,3][9,1,2,3]报错B模块三:控制结构题号题目选项A选项B选项C选项D答案16foriinrange(1,5):print(i)输出12345123401234123B17whileTrue:是语法错误永远循环执行一次不执行B18break语句的作用是结束本次循环跳出整个循环执行下一个判断不起作用B19continue语句的作用是结束整个循环跳过本次循环剩余语句结束程序跳回开头B20Python中条件语句的缩进要求必须2个空格必须4个空格必须一致不需要缩进C模块四:函数题号题目选项A选项B选项C选项D答案21def关键字用于定义变量定义类定义函数导入模块C22函数中return的作用是打印结果结束程序返回函数值定义函数C23lambda函数是普通函数匿名函数递归函数高阶函数B24以下哪个用于可变位置参数*args**kwargsselfreturnA25deff(a,b=10):pass;f(5)中b的值是510None报错B模块五:文件与异常题号题目选项A选项B选项C选项D答案26打开文件的函数是read()write()open()close()C27文件读取模式"r"表示只写只读追加读写B28withopen()asf的好处是自动关闭更快更安全以上都是A29捕获异常的语句是try...catchtry...excepttry...errortry...finallyB30以下哪种做法会自动关闭文件f.close()with语句delf无法自动关闭B模块六:模块与面向对象题号题目选项A选项B选项C选项D答案31导入math模块使用importmathincludemathusingmathrequiremathA32类的定义使用关键字defclassstructobjectB33类中方法的第一个参数通常是thisthatselfclsC34类的初始化方法名是startbegininitnewC35继承时调用父类方法使用self()parent()super()base()C模块七:综合题号题目选项A选项B选项C选项D答案36Python中True和False属于什么类型intfloatstrboolD37表达式3and0的结果是TrueFalse30D38表达式0or5的结果是TrueFalse05D39list("abc")的结果是"abc"['a','b','c']('a','b','c'){'a','b','c'}B40"Hello".lower()的结果是"HELLO""hello""Hello"报错B41以下哪个能正确创建包含数字1-10的列表range(1,11)list(range(1,11))[1-10][1:10]B42a=[3,1,2];a.sort()后a的值是[3,1,2][1,2,3][1,3,2][3,2,1]B43如何获取列表长度length(lst)len(lst)lst.lengthsize(lst)B44isinstance(5,int)的返回值是50TrueFalseC45Python中,map函数的作用是排序过滤映射归并C46print("Hello",end="")中end=""的作用是不换行加空格换行报错A47以下哪个不是Python标准数据类型intfloatdoublestrC48a=5;a+=3后a的值是53853C49以下哪个能删除列表中所有元素lst.clear()lst.delete()lst.remove()lst.pop()A50print(f"{25}岁")的输出是25岁报错{25}岁无输出A第十四部分:判断题速记(30题)序号题目答案1Python中变量使用前必须声明类型。错(动态类型,不需声明)2Python中5/2的结果是2。错(2.5)3Python中5//2的结果是2。对4列表和元组都是可变序列。错(元组不可变)5字典的键必须是不可变类型。对6集合中的元素可以重复。错(元素唯一)7Python使用缩进来划分代码块。对8input()函数返回的是整数类型。错(字符串)9for循环可以遍历列表、字符串等可迭代对象。对10break语句用于结束本次循环,进入下一次循环。错(跳出整个循环)11continue语句用于跳出整个循环。错(跳过本次循环剩余语句)12函数可以不写return语句。对(默认返回None)13lambda函数可以有多个表达式。错(只能一个表达式)14列表切片返回的是新列表。对15Python中字符串是不可变的。对16一个.py文件就是一个模块。对17init方法是类的构造方法。对18类中所有方法必须包含self参数。错(静态方法和类方法除外)19with语句可以自动关闭文件。对20Python支持多重继承。对21global关键字用于在函数内声明全局变量。对22字典的get()方法在键不存在时会报错。错(返回None或默认值)23列表的append()方法是在开头添加元素。错(末尾添加)24Python的索引从1开始。错(从0开始)25and和or运算符具有短路求值特性。对26range(1,10)生成的是1到10。错(1到9)27元组解包:a,b=(1,2)可以把1赋给a,2赋给b。对28Python中的pass语句表示什么也不做。对29列表推导式可以用来创建列表。对30函数的参数传递是值传递和引用传递。错(对象引用传递,不可变对象像值传递)第十五部分:填空题高频考点(直接背诵)序号题目答案1Python程序文件的扩展名是__。.py2输出使用__函数。print()3输入使用__函数,返回__类型。input()、字符串(str)4整型除以整型得到浮点型结果用__运算符。/5整除运算符是__。//6幂运算使用__运算符。**7创建空列表使用__或__。[]、list()8创建空字典使用__或__。{}、dict()9创建空集合使用__。set()10在列表末尾添加元素使用__方法。append()11删除列表中指定索引元素并返回使用__方法。pop()12排序列表使用__方法(原地排序)

温馨提示

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

评论

0/150

提交评论