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

时间:2018-06-20 07:44:03

标签: python python-3.x

我希望用户输入一个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)

我知道我不能对字符串字符进行数学运算,但是如何解决呢?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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
>>>