Mon code donne toujours le "Have a nice day", où ai-je mal tourné

import random
random_choice = ['Noob', 'Average', 'Pro', 'Expert']

name = input('What is your gamername? ')

print(name, 'is a', random.choice(random_choice), 'Gamer')

if random.choice == 'Noob':
    print('Im afraid there is nothing to be done')
else:
    print('Have a Nice Day', name)

La sortie est toujours

What is your gamername? (name=
Gamerman is a (Random) Gamer
Have a Nice Day (name)
-6
PythonNoob 7 mars 2019 à 18:24

2 réponses

Meilleure réponse

Vous ne voulez pas utiliser la fonction random.choice dans votre instruction if.

Enregistrez le nom aléatoire en tant que variable et vérifiez-le.

import random

random_choice = ['Noob', 'Average', 'Pro', 'Expert']

name = input('What is your gamername? ')

random_name = random.choice(random_choice)

print(name, 'is a', random_name, 'Gamer')

if random_name == 'Noob':
    print('Im afraid there is nothing to be done')
else:
    print('Have a Nice Day', name)
1
Aran-Fey 7 mars 2019 à 15:29

if random.choice == 'Noob': n'évaluera jamais True car random.choice est une fonction et une fonction n'est jamais égale à une chaîne.

Lorsque vous appelez random.choice la première fois, affectez-le à une variable. Ensuite, vous pouvez comparer avec cette variable dans votre conditionnel.

import random
random_choice = ['Noob', 'Average', 'Pro', 'Expert']

name = input('What is your gamername? ')

gamer_kind = random.choice(random_choice)
print(name, 'is a', gamer_kind, 'Gamer')

if gamer_kind == 'Noob':
    print('Im afraid there is nothing to be done')
else:
    print('Have a Nice Day', name)
3
Kevin 7 mars 2019 à 15:27