Я преобразовал бы строку во все заглавные буквы (с ToUpper
), тогда сравнивают это с оригиналом (использование Equals
). Должно быть выполнимым в одной строке кода.
return s.Equals(s.ToUpper())
Я поклонник правила ДеМоргана, которое берет ваш ex3 и производит ex2. Пустой блок if - это мысленный блок imo. Вы должны остановиться, чтобы прочитать то, что существует - тогда вы должны задаться вопросом, почему.
Если вам нужно оставлять комментарии вроде // Это специально оставлено пустым; тогда код не очень понятен.
Вторая половина проблемы - создать таблицу HTML из списка списков строк:
def html_table(lol):
print '<table>'
for sublist in lol:
print ' <tr><td>'
print ' </td><td>'.join(sublist)
print ' </td></tr>'
print '</table>'
Если вы хотите получить ее как отдельную строку, а не распечатывать, измените каждое print
в yield
и используйте '\ n'.join (html_table (lol))
.
Теперь у вас есть два простых, полезных, пригодных для использования и многоразового использования строительных блоков - их наличие отдельный пригодится всякий раз, когда вы хотите представить свои данные в виде чего-либо, НО HTML-таблицу, а также всякий раз, когда список-списков для представления в виде HTML-таблицы исходит из любого другого способа его создания. Объединить их легко в коде вашего приложения, но, конечно, также легко выполнить простую «склеивающую процедуру», например, предположив, что версия html_table
на основе yield
и что желателен результат с одной строкой:
Есть несколько библиотек шаблонов (мне нравится Генши, но есть много других).
В качестве альтернативы вы могли бы сделать что-нибудь вроде:
def print_table(data, row_length):
print '<table>'
counter = 0
for element in data:
if counter % row_length == 0:
print '<tr>'
print '<td>%s</td>' % element
counter += 1
if counter % row_length == 0:
print '</tr>'
if counter % row_length != 0:
for i in range(0, row_length - counter % row_length):
print '<td> </td>'
print '</tr>'
print '</table>'
Maybe manipulate template is easier for toy codes, =p
def get_html_tbl(seq, col_count):
if len(seq) % col_count:
seq.extend([''] * (col_count - len(seq) % col_count))
tbl_template = '<table>%s</table>' % ('<tr>%s</tr>' % ('<td>%s</td>' * col_count) * (len(seq)/col_count))
return tbl_template % tuple(seq)