SGD转USD转换器if语句问题求助:input输入无法被识别
解决你的SGD转USD转换器问题
嘿,我来帮你排查下代码里的问题~作为编程新手,碰到这种类型相关的问题很正常,咱们一步步来解决:
问题1:input()返回的是字符串,和整数比较不匹配
你现在用choice = input()获取用户输入,这个函数返回的是字符串类型,而你在if判断里写的是choice == 1(整数1),一个字符串和整数永远不可能相等,所以程序永远会走到else分支,显示输入错误。
问题2:金额输入没有转成数值类型
就算解决了上面的问题,后面输入的金额amount也是字符串,传给converter函数时,字符串和数字相乘会直接报错,因为Python不允许这种操作。
修正后的代码
def converter(scal): return scal * 1.33504 print('Welcome to Smurk Converter ') print('Press 1 to convert SGD to USD :') # 把输入转成整数类型,才能和1比较 choice = int(input()) if choice == 1: print('Amount of money you want to convert: $') # 把金额转成浮点型,支持小数金额 amount = float(input()) his_amount = amount print(f"You entered: ${amount}") print('If you were to convert that amount SGD to USD...') print('It will be: $') print(converter(his_amount)) else: print('Wrong Input, just enter either 1 or 2')
关键改动说明
- 把
choice = input()改成choice = int(input()):将用户输入的字符串转成整数,这样就能和整数1正确比较了。 - 把
amount = input()改成amount = float(input()):将金额输入转成浮点类型,这样才能和汇率做乘法运算。 - 加了一行
print(f"You entered: ${amount}")让输出更清晰,你也可以根据需要调整。
如果之后要加USD转SGD的功能(对应选项2),只需要在else里再加一个elif分支,写对应的转换逻辑就好啦~
内容的提问来源于stack exchange,提问作者Minz Coder
相关产品推荐
相关产品推荐

