使python利用任何符号的输入

时间:2018-06-27 04:00:34

标签: python python-3.x input symbols

我正在编写可以将数字转换为钢琴键的代码,

***很抱歉,我的意思是"3.14159ABC265"的理想输出是"E1 _ C1 F1 C1 G1 D2 _ _ _ D1 A2 G1",但是当输入中包含#,\或其他内容时,python会给出错误消息

代码:

numbers = str(input('This code will convert numbers to piano keys, \nnow input any numbers here'))
keys    = str('')

while len(numbers)    ==  str(0):           
    G             =  str('_ ')          
    if numbers[0] == str(0): G='B1 '        
    if numbers[0] == str(1): G='C1 '        
    if numbers[0] == str(2): G='D1 '
    if numbers[0] == str(3): G='E1 '
    if numbers[0] == str(4): G='F1 '
    if numbers[0] == str(5): G='G1 '
    if numbers[0] == str(6): G='A2 '
    if numbers[0] == str(7): G='B2 '
    if numbers[0] == str(8): G='C2 '
    if numbers[0] == str(9): G='D2 '
    keys          += G              
    numbers       =  numbers[1:len(numbers)]    

print(keys)

此代码已经可以使用,但是当输入中包含\,#或其他内容时,此代码将无效。我搜索了一段时间,但没有找到答案。

顺便说一句,我认为python应该有一个选项可以禁用像XD这样的短代码中数字和字符串之间的差异

1 个答案:

答案 0 :(得分:0)

您可以使用ord将任何字符转换为数字(基于ASCII values),然后使用除法和余数将数字映射为钢琴键数字和音阶,然后使用{{1} },将关键数字转换为字母。这是一个单行示例:

chr