从用户获取数字,例如,如果用户输入123,则将打印abc;如果用户输入13 12 11,则输出将为mlk(使用python)[已关闭]

7dl7o3gd  于 2023-01-24  发布在  Python
关注(0)|答案(3)|浏览(123)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

2小时前关门了。
Improve this question
从用户获取数字。例如,如果用户输入123,则将打印abc;如果用户输入数字13,12,11,则使用python语言输出"mlk"。
请帮我解答这个问题。

list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
         'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

for i in enumerate((list1)):
    inputnum = int(input("enter number"))
    print(i)

Output  would be:
  (0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
(5, 'f')
(6, 'g')
(7, 'h')
(8, 'i')
(9, 'j')
(10, 'k')
(11, 'l')
(12, 'm')
(13, 'n')
(14, 'o')
(15, 'p')
(16, 'q')
(17, 'r')
(18, 's')
(19, 't')
(20, 'u')
(21, 'v')
(22, 'w')
(23, 'x')
(24, 'y')
(25, 'z')

预期:如果用户输入234,则将cde打印为输出

qni6mghb

qni6mghb1#

如果输入是一串数字,那么输出将不会包含字母表中超过 * j * 的字母。
因此:

while user_input := input('Enter a number: '):
    print(''.join(['abcdefghij'[i] for i in map(int, user_input)]))
    • 输出:**
Enter a number: 234
cde
os8fio9y

os8fio9y2#

你可以存储用户输入作为一个列表.并且创建一个字典

usr_input=list(map(int,input("Enter the number:").split())) #User input stored as a list by using mapping

dic={1:'a', 2:'b', 3:'c', 4:'d', 5:'e', 6:'f', 7:'g', 8:'h', 9:'i', 10:'j', 11:'k', 12:'l',13:'m', 14:'n', 15:'o', 16:'p', 17:'q', 18:'r', 19:'s', 20:'t', 21:'u', 22:'v', 23:'w', 24:'x', 25:'y', 26:'z'}

res=""
for num in usr_input:
    res+=dic.get(num,'') #If the value is not present in a dictionary than add empty string to the res

print(res)
    • 输出:**
Enter the number:11 13 27 23
kmw

As 11:'k', 13:'m', 27:'' [as an empty string], 23:'w' -> 'k'+'m'+''+'w' ->'kmw'

假设你想优化空间复杂度[即没有字典]。

usr_input=list(map(int,input("Enter the number:").split()))

res=""
for num in usr_input:
    if 97<=num+96<=122: #ascii values of 'a':97 'z':122
        res+=chr(num+96)

print(res)
    • 输出:**
Enter the number:11 13 27 16
kmp
mlnl4t2r

mlnl4t2r3#

基于使用input(),我可以建议以下解决方案。

list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
         'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

inputnum_list = []
while True:
    value_given = input("enter number")
    if value_given == '':
        output = [list1[letter_position] for letter_position in inputnum_list]
        print(''.join(output))
        inputnum_list = []
        continue
    inputnum_list.append(int(value_given))

它将接受由“enter”键打断的字符串输入,并在输入空白值后输出一个字母列表。

相关问题