2015-07-12 64 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 

而是「詮釋」你可以使用其他類型,如海峽的測試變量的類型,漂浮等

BTW,匈牙利命名法是在語言的有用強制變量只有一種類型。在我學習的第一門語言FORTRAN中很常見,但打卡也是這樣。

相關問題