拆分用户输入整数然后对其执行数学运算?

问题描述 投票:-4回答:2

我希望用户输入一个3位数字,然后将该数字分成三个单独的数字,这样我就可以将第一个数字除以第二个数字,并将该结果添加到最后一个数字。

try:
   inp = int(input('Enter a 3 digit number: '))
    [int(i) for i in str(inp)]
    n1 = [0]
    n2 = [1]
    n3 = [2]
except ValueError:
    print('is not an integer')
except ZeroDivisionError:
    print('cannot divide by zero')
div_num = n1 / n2
result = div_num + n3
    print(result)

我知道我不能对字符串字符进行数学计算,但我该如何解决这个问题呢?

python python-3.x
2个回答
1
投票

这段代码毫无意义:

[int(i) for i in str(inp)]
n1 = [0]
n2 = [1]
n3 = [2]

第一行完成工作但丢弃结果。下一行定义包含1个元素0,1和2的列表...

如果输入保证为3个字符长,则可以使用

n1,n2,n3 = map(int,input('Enter a 3 digit number: '))

map被解压缩为3个变量。

我建议控件避免解压缩错误:

s = input('Enter a 3 digit number: ')
if len(s) == 3:
   try:
      n1,n2,n3 = map(int,s)
      # continue the processing
   except ValueError:
      # catch wrong integer exception

0
投票

你可以这样试试。

>>>
>>> a, b, c = (int(str) for str in input('Enter a 3 digit number: ').split(' '))
Enter a 3 digit number: 20 4 15
>>>
>>> a / b + c
20.0
>>>
© www.soinside.com 2019 - 2024. All rights reserved.