注意
input函数
都以
字符串类型
返回结果
eval函数
是以Python的表达方式来解析并执行字符串,并将返回结果输出
如果直接输入‘’hello’‘这样的字符串,eval函数会将其解析为hello变量,如果之前没有定义过这个变量,解释器就会报错。
我写的一段:
(经过删删改改,一开始老报错还找不到问题)
tem=input('输入')
if 'c' in tem:
con=1.8*eval(tem[0:-1])+32
print(str(con)+'F')
可以成功把摄氏温度转为华氏温度。
第一遍写的完整代码:
tem=input('输入')
if 'c'in tem:
con=1.8*eval(tem[0:-1])+32
print('{:.2f}F'.format(con))
elif 'C'in tem:
con=1.8*eval(tem[0:-1])+32
print('{:.2f}F'.format(con))
elif 'f'in tem:
con=(eval(tem[0:-1])-32)/1.8
print('{:.2f}C'.format(con))
elif 'F'in tem:
con=(eval(tem[0:-1])-32)/1.8
print('{:.2f}C'.format(con))
else:
print('输入格式错误')
参考答案写的代码:
#TempConvert.py
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("输入格式错误")
参考答案的代码更加简洁,思路基本上差不多
**一个问题是:**本来一开始写的if语句是
if ‘c’ or ‘C’ in tem
想把大小写融合到一句话里面,不知道为什么不行,这样运行出来if语句没有作用。
/
知道为什么不行了,看了一下条件判断语句中and和or的用法
if 条件1 and 条件2
if 条件1 or 条件2
其中的条件1和条件2都是要一个完整的条件语句
改成
if ‘c’ in tem or ‘C’ in tem:
就可以了(
记得要加冒号
)