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

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

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

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

連結リスト

連結リストとは、データ構造のひとつであるリストの中で、要素が前後の要素の情報を持つことで、要素が連結(リンク)しているリストの事を呼びます。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

Q&A

解決済

2回答

579閲覧

Python モジュールが確認できない。

daiki__1019

総合スコア17

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

連結リスト

連結リストとは、データ構造のひとつであるリストの中で、要素が前後の要素の情報を持つことで、要素が連結(リンク)しているリストの事を呼びます。

Python

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

pip

pipとは、Pythonを用いて書かれているパッケージソフトのインストールや管理を行うためのパッケージマネジメントシステムです。pipを使う主なメリットは、コマンドラインインターフェースにて容易にPythonパッケージソフトをインストール可能だという点です。

0グッド

0クリップ

投稿2020/07/09 07:49

編集2020/07/09 08:32

Python

1# -*- coding: utf-8 -*- 2import sys, os 3sys.path.append('../') # 一つ上のフォルダから探せるようにする 4from my.Cons import Cons # 連結リストを使う 5 6def fun1(dat): # 手続き型(繰り返し構造) 7 a = [] 8 for x in dat: 9 p = x / 7 * 100 # 100点換算 10 if p >= 50: # 50点以上を抽出 11 a.append(str(round(p, 1))) # 四捨五入と文字列化 12 a = ';'.join(a) # ;で結合 13 return a 14 15def fun2(dat): # 手続き型(内包表記) 16 a = [x / 7 * 100 for x in dat] # 100点換算 17 a = [x for x in a if x >= 50] # 50点以上を抽出 18 a = [str(round(x, 1)) for x in a] # 四捨五入と文字列化 19 a = ';'.join(a) # ;で結合 20 return a 21 22def fun3(dat): # 関数型(関数呼び出しの入れ子) 23 return ';'.join( # ;で結合 24 map(lambda x: str(round(x, 1)), # 四捨五入と文字列化 25 filter(lambda x: x >= 50, # 50点以上を抽出 26 map(lambda x: x / 7 * 100, dat)))) # 100点換算 27 28def fun4(dat): # 関数型+オブジェクト指向(メソッドチェーン) 29 return (dat.map(lambda x: x / 7 * 100) # 100点換算 30 .filter(lambda x: x >= 50) # 50点以上を抽出 31 .map(lambda x: str(round(x, 1))) # 四捨五入と文字列化 32 .join(";")) # ;で結合 33 34if __name__ == '__main__': 35 d = [5, 3, 6, 7, 2] # 正解数のデータ(全7問) 36 print(fun1(d)) 37 print(fun2(d)) 38 print(fun3(d)) 39 d = Cons.of(5, 3, 6, 7, 2) # 連結リスト(Consリスト)で用意 40 print(fun4(d))

エラー文

File "Functional.py", line 4, in <module>

from my.Cons import Cons # 連結リストを使う

ImportError: No module named my.Cons

サンプルコードが記載されている教科書には

Consモジュールで定義さレた連結リスト→Consリスト(本書特有の呼び方)

と記載されていてます。

ファイル構成
イメージ説明

sys.path.append('../')

ここのパスを変えればいいのではないかと思っているのですがなかなかうまくいかず苦戦しております。

ご教授いただけたらと思います。

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

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

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

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

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

guest

回答2

0

Python3 自作モジュールのインポートにハマる

などが参考となるのでは。

まずは、上の階層ではなくて同じフォルダに入れてはいかがでしょうか。

投稿2020/07/09 08:50

aokikenichi

総合スコア2218

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

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

0

ベストアンサー

console

1sys.path.append('../')

上記の表現は python コマンドを実行したディレクトリーからの path として扱われます
おそらく第1章ディレクトリー内に Functional.py があると思いますが、
python コマンドも第1章ディレクトリー内で実行しましょう:

console

1$ cd 第1章 2$ python Functional.py 371.4;85.7;100.0 471.4;85.7;100.0 571.4;85.7;100.0 6Traceback (most recent call last): 7 File "Functional.py", line 39, in <module> 8 d = Cons.of(5, 3, 6, 7, 2) # 連結リスト(Consリスト)で用意 9AttributeError: type object 'Cons' has no attribute 'of'

上記は Functional.py の実装がこちらでわからなかったのでエラーが発生していますが、
少なくとも 4 行目ではエラーが出なくなっています

追記

利用している Python のバージョンが 2.* の場合は、
my ディレクトリー内に __init__.py というファイルを作成する必要があります
(ファイルの中身は空で構いません)

console

1Python_勉強 2+---my 3| +---__init__.py 4| +---Cons.py 5| 6+---第1章 7 +---Functional.py

現在利用している Python のバージョンは次のコマンドで確認できます:

console

1$ python --version 2Python 3.8.3

上記の例は Python バージョンが 3.* ですので、__init__.py は必要ではありません

投稿2020/07/09 08:45

編集2020/07/09 16:17
y_shinoda

総合スコア3272

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

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

daiki__1019

2020/07/09 09:46 編集

@y_shinoda 回答ありがとうございます。 理解が追いつかなかったので追加して質問したいと思います。 現状私のファイル構成は Python_勉強    |— my    |  |—Cons.py    |    |ー 第1章        |ーFunctional.py となっております。 『python コマンドも第1章ディレクトリー内で実行しましょう:』 この表現は、sys.path.append('../第1回/')とプログラムを変更するという事でしょうか? 理解力が乏しくてもうしわけありません。
y_shinoda

2020/07/09 09:55

どのように Functional.py を実行していますか? コマンドラインではないところから実行していますか?
daiki__1019

2020/07/09 14:08

VScodeのターミナル から実行しております。
y_shinoda

2020/07/09 14:57

ターミナルからコマンドで実行するのであれば コードを変更する必要はありません ターミナルは Mac の Finder や Windows のエクスプローラーのように 今、見ているディレクトリーがあります ターミナルで次のコマンドを実行すると、現在見ているディレクトリーがわかります: $ pwd 第1章ディレクトリーに移動して python コマンドを実行すれば、 プログラムを変更せずにコードを実行できます: $ cd 第1章 $ python Functional.py
daiki__1019

2020/07/09 15:04

指示通りに実行しても質問内容と同じエラー文が返ってきてしまいます。
y_shinoda

2020/07/09 16:18

回答を追記しました、 Python のバージョンが 2.* の場合は my ディレクトリーの中に__init__.py というファイルが必要です ご確認をおねがいします
daiki__1019

2020/07/09 16:39

バージョン確認したところ、 Python 2.7.16 でした! 実行時に’’python3 Fanctinal.py’’で求めていた実行結果になりました! ありがとうございます!!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問