python100道经典例题——第十四天

python入门题
每天五题练习
本文章记录了python经典编程题目,初学者必须要学会哦

实例 066:

题目:用户输入位数n,找出并显示出所有n位的自幂数。(自幂数是指一个n位正整数,如果它的各位数字的n次方的和加起来等于这个数,数学家称这样的数为自幂数。例如,13+53+33=153,153就是一个3位的自幂数,3位自幂数也称为水仙花数。本程序设n的数值为1~6,当n大于6时,程序退出。)

【程序实现】

#自幂数
start=0
end=0
digit=0
m=0
n=int(input('请选择自幂数的位数【1,2,3,4,5,6】:'))
while 0<n<7:
    start=pow(10,n-1)
    end=pow(10,n)-1
    print(n,'位数的自幂数有:')
    for k in range(start,end+1):
        m=k
        total=0
        while m!=0:
            digit=m%10
            total+=pow(digit,n)
            m=m//10
        if total==k:
            print(str(k),end=' ')
    n=int(input('\n 请选择自幂数的位数【1,2,3,4,5,6】:'))
else:
    print('输入位数不在范围内,程序结束。')
实例 067:

题目:编写程序,解一元二次方程 ax2+bx+c=0。

from math import *
print("本程序求 ax^2+bx+c=0 的根")
a=float( input("请输入 a:") )
b=float( input("请输入 b:") )
c=float( input("请输入 c:") )
delta=b*b-4*a*c
if(delta>=0):
    delta=sqrt(delta)
    x1=(-b+delta)/2/a
    x2=(-b-delta)/(2*a)
    print("两个实根分别为:",x1,x2)
else:
    print("没有实根")
实例 068:

题目:输入两个整数,打印它们相除之后的结果。对输入的不是整数或除数为零,进行异常处理。

k=0
while(k<3):
    try:
        x=int(input('请输入第一个整数:'))
        y=int(input('请输入第二个整数:'))
        print('x/y=',x/y)
    except ValueError:
        print('请输入一个整数。')
    except ZeroDivisionError:
        print('除数不能为零。')
    k=k+1
实例 069:

题目:定义公民类,实例成员变量有身份证号、姓名、年龄和性别。定义公民类的派生类:学生类和教师类。学生类增加实例成员变量学号、班级和分数;教师类增加实例变量工号、系别和工资。编写主程序, 定义类的对象,设置对象的实例属性,显示对象的信息。

class Citizen:
    def __init__(self,id,name,age,sex):
        self.id = id
        self.name = name
        self.age = age
        self.sex = sex
class Student(Citizen):
    def __init__(self,id,name,age,sex,stdno,grade,score):
        super(Student, self).__init__(id,name,age,sex)
        self.stdno = stdno
        self.grade = grade
        self.score = score
class Teacher(Citizen):
    def __init__(self,id,name,age,sex,thno,dept,salary):
        super(Teacher, self).__init__(id,name,age,sex)
        self.thno = thno
        self.dept = dept
        self.salary = salary #主程序
c=Citizen('101','zhang',20,'female')
print(c.id,c.name,c.age,c.sex)
s=Student('102','wang',30,'male',1221,'computer12',630)
print(s.id,s.name,s.age,s.sex,end=" ")
print(s.stdno,s.grade,s.score)
t=Teacher('103','li',36,'male',356,'eie',4500)
print(t.id,t.name,t.age,t.sex,end=" ")
print(t.thno,t.dept,t.salary)
实例 070:

题目:哥德巴赫猜想说是说,任何一个超过2的偶数都可以写成两个素数之和,例如,4=2+2,8=5+3等。本例要求根据用户输入的偶数找出其素数和的分解形式。

def main():
    # 输入待验证的偶数
    N=int(input("请输入待验证的偶数:"))
    while N<3 or N%2==1:
        print("输入的数不符合要求")
        N=int(input("请输入待验证的偶数n(n>2):"))
    #生成素数表
    Prime=set()
    for i in range(2,N+1):
        Prime.add(i)
    for i in range(2,N+1):
        if i in Prime:
            for k in range(2*i,N+1,i):
                if k in Prime:
                    Prime.remove(k)
    #验证该偶数能否分解为两个素数之和
    for e in Prime:
        f=N-e
        if f>=e and f in Prime:
            print(N,'=',e,'+',f)
main()

今天的任务完成啦~
明天继续加油~冲冲冲!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

准时准点睡觉

如果觉得不错可以点点这里哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值