Python练习题一

1.将华氏温度转换为摄氏温度,转换公式:F =1.8C + 32

f=input()

if f[-1] in ['f','F']:

    c=(float(f[0:-1])-32)/1.8

    print("%.2fC"%c)

else:

    print("输入错误")

2.输入半径计算圆的周长和面积

import math

r=input()

r1=float(r)

if r1>=0:

    c=2*math.pi*r1

    s=math.pi*r1**2

    print("%.2f"%c)

    print("%.2f"%s)

else:

    print("输入错误")

3.输入年份判断是不是闰年

import calendar

year=int(input())

year1=calendar.isleap(year)

if year1==True:

    print("%d年是闰年"%year)

else:

    print("%d年是平年"%year)

4.英制单位英寸和公制单位厘米互换,已知:1英寸=2.54厘米

a=float(input())

b=input()

if b in ['in','英寸']:

    print("%.3f英寸=%.3f厘米"%(a,a*2.54))

elif b in ['cm','厘米']:

    print("%.3f厘米=%.3f英寸"%(a,a/2.54))

else:

    print("输入有误")

5.现有一个骰子,要求扔出骰子后,输出骰子的点数(骰子每面朝上的概率均等)

import random

a=random.randint(1,6)

print("%d点"%a)

6.输入百分制成绩的分数,转其转换为等级制成绩并输出,90分以上–> A,80分~89分–> B,70分~79分–> C,60分~69分–> D,60分以下–> E

score=float(input())

if score>=90:

    grade='A'

elif score>=80:

    grade='B'

elif score>=70:

    grade='C'

elif score>=60:

    grade='D'

else:

    grade='E'

print(grade)

7.判断输入的三条边的边长能否构成三角形,如果能则计算出三角形的周长和面积(提示:用边长计算三角形面积的公式为海伦公式)

import math

a=float(input())

b=float(input())

c=float(input())

if (a+b>c) and (a+c>b) and (b+c>a):

    ci=a+b+c

    p=(a+b+c)/2

    s=math.sqrt(p*(p-a)*(p-b)*(p-c))

    print("周长为%.3f"%ci)

    print("面积为%.3f"%s)

else:

    print("不能构成三角形")

8.输入一个数判断是不是素数

import math

a=int(input())

b=int(math.sqrt(a))+1

c=True

for i in range(2,b):

    if a%i==0:

      c=False

      break

if (c==True) and (a!=1):

    print("%d是素数"%a)

else:

    print("%d不是素数"%a)

9.输入两个正整数,计算最大公约数和最小公倍数

a=int(input())

b=int(input())

a1=a

b1=b

while True:

    r=a%b

    if r==0:

        print("最大公约数为%d"%b)

        print("最小公倍数为%d"%(a1*b1/b))

        break

    else:

        a=b

        b=r

10.一个三位的十进制数字 N,如果它的百位数、十位数和个位数的立方和,恰好等于这个数字本身,那么,这个数字 N 就是水仙花数,编写程序,求出所有三位水仙花数

for i in range(1,10):

    for j in range(0,10):

        for k in range(0,10):

            if i**3+j**3+k**3==i*100+j*10+k:

                print(i*100+j*10+k)

11.所谓完美数,是指这样的一个数,它等于其真因子(不包括它本身)的和,例如:6=1+2+3;28=1+2+4+7+14,编写程序,找出1000以内的完美数

import math

for i in range(2,1000):

    a=0

    for j in range(1,int(math.sqrt(i))+1):

        if i%j==0:

            a=a+j

            b=i/j

            if b!=i and b!=j:

                a=a+b

    if a==i:

        print(i)

12.公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?

for i in range(0,20):

    for j in range(0,33):

        k=100-i-j

        if i*5+j*3+k/3==100:

            print("公鸡、母鸡、小鸡各%d、%d、%d只"%(i,j,k))

13.一个斐波那契数列,其起始两项为0和1,此后的每一项为它的前两项之和,编写程序,构造斐波那契数列

a=0

b=1

print(a," ",end='')

print(b," ",end='')

for _ in range(20):

    c=a+b

    a=b

    b=c

    print(c," ",end='')

14.有两个骰子,每个骰子每面朝上的概率是均等的,现在两个人玩游戏:如果第一次掷出的点数和为7或11,则A胜;如果第一次掷出的点数和为2、3、12,则B胜;若和为其他点数,则记录第一次掷出的点数,然后继续掷,直到点数和等于第一次掷出的点数和,此时 A 胜,若这个过程中,掷出的点数和为7,则B胜。编写程序,输出最后胜利的人

from random import randint

a1=randint(1,6)+randint(1,6)

print("a1为%d"%a1)

if a1==7 or a1==11:

    print("胜利的为A")

elif a1==2 or a1==3 or a1==12:

    print("胜利的为B")

else:

    while True:

        a2=randint(1,6)+randint(1,6)

        print("a2为%d"%a2)

        if a2==a1:

            print("胜利的为A")

            break

        if a2==7:

            print("胜利的为B")

            break
发布了48 篇原创文章 · 获赞 25 · 访问量 2453

猜你喜欢

转载自blog.csdn.net/qq_43628959/article/details/97423594