Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для Viwwna
2 / 2 / 1
Регистрация: 18.11.2011
Сообщений: 159

Как связать введенное число от пользователя с ключом словаря?

01.06.2023, 20:33. Показов 1503. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, не могу связать введенное число от пользователя с ключом словаря ( def select_color). Есть в интернете другие методы решения этой задачи, но я хочу именно как я начала, правда закончить не могу(((.

Когда теорию читаю, вроде понятно, на практике многое не получается.

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
# -*- coding: utf-8 -*-
import simple_draw as sd
sd.resolution = (800, 800)
length = 200
# Добавить цвет в функции рисования геом. фигур. из упр lesson_004/01_shapes.py
# (код функций скопировать сюда и изменить)
# Запросить у пользователя цвет фигуры посредством выбора из существующих:
#   вывести список всех цветов с номерами и ждать ввода номера желаемого цвета.
# Потом нарисовать все фигуры этим цветом
 
# Пригодятся функции
# sd.get_point()
# sd.line()
# sd.get_vector()
# и константы COLOR_RED, COLOR_ORANGE, COLOR_YELLOW, COLOR_GREEN, COLOR_CYAN, COLOR_BLUE, COLOR_PURPLE
# Результат решения см lesson_004/results/exercise_02_global_color.jpg
color_rainbow = [sd.COLOR_RED, sd.COLOR_ORANGE, sd.COLOR_YELLOW, sd.COLOR_GREEN,
                 sd.COLOR_CYAN, sd.COLOR_BLUE, sd.COLOR_PURPLE]
 
def drawing_shapes(point_0, angle, length):
    for _ in range(3):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length)
        vector.draw()
        angle += 120
        point_0 = vector.end_point
    x = 100
    y = 400
    point_0 = sd.get_point(coor_x + x, coor_y + y)
    for _ in range(4):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length, width=5)
        vector.draw()
        angle += 90
        point_0 = vector.end_point
    x = 500
    y = 400
    point_0 = sd.get_point(coor_x + x, coor_y + y)
    for _ in range(5):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length)
        vector.draw()
        angle += 72
        point_0 = vector.end_point
    x = 500
    y = 0
    point_0 = sd.get_point(coor_x + x, coor_y + y)
    for _ in range(6):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length)
        vector.draw()
        angle += 60
        point_0 = vector.end_point
 
color_figure = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', ]
colors = {color_figure[0]: sd.COLOR_RED,
          color_figure[1]: sd.COLOR_ORANGE,
          color_figure[2]: sd.COLOR_YELLOW,
          color_figure[3]: sd.COLOR_GREEN,
          color_figure[4]: sd.COLOR_CYAN,
          color_figure[5]: sd.COLOR_BLUE,
          color_figure[6]: sd.COLOR_PURPLE
          }
 
def select_color():
    print('Возможные цвета:')
    for number, color in enumerate(color_figure):
        print(number, color)
    select_user = int(input('Введите номер желаемого цвета фигуры: '))
    # indexes = [number for number, color in enumerate(color_figure) if color == select_user]
    # return indexes
 
coor_x = 50
coor_y = 50
point_0 = sd.get_point(coor_x, coor_y)
drawing_shapes(point_0, angle=20, length=length)
 
 
sd.pause()
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2023, 20:33
Ответы с готовыми решениями:

Введенное число делить на второе введенное число пока первое число не станет равным нулю
Введенное число делить на второе введенное число пока первое число не станет равным int number=0; int secondNum=0; int...

Pandas - заменить значение ключом словаря
Добрый день! Создать столбец B значения в котором определяются по словарю import pandas as pd import numpy as np ...

Как связать пользователя и группы автомобилей?
У меня есть таблица Auto, с полями название,цвет, тип, цена. Я записываю значения в виндоусФорм, и добавлю в БД. После 10, к примеру, таких...

7
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
01.06.2023, 20:49
Viwwna, но color_figure это список, а не словарь, что конкретно надо сделать?
1
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
01.06.2023, 21:04
Лучший ответ Сообщение было отмечено Viwwna как решение

Решение

возможно что-то типа того...
Python
1
2
3
4
5
6
7
8
9
10
11
12
select_user = int(input('Введите номер желаемого цвета фигуры: '))
color_figure = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', ]
colors = {color_figure[0]: 'sd.COLOR_RED',
          color_figure[1]: 'sd.COLOR_ORANGE',
          color_figure[2]: 'sd.COLOR_YELLOW',
          color_figure[3]: 'sd.COLOR_GREEN',
          color_figure[4]: 'sd.COLOR_CYAN',
          color_figure[5]: 'sd.COLOR_BLUE',
          color_figure[6]: 'sd.COLOR_PURPLE'
          }
          
print(colors[color_figure[select_user-1]])
1
 Аватар для VistaSV30
988 / 332 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
01.06.2023, 21:46
Еще вариант:
Python
1
2
3
color_figure = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple']
d = dict(zip(range(8), color_figure))
print(d[int(input())])
1
 Аватар для Viwwna
2 / 2 / 1
Регистрация: 18.11.2011
Сообщений: 159
02.06.2023, 21:44  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Viwwna, но color_figure это список, а не словарь, что конкретно надо сделать?
Точно, не правильно написала. color_figure список, связанный со словарём colors, нужно что бы по введенной от пользователя цифре, выбиралось нужный цвет (значение словаря colors) и этим цветом были линии рисуемых фигур. Уже реализовала ( благодаря помощи на форуме) , теперь не знаю как реализовать возврат к select_user и ожидание введения числа? Строка № 71

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
78
79
# -*- coding: utf-8 -*-
import simple_draw as sd
 
