python期末试题

选择题:

1.以下选项中,符合Python语言变量命名规则的是(Abc)

2.下面代码的输出结果是(1,3,5,7,9,)
for i in range(1,10,2):
    print(i,end=“,”)

3.下代码的输出结果是
a= 2
b= 2
C= 2.0
print(a==b,a, is b,a is c)
1,3,5,7,9,
True True False

4.下面关于集合的描述,错误的是(集合中的元素必须不可变)

5.下面哪个属性的命名是私有属性的正确命名(_ _value )

6.关于Python文件开模式的描述,以下选项中错误的是
B.创建写模式n

7.关于Python的元组类型,以下选项中描述错误的是
B.元组-旦创建就还能被修改

8.关于Python循环结构,以下选项中描述错误的
C.continue结束整个循环过程,不再判断循环的执行条件

9.Python内置的集成开发工具是(IDLE)

A."import random”这行代码是可以省略的
答案:A

填空题:
1.假设列表对象sList的值为[3, 4, 5, 6, 7,9, 11, 13, 15, 17],那么切片aList[2:7]得到的值是([5, 6, 7, 9, 11])

2.Lock对象有两个状态,分别是locked 和(unlocked)
3.假设设per为类Person的对象且包含一个私有数据成员“_ value",那么在类的外部通过对象per直接将其私有数据成员“ _value”的值设置为3的语句可以写作(per._Person__value=3)
4.range(1,5)返回一个列表,请写出面的元素(1,2,3,4)

5.Python标准库啊(socket)对Socket进行了二次封装,支持Socket接口的问,大幅度简化了网络程序的开发。

6.Python语句list(range(1,10,3))执行结果为([1,4,7])

7.面对对象程序设计的三要素分别为封装、继承和(多态)

8.表达式’a’ + ‘b’的值为(ab)

9.Python语句print(tuple(range(2)), list(range(2)))的运行结果是((0, 1) [0, 1])

10.表达式re.findall(r’x[0-9]x’,’x2x,xyx,x10x,x8x’ )的结果为([‘x2x’, ‘x8x’])

11.以下python语句的输出结果是(24)
d=lambda p:p2;t=lambda p:p3
x=2;x=d(x);x=t(x);x=d(x);print(x)

简答题:
1.列表中使用“+ ”和append()函数的区别?速度如何?并列举实例。
append(): 可添加任何对象,但无论是什么对象,统统算一个元素在列表末尾添加;原地修改列表,不会引起id的变化;
+ : 只能执行列表之间的操作;会拷贝成一个新对象,引起id的变化;
append()函数速度更快
比较速度代码:

import time
import random

start1 = time.time()
a1 = list()
for i in range(1, 10000):#要range()中数值改变!!!
a1 = a1 + [random.randint(0, 100)]
stop1 = time.time()
print(“使用+耗用的时间:”, stop1 - start1)
start2 = time.time()
a2 = list()
for j in range(1, 10000): #要range()中数值改变!!!
a2.append(random.randint(0, 100))
stop2 = time.time()
print(“使用append()耗用的时间:”, stop2 - start2)
print()

2.什么是URL?
URL是Uniform Resource Location的缩写bai,译为“统一资源定位符”。通俗地说du,URL是Internet上用来描述信息资源的字符串zhi,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。

3.简单解释Python中以下划线开头的变量名特点。
在Python中,以下划线开头的变量名有特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员:
l _xxx:这样的对象叫做保护变量,不能用’from module import *'导入,只有类对象和子类对象能访问这些变量;
l xxx:系统定义的特殊成员名字;
l __xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。Python中没有纯粹的C++意义上的私有成员。

