Python习题

这篇博客包含了多个Python编程练习题目,包括判断闰年、打印乘法表、找出1-1000的素数、寻找水仙花数以及模拟市内通话和出租车计费的函数实现。通过这些练习,可以提升Python编程基础和问题解决能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、用户输入一个年份,判断这一年是不是闰年,如果是,打印 xxx年是闰年,如果不是,打印xxx年不是闰年
一:能被4整除,但不能被100整除的年份(例如2008是闰年,1900不是闰年)
或者
二:能被400整除的年份(例如2000年)也是闰年。

y = input('请输入年份:')
if type(y).__name__ != 'int':
#判断年份输入是不是整数
    print '年份输入不合法'
else:
    if y%4 == 0 and y%100 != 0:
        print '%s 是闰年'%y
    elif y%400==0:
        print '%s 是闰年'%y
    else:
        print '%s 不是闰年'%y

2、打印乘法表
1x1=1
1x2=2 2x2=4
1x3=3 2x3=6 3x3=9
1x4=4 2x4=8 3x4=12 4x4=16
1x5=5 2x5=10 3x5=15 4x5=20 5x5=25
1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

#乘法表中每行表达式的数量=行数,被乘数=每行行号
for i in range(1,10):  #控制行数
    for j in range(1,i+1):  #控制每行打印几个表达式
        print str(j)+"x"+str(i)+"="+str(i*j)+'\t', #'\t'是空格,","是下打印内容在一行内
    print '\n' #结束换行

3、打印1-1000中的所有素数
素数,除了1和它本身以外不再有其他因数的数称为素数。

#先定义一个列表盛放结果
primeList = []
for i in range(1,1001):
    for j in range(2,i):
    #j遍历了2到i的所有整数
        if i%j==0
            break
    else:
    #循环到最后仍然没有break,则该数是素数,添加到列表中
        primeList.append(i)

print primeList

4、求100-999中的水仙花数
若三位数abc,abc=a^3+b^3+c^3, 则称abc为水仙花数。如153,1^3+5^3+3^3=1+125+27=153,则153是水仙花数

wList=[]
for a in range(1,10):
    for b in range(0,10):
        for c in range(0,10):
            abc = (a*100)+(b*10)+c
            num = pow(a, 3) + pow(b, 3) + pow(c, 3)
            if abc == num:
                wList.append(abc)
print wList

print wList.append(abc),
#[153, 370, 371, 407]
for number in range(100,1000):
    a = number//100  #取整余数
    b =(number-a*100)//10
    c =number-a*100-b*10
    if a**3 + b**3 + c**3 == number:
        print '%s 是水仙花数'%number
        print number,'是水仙花数.'

5、某公司的市内通话计费标准为:
三分钟内 0.2元
三分钟后每增加一分钟增加0.2元,不足一分钟按照一分钟算
要求编写程序,给定一个通话时间(单位:s),计算出收费金额

import math

def telfare(telTime):
    time = math.ceil(float(telTime)/60)  #math.ceil向上取整,只适用浮点类型数
    if time <= 3:
        fare = 0.2
    else:
        fare = 0.2+(time-3)*0.2
    return fare

print  telfare(250)

6、某市的出租车计费标准为:
3公里内10元,3公里以后每增加0.5公里加收1元,每等待2分钟加收1元
超过15公里加收原价50%的空驶费
每个写成一个函数
要求编写程序,对于任意给定的里程数(单位:km)和等待时间(单位:s)计算出应付车费
参数:公里数km,时长time,费用cost,
空驶费emptyrun;

import math
def taxiCost(km,time):
    km=float(km)
    mins=math.ceil(float(time/60))
    if km<=3.0:
        cost=10+math.ceil(mins/2.0)
    elif km>15:
        cost=(10+math.ceil(mins/2.0)+(km-3.0))*1.5
    elif km>3 and km<=15:
        cost=10+math.ceil(mins/2.0)+(km-3.0)
    return cost
print taxiCost(16,180)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值