2017-07-17 6 views
0

私はPythonでコーディングするのが初めてです。私は年齢を入力すると、一連のテキストが印刷されるように自分のコードを作成しようとしています。しかし、私のコードは、私が行ごとに行を追う場合にのみ動作します。たとえば、2000歳以上の年齢を入力するとすぐに何も起こりません。私は Python - Basic Coding

2000を超える
print('Please input name') 
if input() == 'Alice': 
    print('Hi, Alice.Please input age') 

if int(input()) < 12: 
    print('You are not Alice, kiddo.') 
elif int(input()) > 2000: 
    print('Unlike you, Alice is not an undead, immortal vampire.') 
elif int(input()) == 100: 
    print('You are not Alice, grannie.') 
elif 12 < int(input()) < 99: 
    print('You are Alice!.') 
+6

すると、あなたの答えを得た場合、それを閉じて、入力を毎回繰り返して変数に代入し、変数 – PRMoureu

+0

を比較しません。 – cSharma

答えて

1

整数であなたが年齢を入力するようユーザーに求めているifあなたの中に別のブランチに行くたびに、その後、12より小さい整数最初に入力する必要があります!

age = int(input()) 
if age < 12: 
    print('You are not Alice, kiddo.') 
elif age > 2000: 
    print('Unlike you, Alice is not an undead, immortal vampire.') 
elif age == 100: 
    print('You are not Alice, grannie.') 
elif 12 < age < 99: 
    print('You are Alice!.') 
1
print('Please input name') 
if input() == 'Alice': 
    print('Hi, Alice.Please input age') 

age = int(input()) # take input and assign it on a variable 

if age < 12: 
    print('You are not Alice, kiddo.') 
elif age > 2000: 
    print('Unlike you, Alice is not an undead, immortal vampire.') 
elif age == 100: 
    print('You are not Alice, grannie.') 
elif 12 < age < 99: 
    print('You are Alice!.') 
1

input()が続くたびに呼び出されます。代わりに次の手順を実行します。だからifelifの複数のinput()は必要ありません。

age = int(input())input()の結果を格納し、代わりifelif部分でageを使用します。

3

ここで私はあなたの理解の目的のためのコードを書いた。新しい変数を取るので、input()メソッドを何度も繰り返す必要はありません。また、年齢確認コードは第1の条件の内部にあり、第1の条件が満たされると実行されます。それは代わりに、それぞれの時間を尋ねると、1時間を尋ねると、いくつかの条件に該当するかどうかを確認しようとするため

print('Please input name') 
var = input() 
if var == 'Alice': 
    print('Hi, Alice.Please input age') 
    var = input() 
    try: 
     if int(var) < 12: 
      print('You are not Alice, kiddo.') 
     elif int(var) > 2000: 
      print('Unlike you, Alice is not an undead, immortal vampire.') 
     elif int(var) == 100: 
      print('You are not Alice, grannie.') 
     elif 12 < int(var) < 99: 
      print('You are Alice!.') 
    except Exception as ex: 
     print('Invalid Data: Error: ' + ex) 
else: 
    print ("Invalid Name") 
+2

私はOPが 'print'関数に基づいてPython 3を使用していると推測できます。したがって、 'raw_input'は利用できず、' input'は実際には正しいと思われます。 – SethMMorton

+0

ああ、P3に関連するクエリの上にあるが、ロジックの定義が正しいので、raw_input()の代わりにinput()メソッドを使用し、残りのすべてが同じである。 – cSharma

+0

私が初心者で、あなたの答えを見て、それを自分のコードにコピー/ペーストして、何が起こっているのかをよりよく理解するために実行すると決めたら、 'print'を括弧なしで 'SyntaxError' 'raw_input'に' NameError'があります。私はこの答えを見たよりもずっと混乱してしまいます。答えを現状のままにしておき、コメント内で何を修正する必要があるのか​​を言い表すのではなく、正しい答えを編集する必要があります。 – SethMMorton

3
var = input('Please input name ') 
if var == 'Alice': 
    var = int(input('Hi, Alice.Please input age ')) 
    if var < 12: 
     print('You are not Alice, kiddo.') 
    elif var > 2000: 
     print('Unlike you, Alice is not an undead, immortal vampire.') 
    elif var == 100: 
     print('You are not Alice, grannie.') 
    elif 12 < var < 99: 
     print('You are Alice!.') 
else: 
    print ("Invalid Name") 

このコードは動作します。

1

input()関数は文字列を返します。

関数は次いで、入力から行を読み込む(改行ストリッピング)文字列に変換し、戻るその:the docs(強調鉱山)を引用。だから、

あなたがinput()を呼び出すときに、各ifに、あなたは新しい文字列を入力する必要があります。したがって、まず12未満の整数を入力する必要があります。

この問題を解決するには、元の入力を変数に格納する必要があります。さて、ドキュメントの通り、input()は文字列を返します。

if int(age) < 12: 

を文字列として変数を格納:だから、あなたが行うことによって、それぞれの場合に(int()を使用して)整数にキャストすることができます。

けれども、あなたは文字列として年齢を維持するための具体的な理由を持っていない場合を除き、私は最初の場所で変数に年齢を格納しながら、文字列を変換するために、あなたをお勧めします:

age = int (input()) 

この場合、ageはintを持ちます。

0

うまくいけば、これはあなたが探しているです:

while True: 
name = input("Please ENTER your name: ") 
if name == "Alice": 
    print("Hi Alice!") 
    break 
print("Sorry, your name isn't correct. Please re-enter.") 

age = False 
while age != True: 
     age = int(input("Please ENTER your age: ") 
     age = True 
     if age < 12: 
      print("You're not Alice, kiddo.") 
      age = False 
     elif age > 2000: 
      print("Unlike you, Alice is not an undead, immortal vampire.") 
      age = False 
     elif age == 100: 
      print("You're not Alice, Granny!") 
      age = False 
     else: 
      print("You are Alice!") 
      age = True