In addition to Gary02127's solution, I'd like to point out a few other improvements:
- You should move - if num_students < 2outside of your loop. It would be enough to check the condition once after the user inputted the number of students.
 
- You could also write - for i in range(num_students). It doesn't matter if the range starts with- 0or- 1since you are not using- i.
 
- Also, if you are not using a variable, you could use - _(throwaway variable) instead. See more about- for _ in range(num_students)here: What is the purpose of the single underscore "_" variable in Python?.
 
Instead of:
if score > second_score:
    if score > high_score:
        # ...
    else: 
        # ...
You could also write:
if high_score < score:
    # ...
elif second_score < score:
    # ...
Here is a verbose solution considering suggested improvements:
num_students = int(input("Enter number of students: "))
if num_students < 2:
    exit()
highest_name = None
highest_grade = 0
second_highest_name = None
second_highest_grade = 0
for _ in range(num_students):
    name = input("Enter student's name: ")
    grade = int(input("Enter student's score: "))
    if highest_grade < grade:
        second_highest_name = highest_name
        second_highest_grade = highest_grade
        
        highest_name = name
        highest_grade = grade
    elif second_highest_grade < grade:
        second_highest_name = name
        second_highest_grade = grade
print(highest_name, highest_grade)  # highest grade
print(second_highest_name, second_highest_grade)  # second highest grade
You could also use a list and sorted() (built-in function):
from operator import itemgetter
num_students = int(input("Enter number of students: "))
if num_students < 2:
    exit()
    
grades = []
for _ in range(num_students):
    name = input("Enter student's name: ")
    grade = int(input("Enter student's score: "))
    grades.append((name, grade))
    
grades = sorted(grades, key=itemgetter(1), reverse=True)
print(grades[0])  # highest grade    
print(grades[1])  # second highest grade
You could also use a specialized list such as SortedList (requires external package):
from sortedcontainers import SortedList
num_students = int(input("Enter number of students: "))
if num_students < 2:
    exit()
    
grades = SortedList(key=lambda record: -record[1])
for _ in range(num_students):
    name = input("Enter student's name: ")
    grade = int(input("Enter student's score: "))
    grades.add((name, grade))
print(grades[0])  # highest grade    
print(grades[1])  # second highest grade
Notes:
- Difference between sorted()andstr.sort().sorted()creates a new sortedlistwhereasstr.sort()modifies the currentlist.
- itemgetter(1)is equals to- lambda record: record[1].
- You can install SortedList with: pip install sortedcontainers.