/ / If e elif não estão imprimindo - python, impressão, if-statement

Se e elif não estão imprimindo - python, impressão, if-statement

print"Personal information, journal and more to come"
x = raw_input()
if x ==("Personal Information"): # wont print
print" Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN:  , SS:"
elif x ==("Journal"):  # wont print
read = open("C:\python\foo.txt" , "r")
name = read.readline()
print (name)

Eu começo o programa e "Personal information, journal and more to come" mostra, mas quando eu digito Personal information ou journal neither deles imprimem o resultado e eu não estou recebendo nenhum erro.

Respostas:

4 para resposta № 1

quando eu digito informação pessoal ou revista

Bem, sim. Não está esperando nenhum deles, seu caso está errado.

Para realizar uma comparação sem distinção entre maiúsculas e minúsculas, converta ambos para o mesmo caso primeiro.

if foo.lower() == bar.lower():

0 para resposta № 2

Funciona para mim. Você está escrevendo "Informações Pessoais" com uma maiúscula?

print"Personal information, journal and more to come"
x = raw_input()
if x == ("Personal Information"): # wont print
print" Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN:  , SS:"
elif x ==("Journal"):  # wont print
read = open("C:\python\foo.txt" , "r")
name = read.readline()
print (name)

saída:

[00:20: ~$] python py
Personal information, journal and more to come
Journal
Traceback (most recent call last):
File "py", line 8, in <module>
read = open("C:\python\foo.txt" , "r")
IOError: [Errno 2] No such file or directory: "C:\python\foo.txt"
[00:20: ~$] python py
Personal information, journal and more to come
Personal Information
Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN:  , SS:
[00:20: ~$]

Talvez seja a formatação que eu estou usando 4 espaços em branco.


0 para resposta № 3

Você está digitando informações pessoais, quando a instrução if está esperando informações pessoais (com um I maiúsculo para informações).

O que você pode fazer (o que Ignacio acima está iludindo) é:

if x.lower() == ("Personal Information").lower():

ao invés de:

if x == ("Personal Information"):

então qualquer caso, "Informações pessoais", "pessoalinformation "," infoRmation personal ", e assim por diante, corresponderão e entrarão na instrução if. A razão pela qual isso funciona é porque quando isso é executado, ele assume o valor de xe o transforma em uma string minúscula e a string" Informações pessoais "e torná-lo uma seqüência de caracteres minúscula, então agora, não importa o que o caso era originalmente, ambos serão minúsculos quando comparando.

foo e bar são exemplos, programação comumnomenclatura na programação. É apenas um exemplo de qualquer variável, x, y, z, etc, poderia ter sido usado com a mesma facilidade, mas foo e bar são apenas variáveis ​​comuns para se referir.