练习:
一、温度转换:
温度的刻画有两个不同体系:摄氏度(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()获得测试用例输入时,不要增加提示字符串。
输入示例1
12.34C
输出示例1
54.21F
输入示例2
87.65F
输出示例2
54.21F
作答:
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("输入格式错误")
二、Hello World I
这是学习每种程序设计语言的第一个实例。
输出Hello World,注意大小写。
输出示例
Hello World
print("Hello World")
三、数字形式转换 I
获得用户输入的一个正整数输入,输出该数字对应的中文字符表示。
0到9对应的中文字符分别是:零一二三四五六七八九
输入示例1
123
输出示例1
一二三
输入示例2
9876543210
输出示例2
九八七六五四三二一零
思路:
使用字符串定义汉字数字表,利用for循环遍历输入的数字,依次输出对应的中文数字
Str = input()
number = '零一二三四五六七八九'
for c in Str:
print(number[eval(c)], end = '')
四、温度转换 II
温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。
请编写程序将用户输入华氏度转换为摄氏度,或将输入的摄氏度转换为华氏度。
转换算法如下:(C表示摄氏度、F表示华氏度)
C = ( F - 32 ) / 1.8
F = C * 1.8 + 32
要求如下:
(1) 输入输出的摄氏度采用大写字母C开头,温度可以是整数或小数,如:C12.34指摄氏度12.34度;
(2) 输入输出的华氏度采用大写字母F开头,温度可以是整数或小数,如:F87.65指华氏度87.65度;
(3) 不考虑异常输入的问题,输出保留小数点后两位;
(4) 使用input()获得测试用例输入时,不要增加提示字符串。
输入示例1
C12.34
输出示例1
F54.21
输入示例2
F87.65
输出示例2
C30.92
思路:
与一不同的是表示模式的字母换到了字符串首部,因此判断条件要发生变化。其他与一类似。
TempStr = input()
if TempStr[0] == 'C':
F = eval(TempStr[1:]) * 1.8 + 32
print("F{:.2f}".format(F))
else:
C = (eval(TempStr[1:]) - 32) / 1.8
print("C{:.2f}".format(C))
五、货币转换 I
人民币和美元是世界上通用的两种货币之一,写一个程序进行货币间币值转换,其中:
人民币和美元间汇率固定为:1美元 = 6.78人民币。
程序可以接受人民币或美元输入,转换为美元或人民币输出。人民币采用RMB表示,美元USD表示,符号和数值之间没有空格。
注意:
(1) 这是一个OJ题目,获得输入请使用input() ;
(2) 不提示输出格式错误,结果小数点后保留两位。
输入示例1
RMB123
输出示例1
USD18.14
输入示例2
USD20
输出示例2
RMB135.60
思路:
总体与温度转换相似,但判断条件由判断字符串首部第一个字母变为首部前三个字母,因此需要用到字符串切片。且省略了单独定义变量的过程,直接在format()中计算并输出。
Str = input()
if Str[:3] == "RMB":
print("USD{:.2f}".format((eval(Str[3:])) / 6.78))
elif Str[:3] == "USD":
print("RMB{:.2f}".format(eval(Str[3:]) * 6.78))
考试:
一、Hello World的条件输出
获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:
如果输入值是0,直接输出"Hello World"
如果输入值大于0,以两个字符一行方式输出"Hello World"(空格也是字符)
如果输入值小于0,以垂直方式输出"Hello World"
输入输出示例
输入 | 输出 | |
示例 1 | | |
思路:
需要用到分支语句: if、elif、else,等于0时直接输出,大于0时,每两个字符后加入一个换行符\n,小于0时,每个字符后加入换行符\n。(答案用了for循环输出)
num = input()
if eval(num) == 0:
print("Hello World")
elif eval(num) > 0:
print("He\nll\no \nWo\nrl\nd")
else:
print("H\ne\nl\nl\no\n \nW\no\nr\nl\nd")
二、数值运算
获得用户输入的一个字符串,格式如下:
M OP N
其中,M和N是任何数字,OP代表一种操作,表示为如下四种:+, -, *, /(加减乘除)
根据OP,输出M OP N的运算结果,统一保存小数点后2位。
注意:M和OP、OP和N之间可以存在多个空格,不考虑输入错误情况。
输入输出示例
输入 | 输出 | |
示例 1 | | |
思路:
一开始没想明白数字与运算符之间多余的空格该如何解决,看了别人的代码,发现用到了eval()函数,eval()函数的定义:去掉参数最外侧引号并执行余下语句的函数。这样去掉字符串的引号后,就可以直接按普通加减法进行运算了。
Str = input()
print("{:.2f}".format(eval(Str)))