matrices: el texto no se agrega ni se envía

CorePress2024-01-24  10

Estoy intentando crear un comando para mi robot de Discord que reciba texto, ponga en mayúsculas cada dos letras, lo agregue a una matriz y lo envíe de vuelta. Lo tengo funcionando para que pueda agregar texto y volver a imprimirlo, pero cuando intento ponerlo en mayúsculas, las cosas salen mal.

@bot.command()
async def spongetext(ctx, *, message):
    textmessage = []
    for letter in message:
        textmessage.append(letter)
    await ctx.send(textmessage)

El código anterior funciona y genera lo siguiente cuando se ejecuta como prueba .spongetext

['t', 'e', ​​'s', 't', ' ', 't', 'e', ​​'s', 't']

Sin embargo, cuando uso este código para poner en mayúsculas cada dos letras

async def spongetext(ctx, *, message):
    textmessage = []
    for letter in message:
        if letter % 2 == 0:
            textmessage.append(letter.upper())
        else:
            textmessage.append(letter)
    await ctx.send(textmessage)```


Nothing is output, no error message, and no text



------------------------------------

En tu código, si la letra % 2 == 0: no tiene sentido, no puedes factorizar un alfabeto.

Intenta algoasí:

message = "hello, this is a message."

textmessage = []

for i in range(0,len(message)):
        letter = message[i]
        if i % 2 == 0:
            textmessage.append(letter.upper())
        else:
            textmessage.append(letter)

print(textmessage)
print("".join(textmessage))



------------------------------------

Para su pregunta "si" declaración, estás comparando la letra misma, realizando % 2 == 0 en ella. En su lugar, también puedes usar enumerar para obtener el índice en el que te encuentras.

for i, letter in enumerate(message):
    if i % 2 == 0:
        textmessage.append(letter.upper())
    else:
        textmessage.append(letter)

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare