Skip to content

Instantly share code, notes, and snippets.

@demetranadya
Created November 19, 2023 05:54
Show Gist options
  • Save demetranadya/d533f2358eb3d6c02db1ac53aaf66bcd to your computer and use it in GitHub Desktop.
Save demetranadya/d533f2358eb3d6c02db1ac53aaf66bcd to your computer and use it in GitHub Desktop.
python aprogramm args
# Задание
# Представьте, что вам заказали написать программу, которая по ответам пользователя умела бы определять его пол. Необходимо написать скрипт, который в качестве аргументов принимает несколько факторов (именованных аргументов):
# "barbie"— говорит об отношении пользователя к куклам. Это целое число в диапазоне от 0 до 100, значение по умолчанию — 50;
# "cars"— говорит об отношении пользователя к машинам. Значение задается аналогично предыдущему.
# "movie"— это любимая телевизионная программа пользователя из списка [melodrama, football, other]. По умолчанию — other.
# На выходе же скрипт должен выводить вероятность мужского и женского пола пользователя от 0 до 100% по формуле
# boy = (100 − barbie + cars + movie)∕3,
# girl = (100 − boy).
# После вычисления значение boy надо привести к целому числу операцией int(value).
# Значение movie надо перевести в число по следующему принципу:
# melodrama = 0
# football = 100
# other = 50
# Если пользователь вводит некорректное значение, то оно должно стать равным 50. (107 => 50).
# Пример 1
# Ввод Вывод
# python3 solution.py —cars 80 —barbie 0 —movie football
# boy: 93
# girl: 7
# Пример 2
# Ввод Вывод
# python3 solution.py
# boy: 50
# girl: 50
# Примечания
# Необходимо использовать библиотеку argparse
# Решение
import argparse
parser = argparse.ArgumentParser()
max_int = 100
min_int = 0
middle = 50
parser.add_argument('--barbie', nargs='?', const=50, default=50, type=int, help='This will be option One')
parser.add_argument('--cars', nargs='?', const=50, default=50, type=int, help='This will be option Two')
parser.add_argument('--movie', nargs='?', const='other', default='other', type=str, help='This will be option Three')
args = parser.parse_args()
dict_m = {
'melodrama': 0, 'football': 100, 'other': 50
}
one = args.barbie
two = args.cars
three = dict_m.get(args.movie)
if not three:
three = args.get('other')
if (one > max_int) or (one < min_int):
one = middle
if ((two > max_int) or (two < min_int)):
two = middle
boy = int((100 - one + two + three) / 3)
girl = 100 - boy
print("boy: ", boy)
print("girl: ", girl)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment