2015-07-12 3 views
0

Относительно новый для программирования и выполнения некоторой курсовой работы на python. Мне сказали, чтобы все мои переменные отображались с правильным типом данных. Например, целое число будет называться iVariable, а строкой будет sString. Хотя я помню, как кто-то говорил мне, что иногда вам нужно пометить переменную, содержащую строку? Я действительно не понимаю, что они подразумевали под этим. Ниже приведено начало моего кода, это не идеально, но если кто-то может сказать мне, правильно ли я сделал типы данных или неправильно, и сказал мне, что их должно быть так здорово. Заранее спасибоКакой тип данных я должен использовать в своей программе

iResultlist = 0 
sEndScript = 0 
while iResultlist == 0: 
    if sEndScript == "y": 
     iResultlist = 1 
    sStudent = input("What is the students name?") 
    bInputValid = False 
    while (bInputValid == False): 
     sUserResponse = input("What score did they get") 
     if sUserResponse.isdigit(): 
      iScore = int(sUserResponse) 
      bInputValid = True 
     else: 
      print ("Enter a valid number please") 
    iClass = input("What class is the student in? \"1\, "\"2\" or \"3\"") 
    if iClass == "1": 
     Class1 = open("Class1.csv", "a+") 
     Class1.write(Student+","+Score+"\n") 
     Class1.close() 

Также есть ли тип данных, который я должен использовать для имен моих файлов? И если да, то что это?

+0

Эта идея (иногда называемая венгерской нотацией) в наши дни считается плохой идеей. Если вам нужно сделать это для класса, вам нужно будет с вашим учителем проверить, какие именно префиксы вы должны использовать. Во всяком случае, никогда не было стандартного набора. – Blorgbeard

+0

Спасибо, я никогда не думал, что это необходимо, но мне сказали, что я должен включить его. – flyabout

ответ

0

иногда вам необходимо маркировать переменную, содержащую номер строки

Я предполагаю, что они имели в виду ситуация, как в:

iClass = input("What class is the student in? \"1\, "\"2\" or \"3\"") 

Содержание iClass является будет число, конечно. Но тип все еще является строкой. Чтобы получить из него численное значение, вам все равно нужно преобразовать его через int(iClass). Так что, если вы действительно собираетесь на венгерскую нотацию, то это должно быть что-то вроде:

sClass = input(...) # this is a string, even if the string is "123" 
iClass = int(sClass) # now it's a proper int 

Хотя в текущем коде, вы просто не нужно преобразованный iClass вообще.

Если вы не уверены, что что-то тип в какой-то момент, вы всегда можете распечатать его во время выполнения, как:

print("iClass is:", type(iClass)) 

Но как @Blorgbeard прокомментировал - Венгерская нотация не очень популярны за пределами из winapi в эти дни.

+0

Спасибо, это действительно смутило меня и выяснило, что мне нужно сделать, теперь мне нужно провести следующие полчаса переписывания переменных. – flyabout

0

Вы всегда можете проверить тип переменной, выполнив

if isinstance(iClass, int): 
    ... # continue with you example 

Вместо «Int» Вы можете использовать другие типы, как ул, плавать и т.д.

BTW, венгерская нотация полезно в языках которые обеспечивают наличие переменной только для одного типа. Это было обычным явлением на первом языке, который я узнал, FORTRAN, но перфокарты были тоже.

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