Домашнее задание на Python без использования IF Statement

Всякий раз, когда вы хотите использовать переменные переменные, вероятно, лучше использовать словарь. Поэтому вместо записи

$foo = "bar"
$$foo = "baz"

вы пишете

mydict = {}
foo = "bar"
mydict[foo] = "baz"

Таким образом, вы не будете случайно перезаписывать ранее существовавшие переменные (что является аспектом безопасности), и вы можете иметь разные " Пространства имен». [/ д2]

0
задан Ayxan 23 March 2019 в 21:09
поделиться

3 ответа

Используя преимущества сравнения объектов bool и tuple, это легко записать как

(current_section=="PM",current_hour%12,current_minute)<(due_section=="PM",due_hour%12,due_minute)

. Конечно, канонизация числом минут с полуночи является более общей: 111]

... который можно сделать функцией, которая будет применяться любое количество раз.

0
ответ дан Davis Herring 23 March 2019 в 21:09
поделиться

Сначала вы хотите проверить «AM» и «PM»

print(current_section < due_section)

А затем вы хотите преобразовать время в минутах и ​​сравнить их

current_time = current_hour*60+current_minute
due_time = due_hour*60+due_minute
print(current_time < due_time)

Объедините два из них:

print(current_section < due_section or current_time < due_time)

Если current_section < due_section истинно, оно игнорирует второе утверждение.

0
ответ дан Alakazam 23 March 2019 в 21:09
поделиться

Вот как вы делаете это без единого, если:

from datetime import datetime

def to24(h: int, m: int, s: str) -> datetime:
  m: str = str(h) + ':' + str(m) + " " + s;
  return datetime.strptime(m, '%I:%M %p');

def is_valid(h1: int, m1: int, s1: str, h2: int, m2: int, s2: str) -> bool:
  return to24(h1, m1, s1) <= to24(h2, m2, s2);


def main() -> int:
  current_hour = 1;
  current_minute = 0;
  current_section = "AM";
  due_hour = 12;
  due_minute = 0;
  due_section = "PM";
  print(
    is_valid(
      current_hour,
      current_minute,
      current_section,
      due_hour,
      due_minute,
      due_section,
    )
  );

  return 0;

__name__ == "__main__" and main(); # See how this avoids `if` :D
0
ответ дан Ayxan 23 March 2019 в 21:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: