Я пытаюсь создать словарь с высказываниями Боба, но мне все время говорят, что я использую «неверный синтаксис» Что я делаю неправильно? Я пытаюсь вытащить случайные ключи из словаря и отобразить кавычки ...

bob_sayings = { 1: "I wish I was where I was when I wished I was here", 
   2:"There's a fine line between fishing and standing on the shore like an idiot.", 
   3: "After accomplishing a goal just look around to see whether you lost something or someone"}

bob_sayings

bob_sayings[randint(1, 3)
-1
Joey Jayman 20 Авг 2018 в 19:52

5 ответов

Лучший ответ

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

Как уже упоминали другие, вам не нужно использовать словарь, когда ключи являются последовательными целыми числами. Вместо этого вы можете попробовать использовать список или кортеж. Тогда вы можете использовать random.choice вместо этого, чтобы вам не пришлось возиться с индексами. Основным преимуществом этого является то, что вы можете добавлять элементы в последовательность, и вам не придется менять код где-либо еще. Вот пример.

import random

bob_sayings = ( 
    "I wish I was where I was when I wished I was here", 
    "There's a fine line between fishing and standing on the shore like an idiot.", 
    "After accomplishing a goal just look around to see whether you lost something or someone"
)

bob_says = random.choice(bob_sayings)
print(bob_says)
2
nicholishen 20 Авг 2018 в 18:54

Вам нужно включить

from random import randint

На первой линии. Также вам нужно добавить ] в конец вашей последней строки.

from random import randint

bob_sayings = { 1: "I wish I was where I was when I wished I was here",
   2:"There's a fine line between fishing and standing on the shore like an idiot.",
   3: "After accomplishing a goal just look around to see whether you lost something 
   or someone"}

bob_sayings

bob_sayings[randint(1, 3)]
1
Colby 20 Авг 2018 в 17:13

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

В любом случае, важная вещь: словари должны иметь ключи, которые что-то значат . В вашем случае это больше похоже на список, замаскированный под словарь. Лучше было бы написать что-то вроде

from random import choice
sayings = ['something', 'something else', 'another thing']
print(choice(sayings))
2
blue_note 20 Авг 2018 в 16:56
from random import randint
bob_sayings = { 1: "I wish I was where I was when I wished I was here", 2:"There's a fine line between fishing and standing on the shore like an idiot.", 3: "After accomplishing a goal just look around to see whether you lost something or someone"}
bob_sayings[randint(1, 3)]

Вы пропустили ] в конце.

1
wotanii 20 Авг 2018 в 16:55

Возможно, вы забыли скобку в конце bob_sayings [random.randint (1, 3)]

import random
bob_sayings = { 1: "I wish I was where I was when I wished I was here", 2:"There's a fine line between fishing and standing on the shore like an idiot.", 3: "After accomplishing a goal just look around to see whether you lost something or someone"}

bob_sayings

bob_sayings[random.randint(1, 3)]
0
Rafał 20 Авг 2018 в 16:54
51935309