如何将字符串输入作为整数参数传递?

2024-04-24 09:10:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想通过传递来自input()方法的参数num1num2的值来进行以下简单的计算

我尝试了以下代码:

def add(num1, num2):
    return num1 * num2

num1 = input('Enter number1: ')
num2 = input('Enter number2: ')

print(add(num1, num2))

但在运行时(在输入num1num2之后),它会显示以下错误:

TypeError: can't multiply sequence by non-int of type 'str'

有人能解释一下我哪里出错了,以及如何将输入字符串转换成整数类型吗


Tags: 方法代码addinput参数returndef错误
3条回答

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}")

您可以尝试以下方法:

def add(num1, num2):
    return num1 * num2

num1 = int(input('Enter number1: '))
num2 = int(input('Enter number2: '))

print(add(num1, num2))

^{}函数将输入存储为字符串,因此代码中出现的情况是输入两个整数,但它们存储为字符串。不能将两个字符串相乘。您只需使用[int()][2]函数将输入字符串转换为整数。如果要将浮点相乘,可以使用[float()][3]函数代替int()函数。将字符串传递到函数后,还可以将其转换为整数或浮点。大概是这样的:

def add(num1, num2):
    return int(num1) * int(num2)

num1 = input('Enter number1: ')
num2 = input('Enter number2: ')

print(add(num1, num2))

input()将返回一个字符串,您必须将该字符串转换为ìntfloat,您可以测试输入是否为有效数字

如果字符串中的所有字符都是数字字符且字符串不是空的,则isnumeric()将返回true

注意:我将函数重命名为mul,因为这不是添加

def mul(num1,num2):
    return num1*num2

inp1=input('Enter number1: ')
inp2=input('Enter number2: ')

if inp1.isnumeric() and inp2.isnumeric():
    num1 = int(inp1)
    num2 = int(inp2)
    print(mul(num1,num2))
else:
    print("Atleast one input is not numeric")

相关问题 更多 >