我想将一个数字转换成一个字母,如果用户输入.8,如果用户输入.7,程序将输出一个B,程序打印一个C,我不知道怎么做?< / p>
a = 0.9
b = 0.8
c = 0.7
d = 0.6
f = 0.5
number = float(raw_input('enter number: '))
i = 0
for i in (a, b ,c ,d, f):
if number == i:
print i
''' Dictionarys, not sure how to use them, would it work best for this purpose? '''
''' I am getting an error '''
'''{ a: '0.9' b: '0.8' c: '0.7' d :'0.6' f: '0.5'}'''
'''
File "<stdin>", line 1
{ a: '0.9' b: '0.8' c: '0.7' d :'0.6' f: '0.5'}
^
SyntaxError: invalid syntax
'''
答案 0 :(得分:0)
您想要从数字映射到字母,因此您希望数字在字典中成为键:
number = float(raw_input('enter number: '))
my_map = { 0.9: "a", 0.8:"b", 0.7: "c", 0.6:"d", 0.5:"e"}
print my_map[number]
答案 1 :(得分:0)
仅仅因为某个时候看起来像一个数字/浮点数,并不总是意味着你需要将它转换为一个。在你的情况下,它很容易使用字符串。 (处理无效输入有点简单)
>>> D = {'0.9': 'a', '0.8': 'b', '0.7': 'c', '0.6': 'd', '0.5': 'f'}
>>> number = raw_input('enter number: ')
enter number: 0.8
>>> print D[number]
b
除了。比较浮点数是否相等可能会导致有趣的错误。在你的情况下它会没问题,但你需要小心,如果你计算一个数字,比如一起添加结果
>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 == 0.1 * 9
False
答案 2 :(得分:0)
你可以使用整数作为键,我建议使用字典的Get()方法获取默认值,如果没有这样的键存在
最简单的方式
number = float(raw_input('enter number: '))
d = {0.9:"a",0.8:"b",0.7:"c",0.6:"d",0.5:"f"}
print d.get(number,"other")