4.什么是函数的关键值参数,作用是什么,请举例说明。
不准确(除了位置参数的函数参数使用方式,还有一种在函数调用时指定形参等于指定实参的参数使用模式,该模式称为关键字参数。
关键字参数使用可以不按形参的顺序传递实参,系统按形参的名字确认实参传递给哪个参数。
def minus(minuend,subtractor):    return minuend-subtractor  #定义一个减法函数
minus(10,2) #结果为8
minus(2,10) #结果为-8
minus(subtractor=10,minuend=2) #结果为-8)

5.在Python中导入模块对象有哪几种方式?
1、导入整个模块:
一般格式为:
import 模块1[模块2[,…]]
例如:import numpy(后面这个模块名字可更换)
模块名就是程序文件的前缀,不含.py,可一次导入多个模块,导入模块后,调用模块中的函数或类时,需要以模块名为前缀,这样代码读起来更容易理解.
2、与form联用导入整个模块:
一般格式为:
form 模块名 import*
例如:from modname import*
这种方式导入模块后,调用模块中的函数或类,仅使用函数名或类名,代码简洁,但可读性差,不容易理解
3、与form联用导入一个或多个对象:
一般格式为:
form 模块名 import 对象1[,对象2[,对象…]]
例如:from fibo import fib, fib2
这种方式只导入模块中的一个或多个对象,调用模块中的对象时,仅使用对象名(#与方法二类似)
4.import 模块名 as 别名
例如:import mymodule as mx

6.什么是lambda函数,如何定义?
lambda函数也叫匿名函数,即没有具体名称的函
数,它允许快速定义单行函数,可以用在任何需要
函数的地方。
 lambda的语法形式如下
 lambda arg1, arg2, argN expression
首先是关键字 lambda;随后是一个或多个参数,
其形式与用def定义函数的参数形式类似;紧跟的
是一个冒号;最后是一个表达式,表达式使用的参
数需要在冒号左边进行定义,表达式的结果即是该
匿名函数的结果。

程序阅读题
1.下面代码的输出结果是:
l1 = [1, 2, 3, 2]
l2 = [‘aa’, ‘bb’, ‘cc’, ‘dd’, ‘ee’]
d = {}
for index in range(len(l1)):
d[l1[index]] = l2[index]
print(d)

{1: ‘aa’, 2: ‘dd’, 3: ‘cc’}

2.阅读下面的代码,并分析假设文件“D:test.txt” 不存在的情况下两段代码可能发生的问题。
代码1:
try:
fp = open(r’d:\test.txt’)
print(“Hello word!”, file=fp)
finally:
fp.close()
代码2:
try:
fp = open(r’d:\test.txt’, ‘a+’)
print(“Hello word!”, file=fp)
finally:
fp.close()

假设文件"D:\test.txt" 不存在,那么第一段代码会抛出异常, 提示fp没有定义;第二段
代码执行正常。原因是第二段代码使用内置函数 open()打开指定文件时如果不存在则会创
建该文件,从而不会抛出异常。

综合题
1.采面向对象的方法,构建一个交通工具类(至包含颜色和品牌两个属性),然后构建一个其派生出的子类: 小汽汽类(除了继承自基类的属性,包含排量属性) ;并通过重载(写)的方法在每个类里面实现一个输出当前对象属性的方法display () ;最后构建几个小汽车类的对象,并将其放入一个列表中,然后通过在循环中调用display () 方法输出此列表中每个对象的属性。
class Vechicle:
    def init(self,brand,color):
        self.brand = brand
        self.color = color
    def display(self):
        print(“这个交通工具颜色是” + self.color)
        print(“这个交通工具牌子是” + self.brand)
class Car(Vechicle):

def init(self,brand,color,displacement):
        Vechicle.init(self,brand,color)
        self.displacement = displacement
    def display(self):
        print(“这个汽车的颜色是” + self.color)
        print(“这个汽车的牌子是” + self.brand)
        print(“这个汽车的排量是” + self.displacement)

C = []
c1 = Car(‘a’,‘red’,‘1.0’)
C.append(c1)
c2 = Car(‘b’,‘red’,‘2.0’)
C.append(c2)
for i in C: 
    i.display()

2.编写函数,接收一个字符串,分别统计大写字母、小写母、数字、其他字符的个数,并以元组形式返回结果。
s = input(‘请输入一个字符串:\n’)
lower = []
capital = []
digit = []
others = []
for i in s:
if i.islower():
lower.append(i)
elif i.isupper():
capital.append(i)
elif i.isdigit():
digit.append(i)
else:
others.append(i)
print(‘小写字母的个数:{}’.format(len(lower)))
print(‘大写字母的个数:{}’.format(len(capital)))
print(‘数字的个数:{}’.format(len(digit)))
print(‘其他字符的个数:{}’.format(len(others)))
print(‘小写字母为:’, tuple(lower))
print(‘大写字母为:’, tuple(capital))
print(‘数字为:’, tuple(digit))
print(‘其他字符为:’, tuple(others))

3.编写程序,定义一个求阶乘的函数fact(n),并编写测试代码,要求输入大于0的整数,用递归和非递归两种方式实现。
n = int(input(‘请输入一个大于零的整数:’))
#递归
def fact(n):
    fact1 = 0
    if n == 0:
        fact1 = 1
    else:
        f1 = n * fact(n - 1)
    return fact1
#非递归
def notf(m):
    num = 1
    if n == 0:
        num = 1
    else:
        for i in range(m):
            num = m * num
            m = m-1

return num
print(“递归方式:{0}!= {1}”.format(n, fact(n)))
print(“非递归方式:{0}!= {1}”.format(n, notf(n)))

4.编写程序,利用可变参数定义一个求任意个数数值的最小值的函数min_n(a,b,*c),并编写测试代码,如:print(min_n(8,2)) 及print(min_n(16,1,7,4,15))的测试代码,运行结果为:
最小值为 2 最小值为 1
def my_min(a,*b):
 list=[]
 list.append(a)
 for k in b:
  k=int(k)
  list.append(k)
 length=len(list)
 for i in range(0,length):
  for j in range(0,length-i-1):
   if list[j]<list[j+i]:
    continue
   elif list[j]>list[j+1]:
    list[j],list[j+1]=list[j+1],list[j]
 return(list[0])

1、Python语言的特点及书写规范。 (语言特点
Python语言的特点,Python语言是一种面向对象的解释型语言
1、解释型,开源,简单,易学,免费
2. 可扩展性,丰富的库,可移植性,面向对象
3.规范的代码,可读性较强
语法规则
1.Python严格区分大小写
2.Python每行就是 一条语句,以换行符结束(不以;结束)
3.Python每行语句可以多行编辑,可以以\结尾
4.Python严格缩进
5.Python用#进行注释

2、Python标识符的命名规则。 (标识符需要区分大小写,python是严格区分大小写的。即"abc"和"ABC"是两个不同得到的标识符
不能使用关键字定义标识符。
第一个字符必须是字母或下划线。之后可以用字母,数字,下划线。
避免使用双下划线开头,因为在python中双下划线开头和结尾的的名称大部分带有特殊意义,如__dict__,__int__等。

6、Python常用的数据类型有哪些?如何查看数据类型?哪些是可变数据类型?哪些是不可变数据类型?(整数int 字符串str 浮点数float 布尔型bool 列表list 字典dict 集合set 元组tuple

可变类型:就是这个数据类型的值在不改变这一块内存空间,而去改变这个数据类型的值。
1.列表
2.字典
3.集合

不可变类型:当改变值得时候,会申请一块新的内存空间,不再是原来的那一块内存空间了。
整数
字符串
浮点数
布尔型
元组

23、什么是异常?Python的异常处理机制。(异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。

    异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

   1、如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

    2、如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

    3、如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

)

16、什么是进程、线程?
进程:进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用程序一旦执行,就是一个进程。每个进程都有自己独立的地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。

线程:程序执行的最小单位。

Python循环有哪些方式?如何退出循环?
1、退出循环有几种方法
(1)可使用while循环让程序在用户在愿意的时不断运行。
在其中定义一个退出值,只要用户输入的不是这个,程序就接着运行。
2)用break退出:当明确遇到某些条件即退出时使用
当程序执行到break,不管后面直接退出循环(而不是if-else模块)。
break主要用于控制if-else语句,可使用ta来控制哪些代码将执行,哪些代码不执行。
(3)在循环中使用continue:当循环中需要跳过一些值时使用
当程序执行到continue,直接跳出本次循环,进入下一次循环。在遇到continue的时候,不管后面的else直接进入下一次while。

选择题
1、假设file是文本文件对象,下列选项中,哪个用于读取一行内容?(C )
A. file.read( ) B. file.read(200) C.file.readline( )D. file.readlines(D )
2、阅读下面的程序:
list_demo=[1,2,1,3]
nums=set(list_demo)
for i in nums:
print(i,end=“”)

A.1213 B.213 C.321 D.123
3、关于__name__的说法,下列描述错误的是(B )。
A.每个模块内部都有一个__name__属性 B.它是Python提供的一个方法 C.当它的值为’main‘时,表示模块自身在运行 D.当它的值不为’main’时,表示模块被引用
4、关于函数的参数,以下选项中描述错误的是(A)
A.可选参数可以定义在非可选参数的前面 B.一个元组可以传递给带有星号的可变参数 C.在定义函数时,可以通过在参数前增加设计可变数量参数 D.在定义函数时,如果有些参数存在默认值,可以在定义函数时直接为这些参数指定默认值
5、Python语言正确的标识符是( C)。
A.2you B. my-name C._item D.abc
234
6、构造方法是类的一个特殊方法,Python中它的名称为( C )。
A.与类同名 B._construct C.init D.init
7、关于列表的说法,描述有错误的是(D )。
A.list是一个有序集合,没有固定大小 B.list可以存放任意类型的元素 C.使用list时,其下标可以是负数 D.list是不可变的数据类型
8、不支持切片操作的是( C )
A.字符串 B.列表 C.字典 D.元组
9、已知x=10,y=20,z=30:以下语句执行后x,y,z的值是(C )。
if x < y:
z=x
x=y
y=z

A.10,20,30 B.10,20,20 C.20,10,10 D.20,10,30
10、列不属于正则表达式常用方法的是(B)。
A.search() B.mkdis() C.findall() D.compile()
11、下面代码的输出结果是
for i in range(1,10,2):
print(i,end=“,”)

1,3,5,7,9,
12、下代码的输出结果是
a= 2
b= 2
C= 2.0
print(a==b,a, is b,a is c)
True True False
12、下面关于集合的描述,错误的是()
集合中的元素必须不可变
13、下面哪个属性的命名是私有属性的正确命名( )
_ _value
14、关于Python文件开模式的描述,以下选项中错误的是
创建写模式n
15、关于Python的元组类型,以下选项中描述错误的是
元组-旦创建就还能被修改
16、关于Python循环结构,以下选项中描述错误的
continue结束整个循环过程,不再判断循环的执行条件
17、Python内置的集成开发工具是
IDLE

填空题
1、在Python中,可以使用( class )关键字来声明一个类。
2、在循环体中使用( break )语句可以跳出循环体。
3、线程对象的_____join()方法用来阻塞当前线程,指定线程运行结束或超时后继续运行当前线程
4、在现有类基础上构建新类,新的类称作子类,现有的类称作( 父类 )。
5、使用( return )语句可以返回函数值并退出函数。
6、每个模块都有一个( “name” )属性,使程序块只能在模块自身运行时执行。
7、TCP/IP的传输层包含两个传输协议:面向连接的TCP和非面向连接的_____UDP
___。
8、在列表中查找元素时可以使用(not in )和in运算符。
9、Python内置的集成开发工具是__idle___________。
10、子类通过(super() )可以成功地访问父类的成员。
11、假设列表对象sList的值为[3, 4, 5, 6, 7,9, 11, 13, 15, 17],那么切片aList[2:7]得到的值是__[5, 6, 7, 9, 11]
12、Lock对象有两个状态,分别是locked 和__unlocked____
13、假设设per为类Person的对象且包含一个私有数据成员“_ value",那么在类的外部通过对象per直接将其私有数据成员“ value”的值设置为3的语句可以写作______
per.Person__value=3
14、range(1,5)返回一个列表,请写出面的元素__1,2,3,4
___
15、Python标准库___socket___对Socket进行了二次封装,支持Socket接口的问,大幅度简化了网络程序的开发。
16、Python语句list(range(1,10,3))执行结果为__[1,4,7]___
17、面对对象程序设计的三要素分别为封装、继承和_多态___
18、表达式’a’ + ‘b’的值为_____ab
19、Python语句print(tuple(range(2)), list(range(2)))的运行结果是____(0, 1) [0, 1]
20、表达式re.findall(r’x[0-9]x’,’x2x,xyx,x10x,x8x’ )的结果为___[‘x2x’, ‘x8x’]

简答题
2.简单解释TCP和UDP协议的区别,他们分别用于哪些场合?
TCP面向连接,UDP 非面向连接,TCP传输数据可确保数据能够完整送达较为可靠,UDP无法确保数据可以完整送达并不可靠
类似邮件传输等对数据完整性、准确性、可靠性有较高要求的应用场合需要使用TCP协议进行传输
类似直播视频传输等对数据完整性、准确性、可靠性要求较低的应用场合一般使用UDP协议进行传输
3、简述元组、列表和字典的区别。
(1)外形:列表是中括号括起来的数据;元组是圆括号括起来的数据;字典是花括号括起来的数据
(2)存储结构:列表可以存储多个不同类型的数据,以逗号分隔;元组同样能存储多个不同类型的数据,以逗号分隔;字典能存储多个键值对,以逗号分隔,键是唯一的,值是任何类型的。
(3)访问方式:列表可以通过下标索引访问元素,索引从0开始;元组可以通过下标索引访问值,索引从0开始;字典通过键来访问值。
(4)是否可变类型:列表是可变类型,列表是不可变类型,字典是可变类型。
4、请简要说明函数定义的规则。
学生答案:
使用def关键字进行定义,需要有函数名和函数体,必要时函数名后括号内要有形参,括号结束后要有冒号结尾,例如:
def test(a,b):
return 1
5、简述面向对象程序设计的三个特征?
封装:把对象的属性私有化,同时提供可以被外界访问这些属性的方法。(如果属性不想被外界访问,那大可不必提供方法给外界访问;但是如果一个类没有提供给外界访问的方法,那么这个类也没有什么意义了)
继承:是使用已存在的类的定义,作为建立新类的基础技术,新类可以增加新的属性或新的方法,也可以用父类的功能,但不能选择性地继承。通过使用继承,能够非常方便地复用这些代码。
子类拥有父类对象中的所有属性和方法(包括私有属性和方法,但这些子类是无法访问的,只是拥有);
子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;
子类可以用自己的方式重新实现(Override,重写覆盖)父类的方法。
多态:表现为程序中定义的引用变量,所指向的具体类型和具体调用的方法,在编译期并不能确定,而是在程序运行期确定。
6、列表中使用“+ ”和append()函数的区别?速度如何?并列举实例。
append(): 可添加任何对象,但无论是什么对象,统统算一个元素在列表末尾添加;原地修改列表,不会引起id的变化;

  • : 只能执行列表之间的操作;会拷贝成一个新对象,引起id的变化;
    append()函数速度更快
    比较速度代码:

import time
import random

start1 = time.time()
a1 = list()
for i in range(1, 10000):#要range()中数值改变!!!
a1 = a1 + [random.randint(0, 100)]
stop1 = time.time()
print(“使用+耗用的时间:”, stop1 - start1)
start2 = time.time()
a2 = list()
for j in range(1, 10000): #要range()中数值改变!!!
a2.append(random.randint(0, 100))
stop2 = time.time()
print(“使用append()耗用的时间:”, stop2 - start2)
print()

8、简单解释Python中以下划线开头的变量名特点。
第一种答案:
在Python中,以下划线开头的变量名有特殊的含义,尤其是在类的定义中。用下划线作为变量前缀和后缀来表示类的特殊成员:
l _xxx:这样的对象叫做保护变量,不能用’from module import *'导入,只有类对象和子类对象能访问这些变量;
l xxx:系统定义的特殊成员名字;
l __xxx:类中的私有成员,只有类对象自己能访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。Python中没有纯粹的C++意义上的私有成员。

9、什么是函数的关键值参数,作用是什么,请举例说明。
不准确(除了位置参数的函数参数使用方式,还有一种在函数调用时指定形参等于指定实参的参数使用模式,该模式称为关键字参数。
关键字参数使用可以不按形参的顺序传递实参,系统按形参的名字确认实参传递给哪个参数。
def minus(minuend,subtractor): return minuend-subtractor #定义一个减法函数
minus(10,2) #结果为8
minus(2,10) #结果为-8
minus(subtractor=10,minuend=2) #结果为-8)

10、在Python中导入模块对象有哪几种方式?
1、导入整个模块:
一般格式为:
import 模块1[模块2[,…]]
例如:import numpy(后面这个模块名字可更换)
模块名就是程序文件的前缀,不含.py,可一次导入多个模块,导入模块后,调用模块中的函数或类时,需要以模块名为前缀,这样代码读起来更容易理解.
2、与form联用导入整个模块:
一般格式为:
form 模块名 import*
例如:from modname import*
这种方式导入模块后,调用模块中的函数或类,仅使用函数名或类名,代码简洁,但可读性差,不容易理解
3、与form联用导入一个或多个对象:
一般格式为:
form 模块名 import 对象1[,对象2[,对象…]]
例如:from fibo import fib, fib2
这种方式只导入模块中的一个或多个对象,调用模块中的对象时,仅使用对象名(#与方法二类似)
4.import 模块名 as 别名
例如:import mymodule as mx

程序阅读题
1、写出下列程序的运行结果。
class Person:
def init(self, name):
self.name = name
print(“%s–init–” % self.name)
def del(self):
print(“%s–del–” % self.name)

person = Person(“小明”)
del person
print(“–end–”)
答案:
小明–init–

小明–del–

–end–
2、写出下列程序的运行结果。
list1=[2,5,7,2,7,8]
list2=[]
for item in list1:
if item not in list2:
list2.append(item)
print(list2)
答案:
[2, 5, 7, 8]
3、下面代码的输出结果是:
l1 = [1, 2, 3, 2]
l2 = [‘aa’, ‘bb’, ‘cc’, ‘dd’, ‘ee’]
d = {}
for index in range(len(l1)):
d[l1[index]] = l2[index]
print(d)

{1: ‘aa’, 2: ‘dd’, 3: ‘cc’}

4、阅读下面的代码,并分析假设文件“D:test.txt” 不存在的情况下两段代码可能发生的问题。
代码1:
try:
fp = open(r’d:\test.txt’)
print(“Hello word!”, file=fp)
finally:
fp.close()
代码2:
try:
fp = open(r’d:\test.txt’, ‘a+’)
print(“Hello word!”, file=fp)
finally:
fp.close()

假设文件"D:\test.txt" 不存在,那么第一段代码会抛出异常, 提示fp没有定义;第二段
代码执行正常。原因是第二段代码使用内置函数 open()打开指定文件时如果不存在则会创
建该文件,从而不会抛出异常。

综合题
1、编写程序,生成包含1000个100到200之间的随机整数,并统计每个元素的出现次数。
import random x = [random.randint(100,200) for i in range(1000)]

方法一:使用集合s = set(x)for v in s: print(v, ‘:’, x.count(v)) print(‘=’*30)

#方法二: 使用字典d = dict()for v in x: d[v] = d.get(v,0) + 1for k, v in d.items(): 144 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE print(k, v, sep=‘:’)
2、设计一个课程类,包括课程编号、课程名称、任课教师、上课地点等属性,把上课地点设为私有,增加属性初始化方法和显示课程信息的方法。
class Class:
def init(self,numble,name,tea,place):
self.numble = numble
self.name = name
self.tea = tea
self.__place = place

def outclass(self):
    return '课程编号{}、课程名称{}、任课教师{}、上课地点{}。'.format(self.numble,self.name,self.tea,self.__place)

a = Class(1,‘python’,‘老师’,‘学校’)
print(a.outclass())
3、采面向对象的方法,构建一个交通工具类(至包含颜色和品牌两个属性),然后构建一个其派生出的子类: 小汽汽类(除了继承自基类的属性,包含排量属性) ;并通过重载(写)的方法在每个类里面实现一个输出当前对象属性的方法display () ;最后构建几个小汽车类的对象,并将其放入一个列表中,然后通过在循环中调用display () 方法输出此列表中每个对象的属性。
class Vechicle:
def init(self,brand,color):
self.brand = brand
self.color = color
def display(self):
print(“这个交通工具颜色是” + self.color)
print(“这个交通工具牌子是” + self.brand)
class Car(Vechicle):

def __init__(self,brand,color,displacement):
    Vechicle.__init__(self,brand,color)
    self.displacement = displacement
def display(self):
    print("这个汽车的颜色是" + self.color)
    print("这个汽车的牌子是" + self.brand)
    print("这个汽车的排量是" + self.displacement)

C = []
c1 = Car(‘a’,‘red’,‘1.0’)
C.append(c1)
c2 = Car(‘b’,‘red’,‘2.0’)
C.append(c2)
for i in C:
i.display()

4、编写函数,接收一个字符串,分别统计大写字母、小写母、数字、其他字符的个数,并以元组形式返回结果。
第一种:
intCount = []
upstrCount = []
lowstrCount=[]
otherCount = []
def StatisticalNumber(a):
for i in a:
if i.isdigit():
intCount.append(i)
elif i.islower():
lowstrCount.append(i)
elif i.isupper():
upstrCount.append(i)
else:
otherCount.append(i)
return intCount,upstrCount,lowstrCount,otherCount
a=input(‘请输入一个字符串:’)

a,b,c,d=StatisticalNumber(a)
print(‘数字的个数:{}’.format(len(a)))
print(‘大写字母的个数:{}’.format(len(b)))
print(‘小写字母的个数:{}’.format(len©))
print(‘其他字符的个数:{}’.format(len(d)))
a=tuple(a)
b=tuple(b)
c=tuple©
d=tuple(d)
print(a,b,c,d)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值