質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

876閲覧

-1から1までの乱数を発生させたいが、0より大きくなる。

greentea11

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/15 08:19

編集2021/11/15 08:43

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Python

1class mobuser: 2 def __init__(self,ID): 3 self.ID = ID 4 self.shokilike=random.uniform(-1,1) #初期好感度 5 self.accept=0 6#エージェントの作成 7Mobuser=[] 8for i in range(N): 9 Mobuser.append(mobuser(i)) 10id_list = [] 11for i in Mobuser: 12 id_list.append(i.ID) 13for i in Mobuser: 14 if i.shokilike>0: 15 i.accept==1 16 print("初期好感度",i.shokilike)

試したこと

random uniformが間違っているのかを見直したり、何度も書き直したりしました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2021/11/15 08:29 編集

不要な箇所は削除しましょう。 コードは読めるようにしましょう。(末尾行のあとに```を置いて閉じてください) Mobuser を作成している箇所を省かないでください。 実際に起きたことを書きましょう。 https://teratail.com/help/question-tips#questionTips3-4-1
quickquip

2021/11/15 08:32 編集

実際に起きているのは「accept属性が0のままで1にならない」ではないですか?
jbpb0

2021/11/15 08:36

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください または、 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif を見て、そのようにしてみてください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
greentea11

2021/11/15 08:45

ご指摘ありがとうございました。 コードを編集しました。 「accept属性が0のままで1にならない」こともわからないことの1つです。
jbpb0

2021/11/15 08:56

「i.shokilike>0」の場合だけ「print("初期好感度",i.shokilike)」してるのだから、0より大きい場合しか表示されませんよ
jbpb0

2021/11/15 08:57 編集

「i.accept==1」 の行の意図が、もし代入したいのなら、「=」は一個だけ
guest

回答3

0

ベストアンサー

jbpb0さん、melianさんが指摘されている内容なので恐縮なのですが、ご質問者様は理解されていないようにお見受けいたしますので、僭越ながら。

乱数の発生は、正常になされているかと思われます。

問題は、表示処理です。
現在のコードで、"初期好感度"が表示される条件が、shokilike > 0です。
0以下の値が乱数で発生した場合、表示されません。

乱数の発生結果を検証をしたいのなら、無条件に表示するように修正してください。

投稿2021/11/15 13:05

YT0014

総合スコア1708

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

現時点で質問文にあるコードのインデントの深さが判らないのですが、もしかして以下の様になっていませんか?

python

1for i in Mobuser: 2 if i.shokilike>0: 3 i.accept==1 4 print("初期好感度",i.shokilike)

投稿2021/11/15 08:27

melian

総合スコア19874

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

greentea11

2021/11/15 08:38

ありがとうございます。 そのようになっています。 質問文のコードのインデントを間違えてしまい、申し訳ありません。
guest

0

正も負も出ています。

python

1>>> import random 2>>> random.uniform(-1,1) 3-0.516513594413395 4>>> random.uniform(-1,1) 50.07756324198122999

投稿2021/11/15 08:23

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

greentea11

2021/11/15 08:59

ありがとうございます。 別のコードでは正も負も出るのですが、このコードではなぜか正だけしか出ないので質問しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問