我应该在程序中使用哪种数据类型

时间:2015-07-12 23:54:52

标签: python types

相对较新的编程和在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()

我的文件名也应该使用哪种数据类型?如果是这样的话是什么?

2 个答案:

答案 0 :(得分: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之外并不是很受欢迎。

答案 1 :(得分:0)

您始终可以通过执行

来测试变量的类型
if isinstance(iClass, int):  
    ... # continue with you example

而不是' int'你可以使用其他类型,如str,float等

BTW,匈牙利表示法在强制变量只有一种类型的语言中很有用。在我学到的第一语言FORTRAN中很常见,但穿孔卡也是如此。