2017-01-05 3 views
0

Этот код работал с 2,7, но не с 3,5 - я понимаю, что это что-то делает с совместимостью в формате unicode.TypeError: должен быть символ юникода, а не str

Это код, любая помощь будет принята с благодарностью

import array 
import sys 


ConstNoStudents = int(4) 
Counter = int(0) 
StudentMarkTest1 = array.array("Test 1", range(ConstNoStudents + 1)) 
StudentMarkTest2 = array.array("Test 2", range(ConstNoStudents + 1)) 
StudentName = [] 
StudentGender = [] 
input_value = raw_input 

while Counter <4: 
gender_value = int(0) 
input_value = raw_input 
Counter = Counter+1 
StudentName.append (raw_input("Please Enter Student Name ")) 
print(StudentName) 
while gender_value == 0: 
    gender = raw_input("Please Enter Student Gender ") 
    if gender == 'm' or gender == 'f' or gender =='M' or gender == 'F': 
     StudentGender.append(gender) 
     gender_value = gender_value+1 

    StudentMarkTest1[Counter] = int(raw_input("Please Enter Mark for Test 1 ")) 
    StudentMarkTest2[Counter] = int(raw_input("Please Enter Mark for Test 2 ")) 

print (StudentName) 
print (StudentGender) 
print (StudentMarkTest1) 
print (StudentMarkTest2) 
+1

Какова фактическая трассировка? –

+0

Во-первых, в Python 3 нет такой вещи, как 'raw_input'. Кроме того, вам нужно предоставить ввод, который выдает ошибку и фактическое содержимое ошибки. – glibdud

ответ

0
import array 
import sys 


ConstNoStudents = int(4) 
Counter = int(0) 
StudentMarkTest1 = array.array("d", range(ConstNoStudents + 1)) 
StudentMarkTest2 = array.array("d", range(ConstNoStudents + 1)) 
StudentName = [] 
StudentGender = [] 

while Counter <4: 
    gender_value = int(0) 
    Counter = Counter+1 
    StudentName.append(input("Please Enter Student Name ")) 
    print(StudentName) 
    while gender_value == 0: 
    gender = input("Please Enter Student Gender ") 
    if gender == 'm' or gender == 'f' or gender =='M' or gender == 'F': 
     StudentGender.append(gender) 
     gender_value = gender_value+1 

    StudentMarkTest1[Counter] = int(input("Please Enter Mark for Test 1 ")) 
    StudentMarkTest2[Counter] = int(input("Please Enter Mark for Test 2 ")) 

print (StudentName) 
print (StudentGender) 
print (StudentMarkTest1) 
print (StudentMarkTest2) 

Это версия Python3 вашего кода, raw_input теперь вход.

Кроме того, первым параметром array.array должен быть символ, определяющий тип данных.

+0

благодаря некоторой ошибке школьника. Большое спасибо! – Amer

Смежные вопросы