使用int函数的Python计算器代码为何除法输出带小数结果?
Python除法运算符的疑问解答
你遇到的问题核心是Python中/运算符的特性:
- 不管你用
int()把输入转成整数还是用float()转成浮点数,/作为真除法,返回结果始终是浮点数类型,哪怕两个整数能被整除,比如4/2会得到2.0而不是2。
关于你提到的“余数”,这和float()无关,Python中取余用%运算符,比如5%2返回1(整数类型),这才是获取余数的正确方式。
如果希望除法返回整数结果(舍去小数部分的地板除),你需要用//运算符,比如5//2得到2,4//2得到2,结果都是整数类型。
另外你的代码存在语法错误:第三个if语句后直接接elif是不合法的,elif必须和上一个if或elif配对,修改后的正确代码如下:
print("Welcome to my calculator") number_one = int(input("What is your first number: ")) sign = input("Please enter your operator: ") number_two = int(input("What is your second number: ")) if sign == "+": print("Your answer is", number_one + number_two) elif sign == "-": print("Your answer is", number_one - number_two) elif sign == "/": print("Your answer is", number_one / number_two) elif sign == "*": print("Your answer is", number_one * number_two) else: print("Sorry, i don't understand")
内容的提问来源于stack exchange,提问作者Shaunak
相关产品推荐
相关产品推荐

