Python均值计算器函数异常:输入a为2却不执行对应计算逻辑
问题描述
编写了一个用于计算均值的Python函数part1,测试时输入变量a的值为2,但代码判定a不等于2,无法执行均值计算逻辑,使用PyCharm作为开发环境。
代码如下:
def part1(Answer1, Answer2): x=Answer1+Answer2 y=x/2 print(y) print("What are your numbers? 2 max") a=input("How many numbers would you like? :") Answer1=input("What is your first number? :") Answer2=input("What is your second number? :") if a==2: part1(Answer1, Answer2) else: print(a)
问题原因及解决方法
核心原因:类型不匹配
input()函数返回的内容是字符串类型,你输入的"2"是字符串,而判断条件里和整数2做相等比较,"2" == 2的结果为False,因此不会进入均值计算的分支。额外隐藏问题
就算解决了a的类型问题,Answer1和Answer2同样是字符串类型,直接用+运算会执行字符串拼接而非数值相加。比如输入1和2,会得到"12",再除以2得到6.0,不符合均值计算的预期。
修正后的代码
def part1(Answer1, Answer2): x = Answer1 + Answer2 y = x / 2 print(y) print("What are your numbers? 2 max") # 将输入的a转换为整数类型 a = int(input("How many numbers would you like? :")) # 将输入的数值转换为浮点数,支持小数输入 Answer1 = float(input("What is your first number? :")) Answer2 = float(input("What is your second number? :")) if a == 2: part1(Answer1, Answer2) else: print(a)
内容的提问来源于stack exchange,提问作者curious
相关产品推荐
相关产品推荐

