Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 20.10.2020
Сообщений: 33

Как ссылаться на функции в списке

06.04.2021, 08:15. Показов 2060. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день , задание ниже , не могу понять как ссылаться на функции в списке
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# -*- coding: utf-8 -*-
 
import simple_draw as sd
 
# Запросить у пользователя желаемую фигуру посредством выбора из существующих
#   вывести список всех фигур с номерами и ждать ввода номера желаемой фигуры.
# и нарисовать эту фигуру в центре экрана
 
# Код функций из упр lesson_004/02_global_color.py скопировать сюда
# Результат решения см lesson_004/results/exercise_03_shape_select.jpg
 
point1 = sd.get_point(250, 250)
point2 = sd.get_point(250, 250)
point3 = sd.get_point(250, 250)
point4 = sd.get_point(250, 250)
angle = 0
 
 
def triangle(point, angle_1, length):
    for angle in range(0, 360, 120):
        v = sd.get_vector(start_point=point, angle=angle, length=length, width=2)
        v.draw()
        point = v.end_point
 
 
def square(point, angle_2, length):
    for angle in range(0, 360, 90):
        v = sd.get_vector(start_point=point, angle=angle, length=length, width=2)
        v.draw()
        point = v.end_point
 
 
def pentagon(point, angle_3, length, ):
    for angle in range(0, 360, 72):
        v = sd.get_vector(start_point=point, angle=angle, length=length, width=2)
        v.draw()
        point = v.end_point
 
 
def hexagon(point, angle_4, length, ):
    for angle in range(0, 360, 60):
        v = sd.get_vector(start_point=point, angle=angle, length=length, width=2)
        v.draw()
        point = v.end_point
 
 
# TODO Будет удобнее создать словарь в значениях которого будут храниться
#  названием фигур и ссылками на функции, а ключами словаря будут цифры,
#  вводимые пользователем.
#  Ссылки на функции, проще говоря их названия, можно поместить в структуру данных:
#  список, кортеж, словарь, ... На примере списков это работает так:
#  functs = [pentagon, hexagon, triangle]
#  draw_function = functs[0]
#  draw_function(start_point, start_angle, length
#  Также будет удобно сохранить в этой же структуре названия фигур.
 
def user_input():
    print('Возможные фигуры:\n1 : Треугольник \n2 : Квадрат \n3 : Пятиугольник \n4 : Шестиугольник')
    while True:
        user_shape = int(input('Введите желаемую фигуру: '))
        if 0 < user_shape < 5:
            if user_shape == 1:
                triangle(point=point1, angle_1=angle, length=100)
            if user_shape == 2:
                square(point=point2, angle_2=angle, length=100)
            if user_shape == 3:
                pentagon(point=point3, angle_3=angle, length=100)
            if user_shape == 4:
                hexagon(point=point4, angle_4=angle, length=100)
            return user_shape
        else:
            print('Вы ввели некорректный номер!')
            continue
 
 
user_input()
sd.pause()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.04.2021, 08:15
Ответы с готовыми решениями:

Как правильно ссылаться?
У меня есть сайт, хочу поставить три ссылки на три разных ресурса. Как это будет в глазах ПС. Тематика схожая с моей.

Как ссылаться на значения?
Есть простецкий код, который в итоге показывает сумму при нажатии на кнопку public partial class Form1 : Form { public...

Как коротко ссылаться на массив?
Здравствуйте, посоветуйте как лучше поступить в следующей ситуации. Есть, допустим, массивы А1, А2, ... А7. Каждый имеет вид типа...

2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.04.2021, 08:40
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Минимум правок
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
    dic = {1: lambda: triangle(point=point1, angle_1=angle, length=100),
           2: lambda: square(point=point2, angle_2=angle, length=100),
           3: lambda: pentagon(point=point3, angle_3=angle, length=100),
           4: lambda: hexagon(point=point4, angle_4=angle, length=100)}
 
#...
 
while True:
        user_shape = int(input('Введите желаемую фигуру: '))
        if user_shape in dic.keys():
            dic[user_shape]()
            break
#...
Добавлено через 2 минуты
Или же
Python
1
2
3
4
5
6
7
8
9
10
11
12
def user_input():
    dic = {1: triangle, 2: square, 3: pentagon, 4: hexagon}
 
    print('Возможные фигуры:\n1 : Треугольник \n2 : Квадрат \n3 : Пятиугольник \n4 : Шестиугольник')
    while True:
        user_shape = int(input('Введите желаемую фигуру: '))
        if user_shape in dic.keys():
            dic[user_shape](point1, angle, 100)
            break
        else:
            print('Вы ввели некорректный номер!')
            continue
0
0 / 0 / 0
Регистрация: 20.10.2020
Сообщений: 33
06.04.2021, 08:44  [ТС]
Спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2021, 08:44
Помогаю со студенческими работами здесь

Как ссылаться на JS-вкладку (iframe)
На стороннем ресурсе есть калькулятор с несколькими разделами, переключение которых реализовано на JS (вкладки). Нужно на разных страницах...

Как ссылаться на объекты внутри QTabWidget?
Здравствуйте. Скажите пожалуйста - как ссылаться на объекты, которые находятся внутри вкладок виджета QTabWidget? Вот что я имею в виду: ...

Как ссылаться на элементы главной формы
Есть форма, использующая главную форму &quot;Site.Master&quot; Нужно при нажатии в подчинённой форме на кнопку, менялся текст заголовка главной...

Как правильно ссылаться на элемент матрицы?
Нужна помощь. Ниже код. Формирую матрицу с данными. Потом построчно надо подставить элементы. Но ничего не получается. Помогите...

Как ссылаться на табличную часть справочника?
Есть реквизит Email в табличной части Доп_данные_о_клиенте справочника Клиенты При выборе застрахованногоЛица пишет поле объекта не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru