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")返回True
def 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错题集(贰)相关推荐

  1. C语言练习题的错题集

    @C语言练习题错题集 判断题错题集 1.在对数组全部元素赋初值时,不可以省略行数,但能省略列数. 对于数组来说,列数是不可以省略的,相反的可以省略行数. 2.数组名就是一个指针常量,指向数组的首元素( ...

  2. golang的个人学习笔记以及错题集

    主要参考对象 https://docs.microsoft.com/zh-cn/learn/paths/go-first-steps/ https://tour.go-zh.org/ 安装 https ...

  3. C语言易错题集 第四部

    C语言易错题集 第四部 一.位操作相关 二.switch()相关 三.输出相关 四.实数相关 五.指针&a相关 六.指针访问数组元素相关 七.转义字符相关 八.类型提升问题 九.是不是正确的浮 ...

  4. C语言易错题集 第二部

    C语言易错题集后续 一.共用体相关(union) 二.do,while相关 三.char溢出相关 四.printf()相关 五.++相关 六. for语句相关 七.calloc()相关 八.defin ...

  5. c语言解三元一次方程组_七年级下学期《8.3 一元一次不等式组》2020年高频易错题集...

    一.选择题(共10小题) 二.填空题(共5小题) 三.解答题(共5小题) 七年级下学期<8.5 一元一次不等式组>2020年高频易错题集 参考答案与试题解析 一.选择题(共10小题) [点 ...

  6. php开发错题集,基于PHP技术数学错题集错系统的设计实现

    基于PHP技术的数学错题集错系统的设计与实现 摘要:现代信息技术的快速发展和不断更新,引发了教育教学领域的深刻变革.先进的教育理念鼓励教师把现代信息技术与其它学科课程相整合,鼓励教育技术从" ...

  7. “错题集”帮你期末考试冲向满分

    考试考不好,怎么办呢?习网的错题集可以全面的为学生解答平时的错误问题,是冲向满分的开始.考试没考好,一般分为以下几点: 1.睡眠不够,那就加强睡眠.延长睡眠的时间和提高睡眠质量,早半小时睡觉.睡觉前听 ...

  8. 阿里云ACP云计算错题集1-40

    大家都来考个阿里云ACP认证吧,这里是阿里云ACP云计算错题集1-40,powered by zhengkai.blog.csdn.net. 1.在阿里云上创建专有网络VPC时,VPC会自动为用户创建 ...

  9. 阿里云ACP云计算错题集71-100

    每天学一点阿里云ACP认证,这里是ACP错题集,今天先来复习几个概念:伸缩模式.伸缩组.伸缩配置.伸缩规则.伸缩活动. by Moshow郑锴(大狼狗) zhengkai.blog.csdn.net ...

最新文章

  1. 使用MySQL组复制的限制和局限性
  2. url指定服务器,Linux服务器设置定时任务来访问指定url
  3. Altium Designer旋转PCB、PCB中绕某点旋转
  4. SDMemoryCache中的NSMapTable
  5. 信息系统项目管理师:论项目的质量管理
  6. Mysql 主从数据库同步详解
  7. 廖雪峰说python_廖雪峰官网Python部分的疑问及解决
  8. 如何在开源社区贡献代码_如何在15分钟内从浏览器获得您的第一个开源贡献
  9. 有哪些开源的 Python 库让你相见恨晚?
  10. java处理表单变量_Java自学之SpringMVC:接收表单数据
  11. 一天快速入门 Python
  12. 通过iOS 9 SFSafariViewController提供完整的Web浏览体验
  13. HTTP头部POST表单详解
  14. “阿喀琉斯之踵”与“零缺陷”管理
  15. 00后程序员摸爬滚打近一年,为学弟学妹们总结出了以下 7 条人生建议(建议收藏)
  16. LabView的简单例题,尽量做到一题多解
  17. 计算机辅助公差技术主要研究内容,计算机辅助形位公差类型生成技术的分析研究.pdf...
  18. CTS、CLS和CLR
  19. python 3d绘图立方体_Python绘制立方体
  20. java根据书签添加内容_Java PDF书签——添加、编辑、删除、读取书签

热门文章

  1. vmware workstation虚拟机转为hyper-v简要步骤
  2. ehcache java 工具,Ehcache jar包下载
  3. 阿里云个人实名认证教程
  4. 【python】locals使用
  5. 持续集成与teamcity的安装和使用
  6. opengl glPushMatrix()
  7. 无从下手的数字音频处理器?我来教你怎样玩
  8. 宝宝树获阿里战略投资,估值已达140亿人民币
  9. MFC中CFileDialog用法
  10. 席八,迭代创建链表就是个坑货