#python #list
#python #Список
Вопрос:
Я хочу получить доступ к оценкам, связанным с каждой буквой алфавита, которые хранятся в текстовом файле (stores.txt ). Каждая строка является индексом, и я просто хочу получить номер для каждой буквы и распечатать его, когда я ввожу определенную букву в функцию. Как бы я разделил элемент, чтобы получить число и вернуть его.
Scores.txt is shown like this:
A 1
B 3
C 5
D 3
E 1
F 5
G 4
H 3
I 1
J 10
K 8
L 3
M 5
N 3
O 2
P 5
Q 20
R 3
S 3
T 2
U 1
V 10
W 12
X 16
Y 8
Z 20
This is the code ive used up to now, however this would result in displaying the whole line
(['A','1']) when i passed A to the function and I would like just 1 to be passed.
def getLetterScore(user_Input):
scoreFileT1 = open('D:/DELL/Desktop/Programming Assignment/scores.txt')
score = []
for line in scoreFileT1:
line = line.strip(' ')
line = line.split()
score.append(line)
scoreFileT1.close()
if user_Input =='a' or user_Input == 'A':
print(score[0])
Комментарии:
1. Пожалуйста, придерживайтесь рекомендаций StackOverflow. Этот сайт не предназначен для поиска ответов на ваши задания по программированию!
2. Поскольку это, похоже, вопрос домашнего задания, я просто дам вам указания, а не прямой ответ. Надеюсь, это еще более полезно для вас в долгосрочной перспективе: 1) операция line.split() создает кортеж. Спросите себя: как распаковать этот кортеж? Или: Как получить доступ к определенному элементу кортежа 2) вы использовали список для переменной score. Вместо этого я рекомендую dict . Спросите себя: почему это гораздо лучший вариант? 3) в общем случае открывайте файлы, используя «with» вместо open() … close()
3. Дополнительное замечание: 4) упростите свой код в отношении этих проверок на «a» и «A», используя методы upper () или lower() .
Ответ №1:
Вот код, который я придумал. В этом случае, если вы введете какую-либо букву в качестве входных данных, будет напечатан соответствующий номер для буквы.
def getLetterScore(user_Input):
scoreFileT1 = open('C://Users//Naveendran//Desktop//scores.txt')
score = []
for line in scoreFileT1:
line = line.strip(' ')
line = line.split()
score.append(line)
scoreFileT1.close()
for i in range(len(score)):
if user_Input.upper() == score[i][0]:
print(score[i][1])
b = input("Enter a letter:")
getLetterScore(b)
Ответ №2:
Я предлагаю вам использовать этот код
rfile=open("score.txt") #add your path here
file=rfile.read()
filesplit=file.split("n")
letter=input("enter The number").capitalize()
for i in filesplit:
if(i[0]==letter):
for j in range(2,len(i)):
print(i[j],end="")