sd.resolution = (800, 800)
length = 200
# Добавить цвет в функции рисования геом. фигур. из упр lesson_004/01_shapes.py
# (код функций скопировать сюда и изменить)
# Запросить у пользователя цвет фигуры посредством выбора из существующих:
#   вывести список всех цветов с номерами и ждать ввода номера желаемого цвета.
# Потом нарисовать все фигуры этим цветом
 
# Пригодятся функции
# sd.get_point()
# sd.line()
# sd.get_vector()
# и константы COLOR_RED, COLOR_ORANGE, COLOR_YELLOW, COLOR_GREEN, COLOR_CYAN, COLOR_BLUE, COLOR_PURPLE
# Результат решения см lesson_004/results/exercise_02_global_color.jpg
color_rainbow = [sd.COLOR_RED, sd.COLOR_ORANGE, sd.COLOR_YELLOW, sd.COLOR_GREEN,
                 sd.COLOR_CYAN, sd.COLOR_BLUE, sd.COLOR_PURPLE]
 
 
def drawing_shapes(point_0, angle, length):
    for _ in range(3):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length)
        vector.draw(result_color)
        angle += 120
        point_0 = vector.end_point
    x = 100
    y = 400
    point_0 = sd.get_point(coor_x + x, coor_y + y)
    for _ in range(4):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length, width=5)
        vector.draw(result_color)
        angle += 90
        point_0 = vector.end_point
    x = 500
    y = 400
    point_0 = sd.get_point(coor_x + x, coor_y + y)
    for _ in range(5):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length)
        vector.draw(result_color)
        angle += 72
        point_0 = vector.end_point
    x = 500
    y = 0
    point_0 = sd.get_point(coor_x + x, coor_y + y)
    for _ in range(6):
        vector = sd.get_vector(start_point=point_0, angle=angle, length=length)
        vector.draw(result_color)
        angle += 60
        point_0 = vector.end_point
 
 
color_figure = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'purple', ]
colors = {color_figure[0]: sd.COLOR_RED,
          color_figure[1]: sd.COLOR_ORANGE,
          color_figure[2]: sd.COLOR_YELLOW,
          color_figure[3]: sd.COLOR_GREEN,
          color_figure[4]: sd.COLOR_CYAN,
          color_figure[5]: sd.COLOR_BLUE,
          color_figure[6]: sd.COLOR_PURPLE
          }
 
print('Возможные цвета:')
for number, color in enumerate(color_figure):
    print(number, color)
select_user = int(input('Введите номер желаемого цвета фигуры: '))
 
if select_user > 6 or select_user < 0:
    print('Вы ввели недопустимое значение!')
#      Как реализовать возврат к  select_user и ожидание  введения числа?
result_color = (colors[color_figure[select_user]])
 
coor_x = 50
coor_y = 50
point_0 = sd.get_point(coor_x, coor_y)
drawing_shapes(point_0, angle=20, length=length)
 
sd.pause()
0
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
03.06.2023, 01:01
Viwwna, подскажите какая у вас версия Python установлена?

Добавлено через 28 минут
я нашел вам решение!
за поиски думаю тоже зачтется мне
Ошибка в форматировании
ну и, разумеется, благодарим Welemir1
2
 Аватар для s_t_r_a_j
526 / 179 / 58
Регистрация: 12.02.2023
Сообщений: 641
03.06.2023, 14:18
Цитата Сообщение от s_t_r_a_j Посмотреть сообщение
Viwwna, подскажите какая у вас версия Python установлена?
ну а почему я про версию Питона спрашивал, потому что у меня на 3.11 не встает simple_draw, скорее всего нужно чтото древнее типа Питона 3.6. тогда вопрос к ТС, зачем пользоваться simple_draw, есть же что поновей)
1
 Аватар для Viwwna
2 / 2 / 1
Регистрация: 18.11.2011
Сообщений: 159
04.06.2023, 07:37  [ТС]
Цитата Сообщение от s_t_r_a_j Посмотреть сообщение
ну а почему я про версию Питона спрашивал, потому что у меня на 3.11 не встает simple_draw, скорее всего нужно чтото древнее типа Питона 3.6. тогда вопрос к ТС, зачем пользоваться simple_draw, есть же что поновей)
Ага, на 3.11 не встаёт. На 3.10 только последняя поддержка. Только начала осваивать пайтон, поэтому по бесплатным урокам делаю от 2020 года, поэтому староватая библиотека.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.06.2023, 07:37
Помогаю со студенческими работами здесь

Вычисление выражения: введенное число не воспринимается как число
Дан n - мерный вектор а. Требуется вычислить an3+an-13+...+a13 вот код. Ввожу число, но к сожелению программа ее не...

Aiogram - Как получить сообщение пользователя, введённое после нажатия на кнопку?
в чат попадает сообщение от бота с 2 кнопками - ответить и отклонить. Нужно сделать так, чтобы при нажатии на кнопку ответить бот...

Как добавлять ошибки с ключом error, а имя и ключом name?
Как добавлять ошибки с ключом error и, а имя и ключом name? $name = $_POST; $phone = $_POST; $errors = ; if...

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

Как к ключу словаря прибавить число? (решено)
есть 2 словаря. rezultdata = {'0': {'artikul': 'a'}, '1': {'artikul': 'b'}} parsdata = {'0': {'artikul': 'c'}, '1':...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru