Как я могу рассчитать это число без так много переменных?

У меня есть все эти переменные, и мне это кажется слишком сумасшедшим.

text1 = "ABCD" + " : " + "EFGH"
text2 = str(3.06) + "% : " + "XYZ"

# The text is not actually equal to "ABCD", "EFGH", and "XYZ"

num1 = int(len(str(text1)))
num2 = int(len(str(text2)))
num3 = int(num1 - num2)
num4 = int(num3/2)
num5 = num4*" "

Есть ли способ упростить это?

4 ответа

Вы можете просто заменить операции в месте каждой переменной. Он работает аналогично математике:

num = " " * int((len(text1) - len(text2))/2)

Обратите внимание, что нет необходимости явно указывать на str переменные text1 и text2 поскольку они уже имеют тип str. Вы можете это увидеть, распечатав

print(type(text1))

Если вы используете Python 2.7, тогда нет необходимости делиться делением на int. Но если это Python 3.x, то это будет лишним.


" " * ((len(text1) - len(text2))/2)


Вы выполняете множество избыточных конвекций (строк для строк и ints для ints)

text1 = "ABCD" + " : " + "EFGH"
text2 = str(3.06) + "% : " + "XYZ"

# The text is not actually equal to "ABCD", "EFGH", and "XYZ"

num1 = len(text1)
num2 = len(text2)
num3 = num1 - num2
num4 = num3/2
num5 = num4*" "

вы можете также сжать последние 5 операций только одним

num5 = " " * (( len(text1)-len(text2) ) / 2 )


В Python 2: " " * ((len(text1) - len(text2))/2)

В Python 3: " " * ((len(text1) - len(text2))//2) (потому что вы хотите целочисленное деление)

licensed under cc by-sa 3.0 with attribution.