相对较新的编程和在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 :(得分: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中很常见,但穿孔卡也是如此。