python总结

断言处理assert 0 <= score <= 100
assert断言语句用来声明某个条件是真的,其作用是测试一个条件(condition)是否成立,如果不成立,则抛出异常

raise语句: 为了引发异常,而使用一个类(自定义的类)
定义一个 Circle 类,其中有求面积的方法,当半径小于 0 时,抛出一个用户自定义异常

import math
class Error(Exception):   #继承的子类
    def __init__(self,s1="半径应为正数"):
        print(s1)
class Circle:
    def __init__(self,r):
        self.r=r
        if r<0:
            raise Error
    def area(self):
        self.ae=self.r**2*math.pi
        return self.ae
try:
    r=int(input("请输入一正整数:"))
    c1=Circle(r)
    print(round(c1.area(),2))
except Error as ee:
    print(ee)
    

自定义异常例题:
和except组合使用,将捕获到的异常对象赋值给e,不然还会异常类的地址

假设成年人的体重和身高存在此种关系:身高(厘米)-100=标准体重(千克),如果一个人的体重与其标准体重的差值在正负 5%之间,显示“体重正常”,其他则显示“体重超标”或者“体重不达标”。编写程序,能处理用户输入的异常并且使用自定义异常类来处理身高小于 30cm、大于250cm 的异常情况。

class Range_error(Exception):
    def __init__(self, s1="身高输入异常,请重新输入"):
        print(s1)
try:
    hg=float(input("请输入身高:"))
    wg=float(input("请输入体重:"))
    st_wg=hg-100
    tmp=0.95*st_wg
    ans=1.05*st_wg
    if hg<30 or hg>250:
        raise Range_error
    elif tmp<=wg and wg<=ans:
        print("体重正常")
    elif wg>ans:
        print("体重超标")
    elif wg<tmp:
        print("体重不达标")
except Range_error as ee:
    print(ee)
    

11

import math
class Circle:
    def __init__(self,pos,r,color):
        self.pos=pos
        self.r=r
        self.color=color
    def show_circle(self):
        print(f"圆心位置:{self.pos} \t 半径:{self.r} \t 颜色:{self.color}")
    def cal_pm(self):
        return 2*math.pi*self.r
    def cal_area(self):
        return self.r**2*math.pi
c1=Circle((2,2), 5, 'blue')
c1.show_circle()
print(f'该⚪周长:{c1.cal_pm():.2f}')
print(f'该⚪面积:{c1.cal_area():.2f}')

class Failing:
    def __init__(self,t):
        self.t=t
    def speed(self):
        return 9.8*self.t
    def distance(self):
        return self.t**2*9.8
s=Failing(8)
print(f"指定时刻的速度:{s.speed():.2f},位移:{s.distance():.2f}")

import math
class Equation :
    def __init__(self,a,b,c):
        self.a=a
        self.b=b
        self.c=c
    def getDiscriminant(self):
        self.e=self.b**2-4*self.a*self.c
        return self.e
    def getroot1(self):
        self.x1=((-self.b)+math.sqrt(self.e))/(2*self.a)
        return self.x1
    def getroot2(self):
        self.x2=((-self.b)-math.sqrt(self.e))/(2*self.a)
        return self.x2
f=Equation(1, 4, 3)
if f.getDiscriminant()<0:
    print("该方程无解")
else:
    a=f.getroot1()
    b=f.getroot2()
    print(f"x1={a:.2f},x2={b:.2f}")
    
class Course:
    def __init__(self,cid,cname,tea,site):
        self.cid=cid
        self.cname=cname
        self.tea=tea
        self.__site=site
    def display(self):
        print(f"课程编号:{self.cid}\t\t课程名称:{self.cname}")
        print(f"课程教师:{self.tea}\t上课地点:{self.__site}")
c1=Course(1110,"England",'zhangsan','综合楼')
c1.display()

一些题目整理

import math
import random

#打印100~200间全部素数,每行10个数
def isprime(x):
    k=math.ceil(math.sqrt(x))
    for i in range(2,k+1):
        if x%i==0:
            return 0
    return 1;
g=0
for i in range(100,201):
    if isprime(i):
        print(i,end=" ")
        g+=1
    if g%10==0:
        print("\n")


# 用选择排序法对数组中的数据由小到大排序
def sort1(l1,n):
    for i in range(n-1):
        for j in range(i+1,n):
            if l1[i]>l1[j]:
                l1[i],l1[j]=l1[j],l1[i]
def main():
    l1=[random.randint(1, 100) for i in range(10)]
    print(f"原列表:{l1}")
    sort1(l1, len(l1))
    print(f"排序后列表:{l1}")
    
main()


#编写程序 打印等腰直角三角形
for i in range(5):
    s=""
    for i in range(i+1):
        s+='*'
    print(s)

#打印9*9乘法表
for i in range(1,10):
    s=""
    for j in range(1,i+1):
        s+=str.format("{0}*{1}={2} ",i,j,i*j)
    print(s)
    
    
a=3.1315
print(format(a,'*>15.3f'))
print(format(a,'*<15.3f'))


# =============================================================================
# print("欢迎进入100以内猜数游戏")
# try:
#     nb=random.randint(1,100)
#     a=int(input("请输入猜的数:"))
#     while 1:
#         if nb>a:
#             print("猜小了")
#         elif nb<a:
#             print("猜大了")
#         else:
#             print("猜中了")
#             break
#         a=int(input("请重新输入猜的数:"))
# except ValueError:
#     print("警告:只接受整数")
# =============================================================================

print("-"*70)
#类与继承:创建一个person类,在构造函数中初始化姓名,年龄属性,
#创建有返回值的方法获取人的姓名,年龄
class Person:
    def __init__(self,name,age):
        self.name=name
        self.age=age
    def get_name(self):
        return self.name
    def get_age(self):
        return self.age
    
class Student(Person):
    def __init__(self, name, age,score):
        Person.__init__(self,name, age)
        self.score=score
    def get_Maxsc(self):
        b=max(self.score)
        return b
    
a=Person("张三","99")
name1=a.get_name()
age1=a.get_age()
print(f"name={name1} \t age={age1}")

s1=Student("李四",54,(98,100,94))
name2=s1.get_name()
age2=s1.get_age()
score=s1.get_Maxsc()
print(f"name={name2} \t age={age2}\nmax_score={score}")

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值