Найти в файле строки, содержащие определенные значения

В текстовый файл построчно записаны фамилия и имя учащихся класса и его оценка за контрольную. Вывести на экран всех учащихся, чья оценка меньше 3 баллов и посчитать средний балл по классу.

Примерное содержание файла:

Иванов О. 4
Петров И. 3
Дмитриев Н. 2
Смирнова О. 4
Керченских В. 5
Котов Д. 2
Бирюкова Н. 1
Данилов П. 3
Аранских В. 5
Лемонов Ю. 2
Олегова К. 4

До того, как будет считываться содержимое файла, надо присвоить двум переменным нули. В одной из них будет накапливаться сумма баллов, а в другой - количество строк (количество человек). Средний балл находится при делении суммы на количество.

После того, как файл будет открыт, его надо считывать построчно. Из каждой строки надо "вырезать" оценку. Это последний или предпоследний символ строки. Если оценка меньше, чем 3, то выводить всю строку на экран.

Полученную оценку из каждой строки, надо преобразовывать к целому числу и добавлять к сумме, а также при считывании каждой строки увеличивать на 1 счетчик человек.

После того, как будет достигнут конец файла, его надо закрыть, посчитать средний балл и вывести его на экран.

var
    f: text;
    s: string;
    sum,g,n: word;
begin
    assign(f,'class8.txt');
    reset(f);
    sum := 0;
    n := 0;
    while not eof(f) do begin
        readln(f,s);
        val(s[length(s)],g);
        sum := sum + g;
        n := n + 1;
        if g < 3 then
            writeln(s);
    end;
    writeln('Средний балл: ', sum/n:4:2);
end.
Дмитриев Н. 2
Котов Д. 2
Бирюкова Н. 1
Лемонов Ю. 2
Средний балл: 3.18
#include <stdio.h>
 
main() {
    FILE *f;
    char s1[20], s2[3];
    unsigned g, sum, n;
    f = fopen("class8.txt","r");
    sum = n = 0;
    while (fscanf(f, "%s%s%u", s1, s2, &g) != EOF) {
        if (g < 3) printf("%s %s %d\n",s1,s2,g);
        sum += g;
        n += 1;
    }
    fclose(f);
    printf("Средний балл: %.2f\n", (float)sum/n);
}
f = open('class8.txt')
suma = 0
n = 0
for i in f:
    g = int(i[len(i)-2])
    suma += g
    n += 1
    if g < 3:
        print(i[:-1])
print('Средний балл: %.2f' % (suma/n))
open "class8.txt"
sum = 0
n = 0
while not eof  
        s$ = readline
        g = int(right(s$,2))
        if g < 3 then print s$;
        sum = sum + g
        n = n + 1
endwhile
close
print "Средний балл: ";
print sum/n

Комментарий

Код на python выдает ошибку.
ValueError: invalid literal for int() with base 10: ' '
Ошибка в строке g = int(i[len(i)-2])
Мы берем 2 последних символа, это оценка и пробел перед оценкой.
Пробел не может быть в int, но если поменять на float, то ничего не измениться, так же ничего не измениться если писать -1, а не -2.
Как исправить?