2017-02-04 13 views
0

が私のコードです:私はこれを実行するとPythonのクエリ(宝くじコーディング方法)

import random 

    def Step_1(): 
     Start_Game = raw_input("Enter \'Start' to continue \n") 
     if Start_Game == 'start':        
      print "Let the Lottery begin" 
     else: 
      return Step_1() 
    #------------------------------------------------------------------- 
    def Step_2(): 
      random_list = [] 
      for i in range(10): 
       while len(random_list) < 6: 
        random_number = random.randint(1,59) 
        while random_number not in random_list: 
         random_list.append(random_number) 
         print random_list 
Step_1() 
Step_2() 

それは私に、以下の結果を与え、

Enter 'Start' to continue 
start 
Let the Lottery begin 
[56] 
[56, 20] 
[56, 20, 32] 
[56, 20, 32, 2] 
[56, 20, 32, 2, 23] 
[56, 20, 32, 2, 23, 30] 

しかし、最後に生成された結果を表示して前の5を破棄することはできますか?Step_2関数内で最後のビット "print"を変更する必要がありますが、何を追加する必要がありますか?

ありがとうございました。

答えて

0

1つのライナー:

random.sample(range(1, 59), 6) # genrates 6 unique random no's in the range 

OR格納するのにリストを使用して、既存のコードを修正するためにあなたのSTEP2のために、以前に生成されたランダムなしの

def Step_2(): 
    random_list=[] 
    for i in range(6): 
     random_number = random.randint(1,59) 
     while random_number in random_list: 
      random_number = random.randint(1,59) 
     print random_number 
     list.append(random_number) 
+0

ありがとうございました!これも細かく動作します!私はlist.append(random_number)の最後にタイプミスがあったと思う?私はそれをrandom_list.append(random_number)に戻しました。ありがとうMithilesh! –

0

()あなたは、おそらく使用したいと思うでしょう機能whileループは、実際にはわからないので、生成する必要がある乱数の数が6つの固有の数になるまで生成する必要があります。

def step2(): 
    # Declare an empty list to hold the random numbers 
    numbers = [] 
    # While we do not have 6 numbers in our list 
    while len(numbers) < 6: 
     # Generate a random number 
     rndnum = random.randint(1,59) 
     # If that random number is not yet in our list 
     if rndnum not in numbers: 
      # Append it to the list 
      numbers.append(rndnum) 
    return numbers 
+0

ありがとう!私はそれを "返信番号"から "印刷番号"に変更した最後とは別に、魅力のように機能しました。 100%確実に返品や印刷を使用することはありません。説明していただけますか? –

+0

関数によって戻り値が返されるため、eでさらに作業できます。 g。 'lottery_numbers = step2()'と 'print(lottery_numbers)'を実行できます。関数内の数値のみを出力する場合は、数値リストが関数のスコープに含まれているため、後で使用することはできません。 – Tristan

関連する問題