我希望用户输入一个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)
我知道我不能对字符串字符进行数学运算,但是如何解决呢?
答案 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
>>>