Jump to content

Old Russian measure of length: Difference between revisions

→‎{{header|Python}}: Add implementation.
(→‎{{header|REXX}}: Add Python skeleton section.)
(→‎{{header|Python}}: Add implementation.)
Line 151:
 
=={{header|Python}}==
Run as:
<lang python></lang>
:<code>commandname <value> <unit></code>
 
<lang python>from sys import argv
unit2mult = {"arshin": 0.7112, "centimeter": 0.01, "diuym": 0.0254,
"fut": 0.3048, "kilometer": 1000.0, "liniya": 0.00254,
"meter": 1.0, "milia": 7467.6, "piad": 0.1778,
"sazhen": 2.1336, "tochka": 0.000254, "vershok": 0.04445,
"versta": 1066.8}
if __name__ == '__main__':
#argv[1:] = '1 meter'.split()
#argv[1:] = '1 milia'.split()
#argv[1:] = '1 militia'.split()
#argv[1:] = '1xx meter'.split()
 
assert len(argv) == 3, 'ERROR. Need two arguments - number then units'
try:
value = float(argv[1])
except:
print('ERROR. First argument must be a (float) number')
raise
unit = argv[2]
assert unit in unit2mult, ( 'ERROR. Only know the following units: '
+ ' '.join(unit2mult.keys()) )
 
print("%g %s to:" % (value, unit))
for unt, mlt in sorted(unit2mult.items()):
print(' %10s: %g' % (unt, value * unit2mult[unit] / mlt))</lang>
 
{{out}}
<pre></pre>1 meter to:
arshin: 1.40607
centimeter: 100
diuym: 39.3701
fut: 3.28084
kilometer: 0.001
liniya: 393.701
meter: 1
milia: 0.000133912
piad: 5.6243
sazhen: 0.468691
tochka: 3937.01
vershok: 22.4972
versta: 0.000937383</pre>
 
{{out}}
<pre></pre>1 milia to:
arshin: 10500
centimeter: 746760
diuym: 294000
fut: 24500
kilometer: 7.4676
liniya: 2.94e+06
meter: 7467.6
milia: 1
piad: 42000
sazhen: 3500
tochka: 2.94e+07
vershok: 168000
versta: 7</pre>
 
{{out}}
When given a wrong number
<pre>ERROR. First argument must be a (float) number
Traceback (most recent call last):
File "C:\Users\Paddy\Google Drive\Code\old_russian_lengths.py", line 18, in <module>
value = float(argv[1])
ValueError: could not convert string to float: '1xx'</pre>
 
{{out}}
When given a wrong unit
<pre>Traceback (most recent call last):
File "C:\Users\Paddy\Google Drive\Code\old_russian_lengths.py", line 24, in <module>
+ ' '.join(unit2mult.keys()) )
AssertionError: ERROR. Only know the following units: kilometer tochka versta fut diuym liniya vershok meter arshin piad centimeter sazhen milia</pre>
 
=={{header|REXX}}==
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.