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すると結果が出力され、エラーは発生しません。

4

3 に答える 3

4

個人情報またはジャーナルのいずれかを入力したとき

まあ、そうだろう。それらのいずれも期待していません。あなたのケースは間違っています。

大文字と小文字を区別しない比較を実行するには、最初に両方を同じ大文字と小文字に変換します。

if foo.lower() == bar.lower():
于 2012-07-30T21:17:40.050 に答える
0

個人情報を入力しているのは、if ステートメントが個人情報を予期している場合です (情報の場合は大文字の I を使用)。

あなたができること(上記のイグナシオが回避していること)は次のとおりです。

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

それ以外の:

if x == ("Personal Information"):

次に、「個人情報」、「個人情報」、「個人情報」などの大文字と小文字のいずれも一致し、if ステートメントに入ります。これが機能する理由は、これが実行されると、x の値を取得して小文字の文字列にし、文字列「個人情報」を小文字の文字列にするためです。比較すると、両方とも小文字になります。

foo と bar は例であり、プログラミングにおける一般的なプログラミング命名法です。これは、x、y、z などの任意の変数の例にすぎませんが、foo と bar は参照する一般的な変数にすぎません。

于 2012-07-31T06:03:27.290 に答える
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つの空白を使用しています。

于 2012-07-30T21:22:55.663 に答える