我对Python完全陌生,我只是从自学开始。我想通过从input()方法传递参数“ num1”和“ num2”的值来进行以下简单计算。
我尝试了以下代码。
def add(num1,num2):
return num1*num2
num1=input('Enter number1: ')
num2=input('Enter number2: ')
print(add(num1,num2))
但是在运行时(输入num1和num2之后)它显示以下错误。
TypeError: can't multiply sequence by non-int of type 'str'
有人可以解释我在哪里做错了以及如何将输入字符串转换为整数类型吗?
谢谢!
答案 0 :(得分:1)
您可以尝试以下方法:
def add(num1,num2):
return num1 * num2
num 1 = int(input('Enter number1: '))
num2 = int(input('Enter number2: '))
print(add(num1,num2))
input函数将输入存储为字符串,因此代码中发生的事情是您输入了两个整数,但它们被存储为字符串。您不能将两个字符串相乘。您需要做的就是使用int()函数将输入字符串转换为整数。如果要乘以浮点数,可以使用float()函数代替int()函数。将字符串传递给函数后,还可以将其转换为整数或浮点数。像这样:
def add(num1,num2):
return int(num1) * int(num2)
num1=input('Enter number1: ')
num2=input('Enter number2: ')
print(add(num1,num2))
答案 1 :(得分:1)
input
(在Python 3中)返回一个str
,它被视为文本而不是数字。如果要乘(或加)数字,则必须首先将字符串解析为数字。
有时这也会失败。如果假设输入始终是有效数字,则可以使用以下命令转换字符串:
float("3.1415926")
您可以在代码中使用以下代码:
def add(num1,num2):
return num1*num2
num1=float(input('Enter number1: '))
num2=float(input('Enter number2: '))
print(add(num1,num2))
为避免浮点错误,可以使用f字符串(在Python 3.6中添加)打印/显示浮点数。
def add(num1,num2):
return num1*num2
num1=float(input('Enter number1: '))
num2=float(input('Enter number2: '))
print(f"{add(num1,num2):.2f}")
答案 2 :(得分:1)
input()
将返回一个字符串,您必须将该字符串转换为ìnt
或float
,然后才能测试输入的数字是否有效。
isnumeric()
将返回true。
注意:我将函数重命名为mul
,因为这没有添加...
def mul(num1,num2):
return num1*num2
inp1=input('Enter number1: ')
inp2=input('Enter number2: ')
if inp1.isnumeric() and inp1.isnumeric():
num1 = int(inp1)
num2 = int(inp2)
print(mul(num1,num2))
else:
print("Atleast one input is not numeric")
答案 3 :(得分:-1)
def mul(num1,num2):
return(num1*num2)
inp1 = input('Enter number1:')
inp2 = input('Enter number2:')
num1 = int(inp1)
num2 = int(inp2)
print(mul(num1,num2))