2016-06-22 4 views
0

私は本当にこの質問をする方法を知らなかった、と私はおそらく愚かな音。私が抱えていた問題に対する解決策を探していましたが、私が試したことはすべてうまくいかなかったのです。 私のコンピュータサイエンスクラスのプロジェクトに取り組んでいます。最後に、は名前、誕生日、都市、住所などのリストからIDをランダムに生成します。(サイドノート:私の先生は実際に教えていません私は何か;ノートを読んでノートからの定義で構成されたクイズをしました。何かを見つけられない時、彼は私たちに隣人に尋ねるように指示します。そして、これは私の最初の投稿です。間違っているし、私のコーディングスキルが吸う、私は事前にお詫び申し上げます。)とにかく、私は私の質問/問題に乗ります。あなたは男性または女性の身元を生成したい場合は、プログラムの開始時にPython:アイテムを使用した後にリストからアイテムをランダムに削除する方法はありますか?またはrandom.choiceの結果を変更する

、それが求められます。

def get_info(): 

global gender 
global name 
gender=input("Enter a gender of which you would like to randomly generate M=male F=female:") 
if gender==("F"): 
    name=fname 
elif gender==("M"): 
    name=mname 
else: 
    print("Please enter either an M or F.") 
    get_info() 

それはその名前の由来リストするかを決定するために使用する:

fname=random.choice(list(set(["girlynames","tina","caroline","etc"]))) 

または

mname=random.choice(list(set(["guynames","richard","earl","etc"]))) 

し、それには、名前、誕生日などの、ランダムIDを出力しますなど、このような:

Your new identity is: 
Nathaniel Ellis 
Your birthday is : 
September 5 1985 
Your address is : 
470 MacMurray Acres 

と私は、彼らが再びプログラムを使用したい場合は、ユーザの入力を要求するプログラムの主要部分、後に、機能を追加しました。それは最初の時間をしたような問題がある

def retry(): 

again=input("Would you like to generate another? Y/yes N/no: ") 
if again==('Y'): 
    get_info() 
    generate_identity() 
    retry() 

elif again==('N'): 
    print("Thanks for using the identity generator! Have a spectacular day") 
    quit() 

は、毎回のI入力「Y」、および性別は、それも異なる性別で、まったく同じ結果を持っているすべての結果は、最初のほかに同じです名。

Your new identity is: 
Ava Ellis 
Your birthday is : 
September 5 1985 
Your address is : 
470 MacMurray Acres 

私はそこに単純な解決策があるように感じますが、私がこのウェブサイトから(他の情報源と一緒に)読んで試したことはすべてうまくいっていません。 アイテムを使用した後でアイテムをリストから削除する方法はありますか?あるいは結果が毎回変わるようにしますか?あるいは擬似乱数だけなので、Pythonをリセットするような方法さえありますか?私は今3日間これを悩まされている、それは次の月曜日までに私はここにいた。stackoverflow私は問題に気づいたので、解決策を見つけようとしている。ヘルプは非常に高く評価され、あなたは命の恩人になるでしょう! :)

+0

どのようにアドレスを生成していますか?あなたはコードのその部分を投稿するのを忘れました。 –

+0

@Burhanアドレスの場合、ハウスナンバー以外の名前ジェネレータと同じ概念を使用し、誕生日/年も使用します。それらのために、私はrandom.randintを持っています。 – goochygucci

答えて

1

ランダムな項目をpopのリストから削除することができます。

​​

これは、name_listからランダムな項目を選択し、それを除去し、nameに割り当て。

あなたのランダムな選択はうまくいきますが、名前の値を正しく再割り当てしていないようです。しかし、確かに知るためにコードをもっと投稿する必要があります。 retryを実行した後、fname/mnameを再割り当てし、その名前で名前を再割り当てすることを再確認します。

+0

まず、私はこの解決策を理解するのに苦労していましたが、結局私はそれを考え出しました。これはまさに私が探していたものです。私はとても安心して、すばらしい返事をしました!大変ありがとうございました – goochygucci

+0

素晴らしいです!お役に立てて嬉しいです。 – rurp

+0

:)私はこれを追加するのを忘れましたが、random.randint番号でそれを行う方法はありますか?私は生年を生成するためにこのbdayear = random.randint(1970,1999)を持っています。私は上に示したものと同じものを使うことはできませんが、これにも簡単な解決策がありますか? – goochygucci

-1

プログラムを起動するたびにseedを乱数に設定すると、random.choiceのオプションは毎回異なるでしょうか?

import random 
seed = random.randint(0,9999) 
random.seed(seed) 
関連する問題