Не уверен, как включить этот оператор if и else для отображения правильной строки - PullRequest
0 голосов
/ 03 октября 2018

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

import random
for x in range(1):
  print random.randint(1,8)

if random.randint(1,8) in {1, 2, 3}:
  print("https://media.giphy.com/media/vgPDmpQsQsjug/giphy.gif")

elif random.randint(1,8) in {4, 5, 6}:
  print("http://i0.kym-cdn.com/photos/images/original/000/676/205/57b.gif")

else:
  print("Bye")

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Для чего-то подобного random также имеет random.choice, что позволит случайным образом выбирать один из ваших вариантов выбора, не нужно генерировать int для сравнения.Существует также random.choices, который принимает аргумент, разрешающий веса, как в вашем примере [3, 3, 2] , [.375, .375, .25]

import random

options = [
    "https://media.giphy.com/media/vgPDmpQsQsjug/giphy.gif",
    "http://i0.kym-cdn.com/photos/images/original/000/676/205/57b.gif",
    "Bye"
]

print(random.choice(options))
print(*random.choices(options, [.375, .375, .25]))
http://i0.kym-cdn.com/photos/images/original/000/676/205/57b.gif
https://media.giphy.com/media/vgPDmpQsQsjug/giphy.gif
0 голосов
/ 03 октября 2018

random.randint вычисляет новое случайное число каждый раз, когда оно вызывается.Кроме того, вам не нужен цикл for для печати переменной.

Вместо этого вызовите random.randint один раз, сохраните число в переменной, а затем повторно используйте в последующей логике.Вы также можете использовать range, например, if x in range(1, 4) представляет более ясную логику, чем if x in {1, 2, 3}.

x = random.randint(1, 8) 

if x in range(1, 4):
    print("https://media.giphy.com/media/vgPDmpQsQsjug/giphy.gif")

elif x in range(4, 7):
    print("http://i0.kym-cdn.com/photos/images/original/000/676/205/57b.gif")

else:
    print("Bye")

Стилистически вы должны придерживаться правила "отступа из 4 символов".Хотя ваш код неверен, он не соответствует общепринятым соглашениям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...