Не могли бы вы рассказать мне, есть ли более элегантное решение для моего кода, что мне нужно?
Моя маленькая программа принимает текстовый ввод из семи полей ввода (точное число может быть указанный пользователем). Входные строки затем объединяются с вкрапленным фиксированным текстовые элементы. Создается один вывод в виде строки.
Программа работает отлично. Тем не менее, мое программирование поражает меня как очень неэлегантного и непифонного. Могли бы вы помочь мне улучшить, чтобы способствовать обучению?
Две точки:
1) Мне нравится суммировать длину строки из всех семи текстовых входов. Я просто добавил их, который не является элегантным. Как я мог сделать это лучше?
string_length = len(str(E1.get())) + len(str(E2.get())) + len(str(E3.get())) + len(str(E4.get())) + len(str(E5.get())) + len(str(E6.get())) + len(str(E7.get()))
2) В зависимости от количества полей ввода, которые могут быть заданы пользователем с использованием шкалы Tkinter S, поля ввода (En) включены или отключены для ввода ввода.
Строки str (En.get()), полученные из этого поля ввода, затем объединяются с помощью фиксированные строковые элементы partM между ними, чтобы создать строку m. (Вся строка окружена partL и partR с каждой стороны.) Я сделал это, выполнив запрос переменной масштаб S (количество полей ввода) с помощью метода get(). Затем программа решает, как продолжить, если /elif?
Чем выше установлен масштаб, тем больше добавляются текстовые элементы. Тем не менее это очень похожее задание, которое меня поражает, поскольку может быть более прямое решение.
Это создает длинные строки кода и не очень поддается расширению программы для получения дополнительных полей ввода. Как я мог сделать это лучше?
выдержка кода:
if S.get() == 1:
if string_length == 22*S.get():
m = partL + str(E1.get()) + partR
do_something()
else:
warning()
elif S.get() == 2:
if string_length == 22*S.get():
m = partL + str(E1.get()) + partM + str(E2.get()) + partR
do_something()
else:
warning()
elif S.get() == 3:
if string_length == 22*S.get():
m = partL + str(E1.get()) + partM + str(E2.get()) + partM + str(E3.get()) + partR
do_something()
else:
warning()
Я очень новичок в Python. Я также новичок в программировании. Тем не менее я горжусь тем, что написал небольшой код, который отлично работает и делает что-то полезное для меня и для других. Я приветствую любые предложения.