0

呼び出すたびに常に変化する Random という変数を作成したいと考えています。

このコードが必要です:

Random = randint(0, 10)
print Random
print Random
print Random

私に次のようなものを与えないでください:

6
6
6

むしろ次のようなものです:

3
6
1

毎回使用する前に Random を再割り当てする必要はありません。また、いくつかの異なる関数内で Random を使用しました。では、毎回ランダム変数として再割り当てすることなく、コードのどこでも使用できるようにするにはどうすればよいでしょうか?

これがばかげた質問である場合は申し訳ありませんが、私はこれに非常に慣れていないため、自分が何をしているのかわかりません。説明は簡潔にしてください。

編集:ここにいくつかのコードがあります:

def something1(Random, useless, whatever)

etc...

def something2(Random, useless, whatever)

etc...

...

main():

   for index in range(800):

     Random = randint(1, 10)

     something1(Random, useless, whatever)


Random = randing(1, 10)


something2(Random, useless, whatever)

そしてこれがしばらく続きます。

4

6 に答える 6

1

あなたの言うことが本当にあなたが望むものである場合 (つまり、使用されるたびにランダムな値を与える変数)、実際には変数は必要ありません。Randomのすべてのインスタンスをに置き換えるだけrandint(0, 10)です。または、独自の関数を作成することもできます。

def rand10():
    return randint(0, 10)

そして、変数rand10()を使用するたびに呼び出すだけです。Random

于 2012-10-14T02:07:00.780 に答える
0

Really-Bad-Ideasの土地では、ほとんどやりたいことができますが...ここでは本当に悪いアイデアを提案しているので、実際にはコードを書きませんが、その方法を説明します。それを実行し、必要に応じて、それを理解することができます...

  1. 新しいモジュールを作成し、それを呼び出しましょうUtil
  2. でクラスを作成しUtilます。そのクラスを呼び出しますCrazy
  3. クラスで、と呼ばれるプロパティUtil.Crazyを作成します。このプロパティのゲッターはランダムな値を返します(禁止されている境界を使用して)Random
  4. モジュールレベルでUtil.Crazy呼び出されたインスタンスを作成しますC
  5. C.Randomこれで、新しい値が必要なときにいつでも綴ることができます

私はそれについてあまり考えませんでしたが、それを取り除き、C.Randomそれを呼び出すだけの明白な方法は見当たりませんでした(にRandom割り当てる場合、それはバインディングではなく値に固執するだけです)。本当に恐ろしいことがあると思います。あるいは、生の記述子プロトコルを使用して、やりたいことを実行できるかもしれません。RandomCrazy().Randomglobals()

于 2012-10-14T02:20:15.970 に答える
0

Random は、randint() によって生成された値を含む単なる整数型です。これは整数型であるため、再割り当てしない限り、呼び出しごとに値を変更することはできません。

できることは、印刷するように指示されたときに別の値を返すようにクラスを定義することです。

from random import randint

class Random:
   def __str__(self):
      return str(randint(1,10))

random = Random()
print(random)   # prints a value
print(random)   # could print a different value
print(random)   # could print a different value
于 2012-10-14T02:14:47.877 に答える
-1
import random
def numbergeneration():
    number = (random.randrange(0,101))
    print(number)
    return number

私はこれがあなたが必要としているものだと信じています。

于 2021-01-16T13:19:16.593 に答える