Python错题集(贰)
1.编写一个函数,接收一个字符串,分别统计大写字母,小写字母,数字,其他字符的个数, 并以元组的形式返回结果def calculation(num):capital=little=digit=other=0for i in num:if 'A'<=i<='Z':capital += 1elif 'a'<=i<='z':little += 1elif '0'<=i<='9':digit += 1else:other += 1return (capital,little,digit,other)print(calculation('dsAI432@#$'))
2.利用异常机制实现一个函数is_num_str,能判断一个字符是否符合数字规范。如:is_num_str("1000.1")返回True, is_num_str("hello")返回False;如is_num_str("1000")返回Truedef is_num_str(s):try:float(s)return Trueexcept:return Falseprint(is_num_str('100.1'))
3. 判断101-200之间有多少个素数,并输出所有素数。(判断素数的方法:用一个数分别去除2到sqrt(这个数), 如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.)
import math for i in range(100,200): # 循环,在100-200范围内for j in range(2,round(math.sqrt(i))+1): # 判断在100-200范围内的数,在自身范围内有没有除断的数if i%j == 0: # 如果有,代表就不是素数了,就结束内存循环,回到外层循环,看下一个数breakelse: # 只有循环正常情况下结束,不是强行终止循环,才会执行else里面的代码print(i)
4. 编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时, 调用函数1/1+1/3+…+1/n
def peven(n): # 计算偶数s = 0.0 # 初始化变量,计算偶数和for i in range(2, n + 1, 2): # 计算是偶数,从2开始取值,步长设置为2,这样就会隔一个取值s += 1.0 / ireturn s # 将值返回到函数调用处def podd(n): # 计算奇数s = 0.0 # 初始化变量,计算偶数和for i in range(1, n + 1, 2): # 计算是奇数,从1开始取值,步长设置为2,这样就会隔一个取值s += 1.0 / ireturn s # 将值返回到函数调用处 def podd(n): # 计算奇数s = 0.0 # 初始化变量,计算偶数和for i in range(1, n + 1, 2): # 计算是奇数,从1开始取值,步长设置为2,这样就会隔一个取值s += 1.0 / ireturn s # 将值返回到函数调用处n = int(input('input a number: ')) if n % 2 == 0: # 判断输入的数是偶数还是奇数sum1 = peven(n) else:sum1 = podd(n) print(sum1)
5. 1.定义一个动物类 2.使用__init__方法,在创建某个动物时,为其添加name,age,color,food等属性,如‘猫’,3,‘黑色’,‘鱼’ 3.为动物类定义一个run方法,调用run方法打印相关信息,比如‘猫在奔跑’ 4.为动物类定义一个get_age方法,调用run方法打印相关信息,比如‘猫今年3岁了’ 5.为动物类定义一个eat方法,调用run方法打印相关信息,比如‘猫正在吃鱼’ 6.通过动物类分别创建三只不同种类动物,调用相应的方法class Animal:def __init__(self, name, age, color, food):self.name = nameself.age = ageself.color = colorself.food = fooddef run(self):print(f"{self.name}正在奔跑")self.get_age()self.eat()def get_age(self):print(f'{self.name}今年{self.age}岁')def eat(self):print(f'{self.name}正在吃{self.food}')cat = Animal('汤姆', 3, '黑色', '鱼') cat.run() # 通过run方法去调用其他方法 mouse = Animal('杰瑞', 2, '白色', '奶酪') mouse.run() # 通过run方法去调用其他方法 dog = Animal('旺财', 4, '白色', '肉骨头') dog.run()
6.定义一个汽车类,并在类中定义一个move方法,然后分别创建BMW_X9、AUDI_A9对象, 并添加颜色、马力、型号等属性,然后分别打印出属性值、调用move方法, 在move方法中打印‘汽车开始跑了’(使用__init__方法完成属性赋值)
# 汽车类 class Car(object):def __init__(self, color, speed, type):self.color = colorself.speed = speedself.type = typedef move(self, name):print(name + "汽车开始跑了")# BMW_X9对象 BMW_X9 = Car("red", 80, "F4") print('BMW_X9属性为:',BMW_X9.color, BMW_X9.speed, BMW_X9.type) BMW_X9.move('BMW_X9')# AUDI_A9对象 AUDI_A9 = Car("black", 100, "S3") print('AUDI_A9属性为:',AUDI_A9.color, AUDI_A9.speed, AUDI_A9.type) AUDI_A9.move('AUDI_A9')
7.定义一个人 类,在init方法中设置相应的属性(姓名,年龄,性别), 分别创建两个对象,利用__str__方法将个人信息组合成字符串返回并打印输出class Person:"""定义一个人“类”"""def __init__(self, name, weight):self.name = nameself.weight = weightdef __str__(self):return "我的名字叫%s 体重是%.2fkg" % (self.name, self.weight)xiaoming = Person("小明", 56)xiaomei = Person("小美", 44) print(xiaoming) print(xiaomei)
8.学校成员类(SchoolMember)具有成员的姓名和总人数属性。 教师类(Teacher)继承学校成员类,额外增加工资属性。 学生类(Student)继承学校成员类,额外增加成绩属性。 要求:创建教师和学生对象时,总人数加1,打印相关的姓名,工资/成绩信息;删除对象,则总人数减1.class SchoolMember:count = 0#总对象计数器def __init__(self,name):self.name = nameSchoolMember.count += 1#新增对象加1print("总人数为", SchoolMember.count)def dell(self, types):#删除对象SchoolMember.count -= 1 # 总数量减一print(f'减少{types}成员:{self.name}')del self # 删除当前对象print("总人数是",SchoolMember.count) class Teacher(SchoolMember): # 老师类,继承学校类def __init__(self,name,salary): # 初始化方法,额外增加了工资属性print(f'添加老师成员,基本信息为:姓名{name},薪水{salary}')SchoolMember.__init__(self,name) # 调用父类init方法,让成员加一self.salary = salaryclass Student(SchoolMember): # 学生类,继承学校类def __init__(self,name,score): # 初始化方法,额外增加了成绩属性print(f'添加学生成员,基本信息为:姓名{name},成绩为{score}')SchoolMember.__init__(self, name, ) # 调用父类init方法,让成员加一self.score = score print("添加操作") t1 = Teacher("zhangsan", 1000) # 创建老师对象 t2 = Teacher("lisi", 2000) s1 = Student("wangwu", 90) # 创建学生对象 s2 = Student("zhaoliu", 95) print("删除操作") t1.dell('teacher') # 调用删除方法,在老师与学生类里面都没有删除方法,但父类有,会继承父类的dell方法,传值是为了判断删除的成员是老师还是学生,只是直观显示 s1.dell('student')
9. 创建一个煎饼类 调用烹饪时长的方法累计煎饼状态 如果煎的时间在0-3之间则状态为生的 如果煎的时间在3-5之间则状态为半生不熟的 如果煎的时间在5-8之间则状态为全熟的 当时间超过8分钟状态焦了 并且还可以给煎饼添加作料 比如大葱,鸡蛋?,烤肠等等
class PanCake:def __init__(self):self.cooking_time = int(input('请输入烹饪时长:'))self.Seasoning = input('请输入需要添加的佐料:')def cook_time(self):if 0 < self.cooking_time <= 3:print(f'您煎了一个生的{self.Seasoning}煎饼')elif 3 < self.cooking_time <= 5:print(f'您煎了一个半生不熟的{self.Seasoning}煎饼')elif 5 < self.cooking_time <= 8:print(f'您煎了一个全熟{self.Seasoning}煎饼')elif self.cooking_time > 8:print(f'您煎了一个焦的{self.Seasoning}煎饼')else:print('您的输入有误') pancake1 = PanCake() pancake1.cook_time()
10.需求:警务人员和警犬一起工作,警犬分为两种:追击敌人和追查毒品。警务人员携带不同警犬,执行不同工作。 分析:有警务人员,警犬两个大类,利用多态完成class Dog(object):def work(self):pass class ArmyDog(Dog):def work(self):print('追击敌人')class DrugDog(Dog):def work(self):print('追查毒品')class People(object):def with_dog(self, dog):dog.work()ad = ArmyDog() dd = DrugDog()zs = People() zs.with_dog(ad)
11.士兵某某有一把枪(AK47), 士兵可以开火 枪能够发射子弹 枪能够添加子弹 枪类: 属性:型号,子弹数量 行为(方法):发射子弹,添加子弹 士兵类: 属性:士兵名称,枪支 行为:开火行为(需考虑到:是否有枪支?以及添加子弹,发射子弹)class Gun(object):def __init__(self, model): # 设置枪模型,子弹数量self.model = modelself.bullet_count = 0def __str__(self): # 返回当前枪类的状态,枪类型已经剩余子弹数量return "{}有{}发子弹".format(self.model, self.bullet_count)def shoot(self): # 发射子弹if self.bullet_count > 0: # 当子弹数量大于0,发射子弹,子弹数量减一print("发射子弹")self.bullet_count -= 1def add_bullet(self, count): # 添加子弹if self.bullet_count == 0: # 但子弹为0,进行添加子弹print('没有子弹啦,正添加子弹')self.bullet_count += countprint("添加子弹:{}颗".format(count)) class Soldier(object): # 士兵类def __init__(self, name):self.name = nameself.gun = 0def fire(self): # 开火if self.gun == 0:print("{}还没有枪".format(self.name))else:self.gun.add_bullet(10)print("开火")self.gun.shoot()# 创建枪对象 AK47 = Gun("AK47") print(AK47) # 创建士兵对象 keen = Soldier("keen") keen.fire() keen.gun = AK47 for i in range(11):keen.fire()print(AK47)
Python错题集(叁)_阿缇的博客-CSDN博客
Python错题集(贰)相关推荐
- C语言练习题的错题集
@C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...
- golang的个人学习笔记以及错题集
主要参考对象 https://docs.microsoft.com/zh-cn/learn/paths/go-first-steps/ https://tour.go-zh.org/ 安装 https ...
- C语言易错题集 第四部
C语言易错题集 第四部 一.位操作相关 二.switch()相关 三.输出相关 四.实数相关 五.指针&a相关 六.指针访问数组元素相关 七.转义字符相关 八.类型提升问题 九.是不是正确的浮 ...
- C语言易错题集 第二部
C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...
- c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...
一.选择题(共10小题) 二.填空题(共5小题) 三.解答题(共5小题) 七年级下学期<8.5 一元一次不等式组>2020年高频易错题集 参考答案与试题解析 一.选择题(共10小题) [点 ...
- php开发错题集,基于PHP技术数学错题集错系统的设计实现
基于PHP技术的数学错题集错系统的设计与实现 摘要:现代信息技术的快速发展和不断更新,引发了教育教学领域的深刻变革.先进的教育理念鼓励教师把现代信息技术与其它学科课程相整合,鼓励教育技术从" ...
- “错题集”帮你期末考试冲向满分
考试考不好,怎么办呢?习网的错题集可以全面的为学生解答平时的错误问题,是冲向满分的开始.考试没考好,一般分为以下几点: 1.睡眠不够,那就加强睡眠.延长睡眠的时间和提高睡眠质量,早半小时睡觉.睡觉前听 ...
- 阿里云ACP云计算错题集1-40
大家都来考个阿里云ACP认证吧,这里是阿里云ACP云计算错题集1-40,powered by zhengkai.blog.csdn.net. 1.在阿里云上创建专有网络VPC时,VPC会自动为用户创建 ...
- 阿里云ACP云计算错题集71-100
每天学一点阿里云ACP认证,这里是ACP错题集,今天先来复习几个概念:伸缩模式.伸缩组.伸缩配置.伸缩规则.伸缩活动. by Moshow郑锴(大狼狗) zhengkai.blog.csdn.net ...
最新文章
- 使用MySQL组复制的限制和局限性
- url指定服务器,Linux服务器设置定时任务来访问指定url
- Altium Designer旋转PCB、PCB中绕某点旋转
- SDMemoryCache中的NSMapTable
- 信息系统项目管理师:论项目的质量管理
- Mysql 主从数据库同步详解
- 廖雪峰说python_廖雪峰官网Python部分的疑问及解决
- 如何在开源社区贡献代码_如何在15分钟内从浏览器获得您的第一个开源贡献
- 有哪些开源的 Python 库让你相见恨晚?
- java处理表单变量_Java自学之SpringMVC:接收表单数据
- 一天快速入门 Python
- 通过iOS 9 SFSafariViewController提供完整的Web浏览体验
- HTTP头部POST表单详解
- “阿喀琉斯之踵”与“零缺陷”管理
- 00后程序员摸爬滚打近一年,为学弟学妹们总结出了以下 7 条人生建议(建议收藏)
- LabView的简单例题,尽量做到一题多解
- 计算机辅助公差技术主要研究内容,计算机辅助形位公差类型生成技术的分析研究.pdf...
- CTS、CLS和CLR
- python 3d绘图立方体_Python绘制立方体
- java根据书签添加内容_Java PDF书签——添加、编辑、删除、读取书签