2017-09-14 21 views
-1
import CSV 

file_name = input("PLease type in a file name including the extension e.g. .docx or .txt\nelse:") 
start = 0 
error = 0 
with open(file_name, newline='') as csvfile: 
    reader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    answer = input("Do you want all information to be displayed or only part of it?(A/P)") 
    answer = answer.upper() 
    print(answer) 

    if answer == "A" or "a": 
     All_Info() 
    elif answer == "P" or "p": 
     Part_Info() 
    else: 
     if error < 2: 
      error = error + 1 
      answer = input("Please only type in A or P") 

私はこのプログラムを実行し、csvファイル名を入力した後にpを押すと、elifを無視してif文に直接進みます。if/elif/elseが動作しないのはなぜですか?

+0

が押されていても、それは最初のif文を使用しているので、あなたの最初のifは、それがゼロであるため、「」真と評価さ(If answer equals "A" is true) or ("a" is true)を言ってとされる電子、あなたは ''答え== "A" 'を実行するだけでOKです... –

+0

@ Jean-FrançoisFabreこれに対して偽のハンマーはありませんか? –

+0

ええ、質問はpytho 3.xのみとタグ付けされました。私はPythonに編集しました。私はpython 3.xタグのためのdupehammerを持っていたらいいのに! –

答えて

-2

elif answer == "P" or answer == "p"である必要があります。あなたの条件にはanswer ==の2つが必要です。

/あなたが大文字に変換しているので、「P」

+0

私はあなたの提案を試しましたが、このエラーメッセージが表示され続けますトレースバック(最新の最後の呼び出し): ファイルAttributeError: 'builtin_function_or_method'オブジェクトには属性 'upper'がありません。 "F:/ Yr 11/CT/CSV/asdf.py"、行9、 (answer.upper()== "A" –

関連する問題