3

私がやりたいことは、与えられた数に等しい 2 つの数をランダムに生成することです。それでも、これが望ましい答えを得ることができるようにするために、ランダムにしたいのです。それが問題だ。

a=(1,2,3,4,5,6,7,8,9,)
from random import choice
b=choice(a)
c=choice(b)
d= c+b
if d == 10:
#then run the rest of the program with the value's c and b in it
#probably something like sys.exit goes here but I am not sure to end \/
else:
# i have tryied a few things here but I am not sure what will loop it around*

(助けてくれてありがとう:D)

「right」というリストを作成したことを知っており、値 a と b をリストに追加しようとしているがまだ機能していないことを知っています。私はプログラムを「in for Trail in range(100)」で実行していることを知っているので、答えが得られます。しかし、値は新しいリストに正しく追加されていません。これが問題です。次に、リストの値 0 と 1 を読み取り、それらを使用します (学校ではあまりうまくいきませんでした) 。このビット秒ですが、です。

import sys
right=(0)
y=x+x
from trail in range(y)
a=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
from random import choice 
A=choice(a)
B=choice(a)
d=A/B
if d==1:
    right.append(A)
    right.append(B)
else:
    x.append(1)
4

3 に答える 3

3
 from random import choice

 a = range(1, 10)
 b = c = 0
 while b + c != 10:
     b = choice(a)
     c = choice(a)  # You meant choice(a) here, right?

しかし、これは同じことを達成します:

 b = choice(a)
 c = 10 - b

0 から 10 までの 10 進数の場合:

from random import uniform

b = uniform(0, 10)
c = 10 - b
于 2012-06-19T20:27:06.937 に答える
1

要点を見逃しているかもしれませんが、2 つの乱数を合計して別の数になるループを選択する必要はありません。randint と単純な減算がその仕事をします:

from random import randint

def random_sum(given_number):
    a = randint(1, given_number)
    return a, given_number - a
于 2012-06-19T20:29:06.473 に答える
0

これはあなたが説明したことを行いますが、他の2つの答えはおそらくあなたが望むことをします. だから私のやり方は不必要に遅いです。

goal = 10 #the number you're trying to add up to
sum = 0 
min = 1
max = 9
b = c = 0 # initialize outside your loop so you can access them afterward
while (sum != goal) 
    b = random.randint(min, max) 
    c = random.randint(min, max)
    sum = b+c

しかし、あなたが実際に提起した質問に答えるために、Pythonでは「続行」は条件付きブロックまたはループの1回の反復から飛び出し、「ブレーク」はループを完全に終了します。sys.exit() は python を終了するので、それはあなたが望むものではありません。

于 2012-06-19T20:38:58.093 に答える