2015-10-17 3 views
1

Мне нужна помощь. Я не понимаю, что я делаю неправильно. Мне нужен код, который проверяет первый номер ввода пользователя. Например, я ввожу цифры 34566, и он смотрит на первое число и печатает «он» или «она».Прочтите первый номер ввода пользователем

Возможно, кто-то может дать мне совет, как его решить.

print("Sisesta isikukood") 
isikukood[0] = int(input()) 

if (isikukood[0] == 1 or isikukood[0]== 3 or isikukood[0]== 5): 
    print("He") 
else: 
    if isikukood[0] == 2 or isikukood[0]== 4 or isikukood[0] == 6: 
     print("She") 
    else: 
     print("Vale isikukood") 

ответ

0

Получите ввод как строку. Затем получите первое число этого ввода, подобное этому isikukood [: 1]. Поскольку первое число теперь является строкой (не целой), вы должны сравнить ее со строкой.

print("Sisesta isikukood") 
isikukood = str(input()) 

if (isikukood[:1] == '1' or isikukood[:1] == '3' or isikukood[:1] == '5'): 
    print("He") 
elif isikukood[:1] == '2' or isikukood[:1]== '4' or isikukood[:1] == '6': 
    print("She") 
else: 
    print("Vale isikukood") 

Эда :)

+0

nüüd пиков KORRAS olema :) – Harry

+0

Tänud nüüd Tuli 2 võimalust: D Аджаб VEEL Rohkem segadusse Teine на tunduvalt lühem. Teine siis võrdleb numbreid nagu aru saan ja sinu oma stringe, sain õigesti aru? :) – Martin

+0

Mõlemad võrdlevad tegelikult stringe. Teine kasutab lihtsalt head meetodit «in», mis võrdleb etteantud stringi (sinu puhul siis ik esimene number) kõikide massiivis/listis olevate elementidega. Teeb asja tõesti loetavamaks. – Harry

1

Вместо того, чтобы преобразовать строку (значение, возвращаемое input()), оставить его в виде строки. И вы можете использовать оператор индекса для получения первого символа:

print("Sisesta isikukood") 
num = input() # no `int(..)` 

if num[:1] in ('1', '3', '5'): 
    print("He") 
elif num[:1] in ('2', '4', '6'): 
    print("She") 
else: 
    print("Vale isikukood") 

ПРИМЕЧАНИЕ: Символы должны сравниваться с символами. ('1', '3', '5', ... вместо 1, 3, 5)

+0

Да, но хорошо, когда я ставлю более 1 номера, он говорит последние els сейчас. – Martin

+0

@Martin, более 1 номер? Что вы имеете в виду? – falsetru

+0

пример, когда я ставлю 2456, он говорит последние els, так как сейчас он просто читает только 1 фрахтователя – Martin

Смежные вопросы