社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何在python中将input[by input()]值作为参数传递?

UpaniK • 4 年前 • 1030 次点击  

我对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'

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

提前谢谢!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/49939
 
1030 次点击  
文章 [ 3 ]  |  最新文章 4 年前
Fabian
Reply   •   1 楼
Fabian    4 年前

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")
Thomas
Reply   •   2 楼
Thomas    4 年前

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}")
Sultan Singh Atwal
Reply   •   3 楼
Sultan Singh Atwal    4 年前

你可以试试这个:

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