Как я могу вызвать значение словаря из пользовательского ввода - PullRequest
1 голос
/ 18 февраля 2020

Я новичок в программировании, это тоже мой первый пост.

Проблема в том,

Спросите пользователя, какой у него вес от 1 до 4.

1 = 0.5, 2 = 1.2, 3 = 1.7, 4 = 2.4. 

Я настроил свой словарь так.

Поэтому, когда пользователь вводит 2

Когда я выполняю печать, он печатает 2, а не 1.2. как мне обновить новое значение?

Ответы [ 5 ]

2 голосов
/ 18 февраля 2020

IIU C вам нужно

 scal3 = {"1":0.5, "2":1.2, "3":1.7, "4":2.4}

 n = input("enter a number: ")

 print(scal3[n])

или если вы не хотите, чтобы он выдавал ошибку, если пользователь вводит неправильный ключ

print(scal3.get(n))
1 голос
/ 18 февраля 2020

Здесь вы должны сделать:

weight = int(input("Enter your Weight: "))

def getScale(weight):
    return {
        1 : 0.5,
        2 : 1.2,
        3 : 1.7,
        4 : 2.4
    }.get(weight, 0.5)


print(getScale(weight))

Используя второй параметр get(weight, 0.5), вы можете определить, что происходит, когда значение, введенное пользователем, отсутствует в dict.

1 голос
/ 18 февраля 2020

Добро пожаловать, Даниэль!

Если я правильно понимаю, у вас есть 1, 2, 3 и 4 в качестве клавиш, соответствующих 0,5, 1,2, 1,7 и 2,4, соответственно.

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

weights_dictionary = {1: 0.5, 2: 1.2, 3: 1.7, 4: 2.4}

user_weight = int(input("Enter weight from 1 to 4:"))

print(weights_dictionary[user_weight])
1 голос
/ 18 февраля 2020

Если вы не хотите хранить ключи в своем словаре в строковом типе, вам придется преобразовать пользовательский ввод (string) в целое число.

Кроме того, для печати нужного вывода вам необходимо доступ к словарю для значения с ключом. Вы можете сделать это просто: my_dict[key]. Это даст вам значение для ключа.

Попробуйте это:

weight_dict = {1 : 0.5, 2 : 1.2, 3 : 1.7, 4 : 2.4}

input = input("enter a weight: ")

input_weight = int(input.strip())

print("Weight on scale is : {0}".format(weight_dict[input_weight]))
0 голосов
/ 18 февраля 2020

Я думаю, что вы делаете, печатаете значение ввода вместо значения ключа в dict. В dict есть соответствие между ключом и значением. Поэтому, если вы хотите напечатать значение ключа 2, вам нужно спросить dict о значении ключа 2. Это можно сделать, вызвав dict с этим конкретным ключом. Так что, если мы предположим, что вы сделали dict с именем weights, как этот `

weights ={1:0.5,2:1.2,3:1.7,4:2.4}

затем, чтобы получить значение для ключа 2, нам нужно вызвать веса со следующим синтаксисом:

value = weights[2]

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

weights ={1:0.5,2:1.2,3:1.7,4:2.4}
user_input = 0 
while user_input not in (weights.keys()):
    user_input = input("Please input the value for weight between 1 to 4: ")
print("Value of weight = %s"%weights[user_input])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...