You are close with yours. This works:
inp = float(input("Enter your weight in ounces: "))
stones = inp / 224
pounds = stones * 14
print('{:.2f} Ounces is {:.2f} Stones or {:.2f} Pounds'.format(inp, stones, pounds))
However, since stone are traditionally expressed with rational numbers, not decimals, you can use the Fractions module in the standard Python library:
import fractions
inp = int(input("Enter your weight in ounces: "))
if inp>=14*16:
stones, f=inp // 224, fractions.Fraction(inp%224, inp)
pounds, oz = inp // 16, inp%16
outs=str(stones)
if abs(f)>.01:
outs+=' and {}/{}'.format(f.numerator, f.denominator)
outs+=' Stone'
outs+=' or {} Pounds'.format(pounds)
if oz>=1:
outs+=' {} ounces'.format(oz)
print(outs)
else:
f=fractions.Fraction(inp, 224)
pounds, oz = inp // 16, inp%16
print('{}/{} Stone or {} Pounds {} ounces'.format(
f.numerator, f.denominator, pounds, oz))
Example input, output:
Enter your weight in ounces: 1622
7 and 27/811 Stone or 101 Pounds 6 ounces
Enter your weight in ounces: 17
17/224 Stone or 1 Pounds 1 ounces
Enter your weight in ounces: 2240
10 Stone or 140 Pounds
Enter your weight in ounces: 3450
15 and 3/115 Stone or 215 Pounds 10 ounces
Or you can do the traditional British way to print Stone weight by N Stone XX (pounds)
:
inp = int(input("Enter your weight in ounces: "))
print('{} Stone {}'.format(inp//224, inp%224//16))
Which prints:
Enter your weight in ounces: 2528
11 Stone 4