2012-07-30 58 views
0
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 information或它们的journal neither打印出结果,我没有得到任何错误。如果和ELIF不打印

回答

4
当我键入任何个人信息或期刊

,是的。它并不期待任何一个;你的情况是错误的。

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

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

呃我认为我需要一个更好的解释我是一个初学者在实际脚本中看起来像什么?你是否想让我的文件中的文字小写?什么是吧 – 2012-07-30 21:21:59

+0

这些神秘的物体是什么'foo'和'bar'? O.o @EdwardLaPiere:foo和bar只是示例变量。你可以将它们替换为你真正感兴趣比较的任何对象。 – 2012-07-30 21:25:37

+0

还有一个问题,我如何循环代码,所以我可以继续输入两个选项与出错获得一些未定义的东西? – 2012-07-30 21:28:42

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个空格。

0

您正在输入个人信息,当if语句正在等待个人信息(以大写字母I表示信息)。

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

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

代替:

if x == ("Personal Information"): 

那么任何情况下, “个人信息”, “个人信息”, “personal infoRmation”等将匹配并进入if语句。这个原因起作用的原因是,当它执行时,它会取x的值,并将其设为一个小写字符串,并将字符串“Personal information”设为一个小写字符串,所以现在无论原本是什么情况,它们比较时都是小写。

foo和bar是例子,编程中常见的编程术语。它只是任何变量的例子,x,y,z等都可以很容易地使用,但foo和bar仅仅是常用的变量。