如果和elif没有打印

时间:2012-07-30 21:12:34

标签: python printing 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)

我启动该计划并"Personal information, journal and more to come"显示,但当我输入Personal informationjournal neither时,打印结果并且我没有收到任何错误。

3 个答案:

答案 0 :(得分:4)

  

当我输入个人信息或期刊

嗯,是的。它没有预料到这两者;你的情况是错的。

要执行不区分大小写的比较,请先将两者转换为相同的大小写。

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

答案 1 :(得分:0)

适合我。你是用资本I写“个人信息”吗?

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)

输出:

[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: ~$] 

也许是格式化?我正在使用4个白色空间。

答案 2 :(得分:0)

您正在输入个人信息,当if语句需要个人信息时(以大写字母I获取信息)。

你可以做什么(上面的伊格纳西奥躲避的是):

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

而不是:

if x == ("Personal Information"):

然后任何情况下,“个人信息”,“个人信息”,“personAL infoRmation”等将匹配并进入if语句。这个工作的原因是因为当它执行时,它将取x的值,并使其成为小写字符串,并使字符串“个人信息”并使其成为小写字符串,所以现在无论原来是什么情况,他们比较时两者都是小写的。

foo和bar是示例,编程中常见的编程命名法。它只是一个例子,任何变量,x,y,z等都可以很容易地使用,但foo和bar只是常用变量引用。