我希望用户输入一个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)
我知道我不能对字符串字符进行数学计算,但我该如何解决这个问题呢?
这段代码毫无意义:
[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
你可以这样试试。
>>>
>>> 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
>>>