1.温度转换
这是"实例"题,与课上讲解实例相同,请作答检验学习效果。
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度可采用大小写字母C结尾,温度可以是整数或小数,如:12.34C指摄氏度12.34度;
(2) 输入输出的华氏度可采用大小写字母F结尾,温度可以是整数或小数,如:87.65F指华氏度87.65度;
(3) 输出保留小数点后两位,输入格式错误时,输出提示:输入格式错误;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
TempStr = input()
if TempStr[-1] in ['F', 'f']:
C = (eval(TempStr[0:-1]) - 32)/1.8
print("{:.2f}C".format(C))
elif TempStr[-1] in ['C', 'c']:
F = 1.8*eval(TempStr[0:-1]) + 32
print("{:.2f}F".format(F))
else:
print("输入格式错误")
2.人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:
人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。
注意:
(1) 这是一个OJ题目,获得输入请使用input() ;
(2) 不提示输出格式错误,结果小数点后保留两位。
CurStr=input()
if CurStr[0] in ['R','r']:
print("USD{:.2f}".format(eval(CurStr[3:])/6.78))
elif CurStr[0] in ['u','U']:
print("RMB{:.2f}".format(6.78*eval(CurStr[3:])))
3.三次方格式化
获得用户输入的一个数字,可能是整数或浮点数,a,计算a的三次方值,并打印输出。
输出结果采用宽度20个字符、居中输出、多余字符采用减号(-)填充。
如果结果超过20个字符,则以结果宽度为准。
a = eavl(input())
num=pow(a,3)
print("{0:-^20}".format(num))
4恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26
上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26
假设用户可能使用的输入包含大小写字母azAZ、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
s = str(input())
t = ""
for c in s:
if 'a'<=c<='z':
t+=chr(ord('a')+((ord(c)-ord('a'))+3)%26)
elif 'A'<=c<='Z':
t+=chr(ord('A')+((ord(c)-ord('A'))+3)%26)
else:
t+=c
print(t)
5.“水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。
例如:ABC是一个"3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。
请按照从小到大的顺序输出所有的3位水仙花数,请用"逗号"分隔输出结果。
import math
def shuixian(number):
temp=number
a=temp%10
b=temp//10%10
c=temp//100
sum=pow(a,3)+pow(b,3)+pow(c,3)
if sum==temp:
return 1
else:
return 0
s=""
for num in range(100,1000):
if shuixian(num)==1:
s+="{},".format(num)
print(s[:-1])
第二种很简便
s = ""
for num in range(100,1000):
temp=pow(num%10,3)+pow(num//10%10,3)+pow(num//100,3)
if temp==num:
s+="{},".format(num)
print(s[:-1])
6.给用户三次输入用户名和密码的机会,要求如下:
1)如输入第一行输入用户名为‘Kate’,第二行输入密码为‘666666’,输出‘登录成功!’,退出程序;
2)当一共有3次输入用户名或密码不正确输出“3次用户名或者密码均有误!退出程序。”。
count = 0
while count < 3:
name = input()
psd = input()
if name == 'Kate' and psd == '666666':
print("登录成功!")
break
else:
count += 1
if count == 3:
print("3次用户名或者密码均有误!退出程序。")
break
7递归求阶乘
n=int(input())
def fact(n):
if n==1:
return 1
return n*fact(n-1)
print(fact(n))
8.回文数判断:一个整数,如果将其反想排列后得到的整数和原值相等,则称该数为回文。从键盘输入一个5位数,编写程序判断他是否是一个回文数。
import math
def is_palidrome(num):
k=num
temp=0
while k!=0:
temp=temp*10+k%10
k//=10
if temp==num:
return 1
else:
return 0
data=int(input(""))
if is_palidrome(data)==1:
print("{}是回文数".format(data))
else:
print("{}不是回文数".format(data))
第二写法
data=int(input())
k=data
temp=0
while k!=0:
temp=temp*10+k%10
k//=10
if temp==data:
print("{}是回文数".format(data))
else:
print("{}不是回文数".format(data))