2016-10-12 8 views
3

これは私が見つけたいくつかのものに近い質問ですが、彼らは私を助けませんので、今回私と私の目的を具体的に求めています。INPUT(python)から範囲内の乱数を生成

私は、範囲内の最大値と最小値をユーザに求め、その範囲内で10個の乱数を生成するはずのボットをコーディングしています。検証するとき、私はrandomiの両方が未使用の変数であると言います。私は本当に理由を知りません。私はrandom.radintが組み込まれた関数であると考えられていたと信じていましたが、限り、iが本当に何を信じるべきか分からないことが懸念されています。これは私が今までに得たものです。

def RandomNumbers(): 
    """ 
    Asking the user for a min and max, then printing ten random numbers between min and max. 
    """ 
    print("Give me two numbers, a min and a max") 
    a = input("Select min. ") 
    b = input("Select max. ") 


    for i in range(10): 
     number = random.randint(a, b) 
    print(str(number)+ str(","), end="") 

私は自分の仕事を完了するために得ることができるすべてのアドバイスに非常に満足しています。前もって感謝します!

+0

"検証中"とはどういう意味ですか? 「i」は使用されていませんが、それは問題ありません。繰り返しのためだけにfor-loopを使用し、ループ変数を必要としない場合は、 '_'を行うのが一般的です。あなたのコードで見られる唯一の問題は、最後の 'print'文がforループ内にあることです。 –

+0

Python 3を実行しているなら' a = int(input( "Select min。")) ' Python 2では 'a = int(raw_input(" Select min。 "))'を使います。 – Matthias

答えて

2

あなたの本来の機能に言及する価値の点のカップル:

  • randomモジュールは内蔵されていないため、明示的にインポートする必要があります。
  • inputは常に文字列を返すので、あなたは確かにあなたのforループ内で使用されていないrandom.randint
  • iに渡す前に、整数に変換する必要があります。 _に置き換えることもできます(実際には、変数そのものではなく、印刷などの副作用のためにループします)。
  • 関数名に関する文体サイドノートの詳細:PEP8(Pythonのスタイルガイドは)言葉ではなくキャメルケース(RandomNumberrandom_number

を分離するために、アンダースコアとの組み合わせで小文字の使用を奨励ここで働いています例:

import random 

def random_numbers(): 
    """ 
    Asking the user for a min and max, then printing ten random numbers between min and max. 
    """ 
    print("Give me two numbers, a min and a max") 
    a = int(input("Select min. ")) 
    b = int(input("Select max. ")) 

    numbers = [random.randint(a, b) for i in range(10)] 
    print(','.join(str(n) for n in numbers)) 

random_numbers() 
+0

あなたの完全な例をありがとうございました。最後の "random_numbers()"は何をしますか?それは私の機能を働かせる私のメインの中にすべきエルフのように思える。 – MrBlubbintosh

+0

また、 "import random"は "def random_numbers():"の前に立つ必要がありますか?私はそれが前に私の関数の最後の行であることを意味する前に、インポートランダムをhavngので、複数の関数があります。 – MrBlubbintosh

+0

最後の行は単に 'random_numbers'の有効な呼び出しです(安全に削除できます)。ベストプラクティスは、インポートステートメントをファイルの先頭に配置することを推奨します。しかし、あなたはあなたの関数の中にそれらを置くこともできます(もちろん、同じインデントを使用して)。 – Matt

6

No. random.randintは組み込み関数ではありません。あなたはインポートrandomモジュールを使用する必要があります。別のノートで

iが明らかにループ内で使用されていなかった、あなたは従来i

import random 


numbers = [] 
for _ in range(10): 
    numbers.append(random.randint(a, b)) 

の代わりにアンダースコア_を使用しますので、あなたは私がすべて保存するために、リストを使用しているにもわかります各反復からの値そのようにして、以前の反復の値を捨てることはありません。あなたは既にリストに慣れていない場合は

、あなたはドキュメントをチェックアウトすることができます。

Data structures

リスト:

リストの項目は任意のPythonオブジェクトであります。リストは、リストから項目を印刷するには、最後のノートで 角括弧内の式のコンマ区切りのリストを置く


によって形成されている、あなたはstr.joinメソッドを使用できますが、いない項目の後にリスト内の文字列に整数から変換されています:

output = ', '.join([str(num) for num in numbers]) 
print(output) 
+1

'numbers.append(..)'を意味しましたか? –

+0

@Cajuu 'ありがとうございました –

+0

最後の行にインデントの誤りがある可能性があることに注意してください。これは、一度だけ印刷したいので、数字を捨てることを意味します。 – jadsq

関連する問題