使用单个int()转换拼接字符串导致数值相加错误的问题咨询
问题原因分析
先看你的代码:
print("Give me two numbers and I'll add them for you") num_1 = input("Enter first number: ") num_2 = input("Enter second number: ") answer = int(num_1 + num_2) print(answer)
输入5和4得到54的核心原因是:
input()函数获取的所有输入默认都是字符串类型,所以你输入的5和4实际被存储为字符串"5"和"4"- 字符串之间的
+运算符作用是拼接内容,而非数学加法,所以num_1 + num_2得到的是字符串"54" - 最后把拼接后的字符串转成整数,输出自然就是54,而非数字5与4相加的结果9
修正方案
有两种简单的修正方式:
- 输入时直接转成整数,再执行加法
print("Give me two numbers and I'll add them for you") num_1 = int(input("Enter first number: ")) num_2 = int(input("Enter second number: ")) answer = num_1 + num_2 print(answer)
- 分别将两个字符串转成整数后再相加
print("Give me two numbers and I'll add them for you") num_1 = input("Enter first number: ") num_2 = input("Enter second number: ") answer = int(num_1) + int(num_2) print(answer)
内容的提问来源于stack exchange,提问作者Steev
相关产品推荐
相关产品推荐

