Программа завершается после ввода целого числа, когда он спрашивает, сколько вам лет - PullRequest
1 голос
/ 18 июня 2020
print('Hi there, what is your name')
name = input()

if name == 'Alice':
    print('Hello, Alice')
if name != 'Alice':
    print('how old are you?')
    age = int(input())
elif age < 12:
    print('You are not Alice Kiddo.')
elif age > 2000:
    print('Unlike you, Alice is not an undead, immortal vampire.')
elif age > 100:
    print('You are not Alice, Grannie.')

При запуске программы я получаю

Привет, как вас зовут Джефф сколько тебе лет? 5

Процесс завершен с кодом выхода 0

Ответы [ 3 ]

1 голос
/ 18 июня 2020

Причина в том, что вы используете elif вместо if. Если вы используете комбинацию if и elif, она всегда будет выполняться в этом порядке, и первое пойманное условие захватит все выполнение.

Например:

if name == 'Alice':
    print('how old are you?')
    age = int(input())
elif name == "Alice" and True:
    print("won't be executed")

Для чтобы исправить это, вы можете вложить условия через:

if name == "Alice":
    if age == 123:
        do_stuff()

, который совпадает с:

if name == "Alice" and age == 123:
    do_stuff()

, или вы можете отредактировать дерево условий (если вы хотите продолжить поток кода) вместо if s и перехватить каждый из случаев индивидуально:

print('Hi there, what is your name')
name = input()
if name == 'Alice':
    print('Hello, Alice')
if name != 'Alice':
    print('how old are you?')
    age = int(input())

if name == "Alice" and age < 12:
    print('You are not Alice Kiddo.')
if name == "Alice" and age > 2000:
    print('Unlike you, Alice is not an undead, immortal vampire.')
if age > 100:
    print(f'You are not Alice, Grannie, but you might be {name}')
if name == "Bob":
    print("Hi Bob")
1 голос
/ 18 июня 2020

Проблема с операторами elif, они используются, если оператор if не соответствует действительности

Они похожи на «else if» или «если нет, то»

например :

a = input("Enter 1 or 2")
if a == 1:
    print("Why didn't you input two?")
elif a == 2:
    print("Why didn't you input one?")
1 голос
/ 18 июня 2020

это сработает для вас

print('Hi there, what is your name')
name = input()
if name == 'Alice':
    print('Hello, Alice')
if name != 'Alice':
    print('how old are you?')
    age = int(input())
    if age < 12:
        print('You are not Alice Kiddo.')
    if age > 2000:
        print('Unlike you, Alice is not an undead, immortal vampire.')
    if age > 100:
        print('You are not Alice, Grannie.')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...