首页 > 解决方案 > Python 3.7.2 Elif 仅在 if 语句中不起作用

问题描述

当我打印字典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)

标签: if-statementpython-3.7

解决方案


clr=='Anima'
   ^^

你认为这实际上 clr变成别的东西吗?我想不是 :-)

也许=在这里可能会更好(所有其他非白人也是如此。


有关更多详细信息,请参阅以下记录,在分配==时形成表达式:=

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

推荐阅读