输入5个数字时如何显示ABCDE 1 2 3 4 5

2020-02-14 python random
import random
ltr =" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(ltr.strip())
a = input('')
b = input('')
c = input('')
d = input('')
e = input('')
print(a,b,c,d,e)
var1 = random.randrange(1,26)
var2 = random.randrange(1,26)
var3 = random.randrange(1,26)
var4 = random.randrange(1,26)
var5 = random.randrange(1,26)
print(var1,var2,var3,var4,var5)

我想做的是,当我输入1到26之间的数字时,它应该显示相应的结果。如您所见,用户必须输入5个数字。例如,如果我们输入1 2 3 4 5,则结果必须为ABCDE。此外,我们还有随机数。例如,如果我们的随机数是4 5 3 1 2,则结果必须是DECAB。 我不知道该怎么做才能显示结果。

Answers

random.randrange(1,26)

错了Random的第二个参数是非包含性的,这意味着您将获得1到25之间的数字。

您应该使用:

random.randrange(1, len(ltr))

然后,您的结果字母只是访问ltr字符串中的正确索引-只需执行ltr(var1)


对于用户输入,您需要将其转换为整数值,如下所示:

a = int(input(''))

您要做的是在用户输入的位置打印字母中的字母。换句话说,用户在字母表中输入该字母的index 。由于您可以使用letter = string[index]在python中使用其索引访问字符串中的字符,因此可以这样做:

ltr =" ABCDEFGHIJKLMNOPQRSTUVWXYZ"

a = input('')
b = input('')
c = input('')
d = input('')
e = input('')
print(a,b,c,d,e)
print(ltr[a], ltr[b], ltr[c], ltr[d], ltr[e])

注意,由于ltr开头的空格,输入1时将输出A

编辑:根据评论中的问题进行更新。 如果将输入放入列表中并对其进行sort()则可以对输入进行sort() 。然后,您可以从输入列表中的位置获取字符:

ltr =" ABCDEFGHIJKLMNOPQRSTUVWXYZ"

inputs = []
for _ in range(5):
    inputs.append(int(input("Enter a number:")))

inputs.sort()
print(', '.join(map(str, inputs)))
print(', '.join(ltr[i] for i in inputs))

我已经编辑了您的代码,以使其达到您的目的:)

import random
ltr =" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(ltr.strip())
a = int(input(''))
b = int(input(''))
c = int(input(''))
d = int(input(''))
e = int(input(''))
print(ltr[a], ltr[b], ltr[c], ltr[d], ltr[e])

var1 = random.randrange(1,26)
var2 = random.randrange(1,26)
var3 = random.randrange(1,26)
var4 = random.randrange(1,26)
var5 = random.randrange(1,26)
print(ltr[var1], ltr[var2], ltr[var3], ltr[var4], ltr[var5])

让我知道这是否对您有帮助

strip()您的ltr并在(entered_position-1)处查找元素,重复五次,并加入由空格分隔的列表

ltr = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"
print(' '.join([ltr.strip()[int(input('number 1-26: '))-1] for _ in range(5)]))
print(' '.join([ltr.strip()[random.randrange(1,27)-1] for _ in range(5)]))

Related