Python 3.7.2 Elif не работает, только если оператор - PullRequest
0 голосов
/ 19 февраля 2019

Когда я печатаю словарь d, только white изменяется на Mindful, остальные остаются в качестве цвета.

import random

clrs = ['white', 'blue', 'black', 'purple', 'pink', 'yellow']
d = {}

while True:
    spawn = int(input('enter how many creatures to spawn: '))
    for x in range(spawn):
        clr = random.choice(clrs)
        print (clr)
        if clr=='white':
            clr='Mindful'
        elif clr=='blue':
            clr=='Anima'
        elif clr=='black':
            clr=='Dimension'
        elif clr=='purple':
            clr=='Enigma'
        elif clr=='pink':
            clr=='Light'
        elif clr=='yellow':
            clr=='Golem'
        else:
            print ('wtf how have you done this')
        d["ball{0}".format(x)]=clr
    print (d)

1 Ответ

0 голосов
/ 19 февраля 2019
clr=='Anima'
   ^^

Вы думали, что это на самом деле изменит clr на что-то еще?Я думаю, что нет: -)

Возможно, = может быть лучше здесь (и это все другие небелые тоже.


См. Следующую стенограмму для более подробной информации,== формирует выражение, а = назначает:

>>> xyzzy = 'plugh'
>>> xyzzy == 'twisty' ; print(xyzzy)
False
plugh
>>> xyzzy = 'twisty' ; print(xyzzy)
twisty
...