Python 输入数字 输出字母

0 投票
3 回答
1943 浏览
提问于 2025-04-18 04:32

我想把一个数字转换成字母。如果用户输入0.8,程序就输出一个B;如果用户输入0.7,程序就输出一个C。我不太确定该怎么做。

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
''' 

3 个回答

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")
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]
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

撰写回答