

最近、プログラミング の勉強を始めたものです。  
本を購入して学習を進めているのですが途中に出てきた問題につまづいています。

問題内容は  
変数が10未満だったらメッセージを出力しよう。10以上だったら別のメッセージを出力しよう。です。

凄く簡単なのだとは思いますが自分にはわからないので、是非教えていただきたいです。  
よろしくお願い致します。


CC BY-SA 4.0
2018-06-07T13:21:03.353
44598
2018-06-10T00:00:25.403
2018-06-07T17:24:56.867
19110
28822
question
python python3
条件に基づいて異なるメッセージを出力したい


最も単純な実装

[code]

    # x_str にユーザーが入力した文字列を格納します。
    x_str = input("数値を入力してください:")
    
    # 文字列を整数に変換して x に代入します
    x = int(x_str)
    
    # if 文で分岐します。xが10未満のとき「x < 10」はTrueとなります。それ以外の場合はFalseとなります。
    if x < 10:
        # Trueの場合はここのブロックが実行されます。
        print("10未満です")
    else:
        # Falseの場合はここのブロックが実行されます。
        print("10以上です")
    
[/code]

条件演算子を使うとifの部分を一行で書けます。

[code]

    print("10未満です" if x < 10 else "10以上です")
    
[/code]

変数が0以上の整数に限定される場合は、真となる値をすべて有する集合を作って評価することもできます。

[code]

    # correct_listには0から9までの整数が入ります。
    correct_list = list(range(10))
    # x が correct_list に含まれているなら...
    print("10未満です" if x in correct_list else "10以上です")
    
[/code]

上では集合としてlistを使っていますが、含まれていることを判定する際にリストの先頭から順に調べてしまってO(n)の時間がかかるので、下のように定数時間O(1)で検索ができるsetを使ったほうがいいでしょう。setは、他の言語ではhashset、C++ではunordered_setなどと呼ばれるものです。

[code]

    # correct_setには0から9までの整数が入ります。
    correct_set = set(range(10))
    # x が correct_set に含まれているなら...
    print("10未満です" if x in correct_set else "10以上です")
    
[/code]

ぱっと思いつく回答はこんなところです。


CC BY-SA 4.0
2018-06-10T00:00:25.403
44652
2018-06-10T00:00:25.403
28818
44598
answer