Python 2.7 Python 2-除法乘以10每次返回0

Python 2.7 Python 2-除法乘以10每次返回0,python-2.7,Python 2.7,当程序将两个用户输入的数字相除,然后乘以,程序每次返回0 correct = input("User, Input the amount of correct answers. :") points_possible = input("User, Input the amount of points possible. :") score = correct / points_possible grade = score * 10 print grade 预期产出 if (1/2) * 1

当程序将两个用户输入的数字相除,然后乘以,程序每次返回0

correct = input("User, Input the amount of correct answers. :")
points_possible = input("User, Input the amount of points possible. :")

score = correct / points_possible
grade = score * 10

print grade
预期产出

if (1/2) * 10 = 5, but will output 0

如果您使用的是Python2.7版本,那么从控制台获取的输入将始终是字符串形式。所以,您需要将其转换为整数

#Python 3.5中的代码
correct=int(输入(“用户,输入正确答案的数量:”)
点数=整数(输入(“用户,输入可能的点数:”)
分数=正确/可能的分数
分数=分数*10
印刷品(年级)
在Python2中得到
0
的原因是,如果给定整数,则只得到整数除法。如果需要浮点除法,则需要确保某个地方有一个小数点,以便Python知道它不必将值截断为
int

#Python 2.7中的代码
正确=浮动(原始输入(“用户,输入正确答案的数量”))
点数=浮动(原始输入(“用户,输入可能点数”))
分数=正确/可能的分数
分数=分数*10.0
印刷品等级

如果您使用的是Python 2.7版本,那么从控制台获取的输入将始终是字符串形式。所以,您需要将其转换为整数

#Python 3.5中的代码
correct=int(输入(“用户,输入正确答案的数量:”)
点数=整数(输入(“用户,输入可能的点数:”)
分数=正确/可能的分数
分数=分数*10
印刷品(年级)
在Python2中得到
0
的原因是,如果给定整数,则只得到整数除法。如果需要浮点除法,则需要确保某个地方有一个小数点,以便Python知道它不必将值截断为
int

#Python 2.7中的代码
正确=浮动(原始输入(“用户,输入正确答案的数量”))
点数=浮动(原始输入(“用户,输入可能点数”))
分数=正确/可能的分数
分数=分数*10.0
印刷品等级

这是因为python需要您让它理解您被浮点除法:您可以在除数的末尾添加.0或键入10/float(2)

这是因为python需要您让它理解您被浮点除法:您可以在除数的末尾添加.0或键入10/float(2)

打印时会发生什么(1/2)0是结果,10*0=0,因此您的代码按预期工作。我理解原因。我需要它来做一个浮点数,因为整数只是一个实数,浮点数允许小数。当你打印(1/2)时,0是结果,10*0=0,所以你的代码按预期工作。我明白为什么。我需要它来做一个浮点数,因为整数只是一个实数,浮点数允许小数。因为在Python2中,如果你尝试2/5(或者尝试除以任何两个整数),你只能得到小数点之前的答案。这意味着1/2=0.5,但是,您将得到0。所以,如果你尝试1.0/2.0或1.0/2或1/2.0(任何一个都可以浮动),那么你将是0.5。非常感谢!我忽略了浮点数只允许小数,整数只允许实数,因为在Python2中,如果你尝试2/5(或者尝试除以任何两个整数),你只能得到小数点之前的答案。这意味着1/2=0.5,但是,您将得到0。所以,如果你尝试1.0/2.0或1.0/2或1/2.0(任何一个都可以浮动),那么你将是0.5。非常感谢!我忽略了浮点数只允许小数,整数只允许实数。