Tu codigo tiene algunos problemas:
No usas la variable x para nada, el while nunca lo terminas, estas usando mal los arrays, en el if tienes problemas usando ese 'or', un raw_input para nada al final, no haces nada si el usuario ingresa una cadena vacia, etc.
Arreglando un poquito tu codigo, tengo esto:
Asi funciona como dices en tu post, aunque cambiaria el if por esto:
No usas la variable x para nada, el while nunca lo terminas, estas usando mal los arrays, en el if tienes problemas usando ese 'or', un raw_input para nada al final, no haces nada si el usuario ingresa una cadena vacia, etc.
Arreglando un poquito tu codigo, tengo esto:
Código [Seleccionar]
fin = 0
cadenafinal = ''
cadena = ''
cadena = raw_input('')
if (cadena == 'A' or cadena == 'a'):
cadenafinal = cadena #asi cadenafinal contiene la primera 'a' o 'A'
print 'A'
while (fin == 0):
cadena = raw_input('')
if (cadena == 'A' or cadena == 'a' ):
print 'A'
elif (cadena == 'B' or cadena == 'b'):
print 'B'
elif (cadena == 'C' or cadena == 'c' ):
print 'C'
elif (cadena == ''):
fin = 1 #para terminar el while
continue
else:
print 'Caracter invalido'
continue
cadenafinal = cadenafinal + cadena
print 'La cadena final es: ' + cadenafinal
else:
print 'debe comenzar con A'
Asi funciona como dices en tu post, aunque cambiaria el if por esto:
Código [Seleccionar]
if (cadena in ['a', 'b', 'c', 'A', 'B', 'C']):
print cadena.capitalize() #para que funcione como el anterior, devolviendo mayuscula
elif (cadena == ''):
fin = 1
continue
else:
print 'Caracter invalido'
continue