python总结

Posted 钟钟终

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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")

以上是关于python总结的主要内容,如果未能解决你的问题,请参考以下文章

BootStrap有用代码片段(持续总结)

BootStrap实用代码片段(持续总结)

回归 | js实用代码片段的封装与总结(持续更新中...)

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段