質問するログイン新規登録
Python

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

Q&A

解決済

1回答

1207閲覧

pythonのrandomモジュールでエラーが発生します

pro-grammar

総合スコア1

Python

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

0グッド

0クリップ

投稿2024/04/28 02:59

編集2024/04/28 05:42

0

0

実現したいこと

0~100までの乱数を生成したい

発生している問題・分からないこと

import random

print(random.randint(0,100))

このコードを実行しているときに以下のエラーが発生しました。
ファイル名はランダム.pyです。

エラーメッセージ

error

1AttributeError: module 'random' has no attribute 'randint'

該当のソースコード

python

1import random 2 3print(random.randint(0,100))

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

もともとrandom.pyというファイル名で作っていて、AttributeError: partially initialized module 'random' has no attribute 'randint' (most likely due to a circular import)というエラーが発生していました。それをランダム.pyに変えましたが別のエラーが発生しました。randintとちゃんと書いているのでタイプミスではないと思います。

補足

(追記)pythonを実行している環境はWindows11 intel core i7 で、Visual Studio Codeを使っています。pythonのバージョンはv2024.4.1です。

(追記2)PC上にはrandom.pyが残っていますが、それではないファイル上でコードを実行しています。PC上にファイルがあるとそちらがインポートされてしまうのでしょうか?

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

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

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

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

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

hiroki-o

2024/04/28 03:39

ランダム.pyと同じフォルダーに、random.pyが残っていませんか?
pro-grammar

2024/04/28 04:06

コメントありがとうございます。 そうかもしれないと思い、別の新しいファイル(名前はランダム2.py)にコピペしてみましたが同じエラーが出ました
meg_

2024/04/28 04:27

どういう環境でPythonを実行していますか?(質問本文に追記してください) コードに問題はないはずなので環境の問題かと思われます。
quickquip

2024/04/28 04:42 編集

random.py か random.pyc が残っていませんか?
melian

2024/04/28 05:06

print(random.__file__) を追加して実行してみて下さい。(実際にインポートした random パッケージのパスを確認できます) import random print(random.__file__) print(random.randint(0,100))
pro-grammar

2024/04/28 05:36 編集

コメントありがとうございます。このコードを実行してみましたが、下のように、同じエラーが出てしまいます。 line 4, in <module> print(random.randint(0,100)) ^^^^^^^^^^^^^^ AttributeError: module 'random' has no attribute 'randint'
melian

2024/04/28 05:49

そのエラーメッセージの直前にパスが表示されているかと思います。 > (追記2)PC上にはrandom.pyが残っていますが、 その random.py を削除しましょう。
pro-grammar

2024/04/28 05:58 編集

3人の方がコメントをくださっていた、random.pyが残っているのではないか(それを削除しなければいけない)というご指摘について、PC上に残っていたのを消したら解決しました!てっきり別のファイルで実行すれば良いものだと勘違いしておりました、、、。 より早く回答していただいた、hiroki-oさんをベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
meg_

2024/04/28 06:11

> PC上にはrandom.pyが残っていますが、それではないファイル上でコードを実行しています。 パスが通っている場所にあれば問題が発生する場合があります。実際にはファイルが読み込まれる順番に依存するかと思います。
pro-grammar

2024/04/28 08:40

そうなんですね!これからはファイル名にも注意します!ありがとうございました。
guest

回答1

0

ベストアンサー

Windows 11、Python 3.12.2で確認しました。
実行したいソースと同じフォルダーにrandom.pyが存在する場合、import randomと書いても、標準のrandomモジュールではなくrandom.pyが呼ばれます。
ソースファイルの命名には気をつけましょう。

投稿2024/04/28 06:07

hiroki-o

総合スコア1565

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

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

pro-grammar

2024/04/28 08:41

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問