#python #list
#python #Список
Вопрос:
Я новичок в программировании, и мне нужна помощь в решении этой проблемы. Я хочу, чтобы мой код проверял, какой символ элемента находится в списке, и возвращал число, соответствующее позиции этой буквы в алфавите. Например, если первым элементом в моем списке был «A», я бы хотел, чтобы он возвращал «0». Я мог бы сделать это с помощью длинной серии операторов if else, но я действительно не хочу писать подобный спагетти-код. Любая помощь? В случае, если это полезно, вот мой код на данный момент:
#Ceasar Cipher Decipherer
import time
listchar = 0
alphanum = 0
def Convert(string):
list1=[]
list1[:0]=string
while " " in list1:
list1.remove(" ")
return list1
alphabet = ["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"]
coded_phrase = input("Enter the encoded phrase now.n")
jumps_forward = input("Enter the number of times the decoder must jump forwards in the alphabet.n")
print("Thanks! Decoding phrase...n")
time.sleep(0.5)
Convert(coded_phrase)
while listchar <= len(coded_phrase):
#this is where I want the alphabet-checky code thing to go.
Ответ №1:
если вас интересуют только строчные буквы, вы можете использовать ord
:
def pos_in_alphabet(char):
return ord(char) - ord("a")
print(pos_in_alphabet("a")) # 0
print(pos_in_alphabet("b")) # 1
print(pos_in_alphabet("c")) # 2
print(pos_in_alphabet("x")) # 23
print(pos_in_alphabet("y")) # 24
print(pos_in_alphabet("z")) # 25
Ответ №2:
alphabet = ["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"]
alphabet.index("g")
6
Вам нужно использовать .index()
метод в списке
Ответ №3:
Проверьте этот код и посмотрите, хотите ли вы этого:
array = ["a", "b", "y", "z", "A", "B", "Y", "Z"]
for i in array:
print( ord( i.upper() ) - ord("A") )