Python Forum

Full Version: Dynamic Formatting of String
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I'm having some issues figuring out a way to transform a random number, that ranges from 2-5 characters in length. I'm trying to format the first 3 characters, regardless of spaces, to the following format.

Input = '12345'
Expected_Result = '1 2/3'

This is what I have so far, but it is not dynamic with spaces. Any help will be appreciated.

bit_size= '618'

print('{} {}/{}'.format(*bit_size))
use double slash in print statement.
You need to escape the '/' which is itself an escape character
(Feb-27-2018, 04:06 AM)Larz60+ Wrote: [ -> ]use double slash in print statement.
You need to escape the '/' which is itself an escape character

So I was able to get a little further after working on it for a few hours, but I'm still hitting a roadblock with allowing for a dynamic input. For example, the below output is constricted by the formatting code I've entered and is giving me a Tuple Index error. Any thoughts on how I can change that to allow for a return of values 1-4 numbers in length?

size = '13 1/8'
#grabs numeric values in string and concatenates
def get_num(x):
    return str(''.join(ele for ele in x if ele.isdigit()))

x = get_num(size)
y = int(x)

#rules to remove leading 1s
if int(str(y)[:1]) == 1:
	if int(str(y)[1]) != 1:
		print('{} {}/{}'.format(*x))
	else:
		print('{}{} {}/{}'.format(*x))
else:
	print('{}{} {}/{}'.format(*x))