python入门学习随记(五)

5-1 判断是否为四叶玫瑰数

题目要求:
任意输入一个4位整数N,判断并输出N是否为四叶玫瑰数
提示:四叶玫瑰数,即4位整数N的每位数字的 4 次幂之和等于它本身,即
abcd=a​4​​ +b​4​​ +c​4​​ +d4
​​
输入样例:

8208

输出样例:

8208 是四叶玫瑰数

输入样例:

1234

输出样例:

1234 不是四叶玫瑰数

x = int(input())
a = x // 1000
b = x // 100 - a*10
c = x // 10 - a*100 -b*10
d = x - a*1000 - b*100 -c*10
if x == a**4 + b**4 + c**4 + d**4:
    print(x,'是四叶玫瑰数')
else:
    print(x,'不是四叶玫瑰数')

5-2 字符串排序

本题要求编写程序,读入5个字符串,按由小到大的顺序输出。

输入格式:
输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。

输出格式:
按照以下格式输出排序后的结果:

After sorted:
每行一个字符串
输入样例:

red yellow blue green white

输出样例:

After sorted:
blue
green
red
white
yellow

x = list(input().split())
x.sort()
print('After sorted:')
for i in x:
    print(i)

5-3 身体质量指数BMI计算

获取用户输入的体重和身高值, 计算并给出国际和国内的BMI分类

国际和国内的BMI分类如下:

BMI.png

输入格式:
输入升高t和体重值,用逗号隔开,如: 1.68,41

输出格式:
输出 BMI数值,并显示国际和国内的分类,

输入样例:

1.68,41

输出样例:

BMI数值为:14.53
BMI指标为:国际’偏瘦’,国内’偏瘦’

x = input().split(',')
a = eval(x[0])
b = eval(x[-1])
bmi = b / a**2
bmi = '%.2f' %  bmi
print('BMI数值为:'+str(bmi))
bmi = float(bmi)
if bmi < 18.5:
    print("BMI指标为:国际'偏瘦',国内'偏瘦'")
elif bmi>=18.5 and bmi<24:
    print("BMI指标为:国际'正常',国内'正常'")
elif bmi>=24 and bmi<25:
    print("BMI指标为:国际'正常',国内'偏胖'")
elif bmi>=25 and bmi<28:
    print("BMI指标为:国际'偏胖',国内'偏胖'")
elif bmi >=28 and bmi <30:
    print("BMI指标为:国际‘偏胖’,国内'肥胖'")
elif bmi >=30:
    print("BMI指标为:国际'肥胖',国内'肥胖'")

5-4 温度转换

题目要求:
用户输入一个带符号(C或F,不区分大小写)的温度值,如果输入的温度为摄氏度(C或c)则将其转换为华氏度(F)并输出;如果输入的温度为华氏度(F或f),则将其转换为摄氏度(C)并输出,转换后的温度值保留2位小数,带符号(F或C);如果输入格式不正确,输出“输入格式错误”。

提示:
摄氏度:中国等世界大多数国家采用的温度体系,1标准大气压下谁的结冰点为0度,沸点为100度

华氏度:美国、英国等国家使用的温度体系,1标准大气下下水的结冰点为32度,沸点为212度

两种温度体系间的转换公式为:

C=(F - 32) /1.8
F= C * 1.8 +32
输入样例:

12.34C

输出样例:

54.21F

输入样例:

32f

输出样例:

0.00C

输入样例:

12

输出样例:

输入格式错误

x = input()
a = float(x[0:-1])
if x[-1] in ['c','C']:
    b = a*1.8 +32
    b = '%.2f' % b
    print(str(b)+'F')
elif x[-1] in ['f','F']:
    b = (a-32)/1.8
    b = '%.2f' % b
    print(str(b)+'C')
else:
    print('输入格式错误')

5-5 最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数。

输入格式:
输入在一行中给出两个正整数M和N(≤1000)。

输出格式:
在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1空格分隔。

输入样例:

511 292

输出样例:

73 2044

a = input().split()
x = int(a[0])
y = int(a[1])
if x > y:
    (x,y) = (y,x)
for i in range(x,0,-1):
    if x % i == 0 and y % i == 0:
        break
print(str(i),end=' ')
print(str(int(x * y / i)))

5-6 水仙花数

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。

本题要求编写程序,计算所有N位水仙花数。

输入格式:
输入在一行中给出一个正整数N(3≤N≤5)

输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。

输入样例:
在这里给出一组输入。例如:

3

输出样例:
在这里给出相应的输出。例如:

153
370
371
407

x = int(input())
for a in range(10**(x-1),10**x):
    b = list(str(a))
    c = [int(i)**x for i in b]
    if sum(c) == a :
        print(a)

5-7 打印九九口诀表

下面是一个完整的下三角九九口诀表:
在这里插入图片描述
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。

输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。

输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。

输入样例:

4

输出样例:

在这里插入图片描述

a = int(input())
b = 1
while b <= a:
    c = 1
    while c <= b:
        print("%d*%d=%-4d" % (c, b, b*c), end = "")
        c += 1
    print() 
    b += 1

5-8 输出三角形字符阵列

本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。

输入格式:
输入在一行中给出一个正整数n(1≤n<7)。

输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。

输入样例:

4

输出样例:

A B C D
E F G
H I
J

x = int(input())
y = 0
for i in range(x):
    for a in range(x-i):
        s = ord('A') + y
        y += 1
        print(chr(s),end=' ')
    print()

5-9 分段函数&数学函数

本题要求计算下列分段函数f(x)的值(x为从键盘输入的一个任意实数):

在这里插入图片描述
输入格式:
直接输入一个实数x

输出格式:
在一行中按“f(x)=result”的格式输出,其中x与result都保留三位小数。

输入样例:

3.14

输出样例:

f(3.140)=0.865

import math
x = float(input())
if x <= -1:
    fx = (math.e)**x
elif x >= 1:
    fx = (math.cos(x) + x**2)/(2.5+abs(x+math.log(100)))
else:
    fx = (2-2*x)**0.5
x = '%.3f' % x
fx = '%.3f' % fx
print('f('+str(x)+')='+ fx)

5-10 凯撒密码加密算法

编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母。

输入格式:
接收两行输入,第一行为待加密的明文,第二行为密钥k。

输出格式:
输出加密后的密文。

输入样例:
在这里给出一组输入。例如:

Hello World!
3

输出样例:
在这里给出相应的输出。例如:

Khoor Zruog!

s=input()
b=int(input())
a="abcdefghijklmnopqrstuvwxyz"
A="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
for i in s:
    if 'a'<=i<='z':
        c=a.find(i)
        print(a[(c+b+26)%26],end='')
    elif 'A'<=i<='Z':
        c=A.find(i)
        print(A[(c+b+26)%26],end='')
    else:
        print(i,end="")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值