Python
- python: 例外classの書き方
pythonで独自の例外classの書き方をチュートリアルで見ていて気づいたことがあります 次のような記載をみつけました class wexal(Exception): pass 質問の都合上次のように書き換えます class abcde(Exception): 質問: 1)独自の例外クラスの書き方は、(Exception)と記載すれば、abcdeのように名称はなんでも指定できると考えてよいでしょうか 2) Guido van Rossum さん著書のチュートリアル本(ISBN-13 : 978-4873119359)をみていると、class の記載の後の名称の最初の文字は大文字になっているものが多くあります 上記で abcdeの部分は、Abcdeでなくても作法上問題ないのでしょうか。つまり(Exception)を記述するときは、最初の文字を大文字にする必要は作法上はないのでしょうか 他の例外の処理については、今回は求めていません。独自例外classの書き方についてのみ質問しています。 【回答上のご注意】 回答は、解答(答え)を求めています わたしはプログラマーではないので、昭和的な「自分で考えろ」的なものは求めていません わからなければ答えない自由もあなたにはあります 不明点があれば説明いたします
- Python 間違いを指摘して
import pandas as pd import folium df=pd.read_csv("バス停.csv") df=df[["路線番号","緯度","経度"]].values m=folium.Map(location=[35.942957,136.198863].zoom_start=16) for route in range(17): df2=df[["路線番号"]==route+1] df3=df2[["緯度","経度"]].values folium.PolyLine(df3).add_to(m) m.save("sabae.html") エラー IndexError: only integers, slices, ellipsis, numpy.newaxis and integer or boolian array are valid indices
- 締切済み
- Python
- NKM_Chitose
- 回答数1
- Python 間違いを指摘してください
以下のPythonコードの間違いを指摘してください。 import pandas as pd import folium df=pd.read_csv("店舗.csv") store=df[["緯度","経度"]].values m=folium.Map(location=[35.942957,136.198863],zoom_start=16) for data in store: (インデント)folium.PolyLine([data[0],data[1]]).add_to(m) m.save("savae.html")
- 締切済み
- Python
- NKM_Chitose
- 回答数1
- 作成するデスクトップアプリのzip化がしたい。
まだ作成途中ですがこれをデスクトップアプリにしてzip化をしたいと思っています。 import tkinter root = tkinter.Tk() root.mainloop() しかし、pip install pyinstallerでインストールしようとしてもこのようなエラーが出てしまいます。どうすればいいですか。 PS C:\作業用Python> & C:/Users/user/anaconda3/python.exe c:/作業用Python/HelloWorld/install.py File "c:\作業用Python\HelloWorld\install.py", line 1 pip install pyinstaller ^^^^^^^ SyntaxError: invalid syntax PS C:\作業用Python>
- ベストアンサー
- Python
- terabayahi1988
- 回答数4
- pythonZeroDivisionError例外
下記はAIによる説明です 「第二引数」でexceptionとなるのはわかりますが、 「第一引数に対しては、ZeroDivisionErrorは送出されません」 とあります 質問: 1)exception ZeroDivisionError が第二引数のみに適用される理由(または背景) 2)出力が Error: division by zero となる理屈 を教えてください #Aiの説明 ZeroDivisionErrorは、除算や剰余演算の第二引数が0であった場合に送出されます。第一引数に対しては、ZeroDivisionErrorは送出されません。以下は、ZeroDivisionErrorの例です。 #code try: a = 5 b = 0 c = a / b except ZeroDivisionError as e: print(f"Error: {e}") #Error: division by zero 【回答上のご注意】 回答は、解答(答え)を求めています わたしはプログラマーではないので、昭和的な「自分で考えろ」的なものは求めていません わからなければ答えない自由もあなたにはあります 不明点があれば説明いたします
- pythonの8進数表記
print('\141')の141が8進数として解釈される理由がわかりません。0oついていないのに、なぜ10進数ではなく8進数になるのでしょうか?
- ベストアンサー
- Python
- subarist00
- 回答数2
- pythonのリスト内包?に用いるアルファベット
リスト内包かどうか確信が持てないでいますが、下記はどちらも動作します コード1のrow コード2のi は、何のアルファベットを用いても動作しますが、何と呼ばれるものでしょうか? 代数、変数、その他? チュートリアルでこの名称とふるまいについて説明した該当箇所がみつけられないので、質問いたしました #コード1 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] saburochu = [row[2] for row in matrix] print(saburochu) # [3, 6, 9] #コード2 matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] saburochu = [i[2] for i in matrix] print(saburochu) # [3, 6, 9] 【回答上のご注意】 回答は、解答(答え)を求めています わたしはプログラマーではないので、昭和的な「自分で考えろ」的なものは求めていません わからなければ答えない自由もあなたにはあります 不明点があれば説明いたします
- pythonの辞書型「ペア」のバリエーション
pythonの辞書型「ペア」のバリエーション pythonの辞書型は、わたしの集めた情報だと次のような書き方というか認識をしていました 「辞書型はキーと値のペアを要素とするデータの型」 :でペアをつくり、{}で記述をはさむ # 例 my_dict = {"key1": "ichigo", "key2": "apple", "key3": "orange"} print(my_dict["key1"]) # 出力 ichigo ところが次のコードは、keywords引数にあたるところに = で要素が入っています #---コード---------------- def shop(name, *arguments, **keywords): print("店名", name) for arg in arguments: print(arg) print("===おすすめ===") keys = sorted(keywords.keys()) for kw in keys: print(kw, ":", keywords[kw]) shop("らーめん八郎","11時開店","20時閉店",osusume1="醤油ラーメン", osusume2="チャーシュー麺",osusume3="わんたん麺") #---コード---------------- この記述が謎だったため、Bing AIに聞いたところ、これ(osusume1="醤油ラーメン"...)も辞書型とのことです 質問 {}で記述をはさんでいない、かつ、[]でキー指定もしていいない(print(my_dict["key1"]) のような) ですが、これはこれは正しいですか?(辞書型ですか?) これが辞書型なら、他にも「キーと値のペア」を書くバリエーションがあったらご教示ください
- python: def関数での記述arg=
python: def関数での()記述内にarg=を書く意味と働き pythonで、defで関数定義をする際、引数を並べるやり方は理解したのですが、arg = と記述する意味ができずにいます 図のAでは実行すると100を出力します 5行目 f(arg = i)の ”arg =” の文法というか、これがはたしている役割がよくわかりません ためしにBのように arg= を撤去して、引数をiたった1つにすると9行目でエラーになります ( f(i)とするとエラーにならない) Cがエラー出ない理由もわかります 質問: 1) Bにおいて、5行目で arg = の果たしている役割を教えてください 2) Bにおいて9行目でf()では関数を呼び出せていないのは、arg = の不在と関係あると想像できますが、そのロジックを教えてください 【回答上のご注意】 回答は、解答(答え)を求めています わたしはプログラマーではないので、昭和的な「自分で考えろ」的なものは求めていません わからなければ答えない自由もあなたにはあります 不明点があれば説明いたします
- for文内のelseに飛ぶ理由
pythonの次のようなコードがあり、 for文: for文: else: となったとき、いきなりelse内に飛ぶ挙動の説明をお願いします #--コード-- #UTF-8 for n in range(2, 5): for x in range(2, n): if n % x == 0: print('xは ' + str(x)) print('nは ' + str(n) + ' は割り切れる') break else: print(n,' は素数') continue break #---- WindowsのVS Codeで赤いブレークポイント(以下 BPn:nは行数)を画像のように置き、変数nとxの挙動をみていたところ、実行直後に n が 2 となり、BP4にに遷移するのは理解できます で、想定していたのは、5行目にxがあるので、 BP5 if n % x == 0: を試してからBP10へ飛ぶと予想してました しかし実際には、BP4→10と遷移しています この挙動で、5行目でストップしなかった理由を教えてください 【回答上のご注意】 回答は、解答(答え)を求めています わたしはプログラマーではないので、昭和的な「自分で考えろ」的なものは求めていません わからなければ答えない自由もあなたにはあります 不明点があれば説明いたします python 3.10.8
- 【python】機械学習(教師あり)画像認識にて
調べてもどうしてもわからない部分が有り すいませんが質問させていただきます。 【目的】 薬品容器を認識して容器の数を数えたい。 ※機械学習(教師あり)にて容器の認識をしたいと考えております。 モデル学習する前にデータセットとして 薬品容器のアノテーション作業をLabelMEというツールで 容器のアノテーションを行い、ラベル付けしてjsonファイルにて保存しました。 (デスクトップの機械学習というフォルダにjsonファイル入れています。) 【質問】 このデータセットというのは アノテーションした後のjsonファイルのみあれば モデルの学習はできるのでしょうか? モデル学習のコードを組んでみたのですが エラーが出てしまい具体的には、アノテーションデータに 'image_path' が存在しないとの事でした。 ・画像データが欲しいってことですか? この場合jsonファイルと元画像jpegがあればモデルの学習が 出来るのですか? 実行時 Loaded dataset from 133 JSON files. Total samples in the dataset: 0 と出るので、データセットの中身が0と出ているような気がします。 コード一応貼ります。 import os import json import cv2 import numpy as np from sklearn.model_selection import train_test_split from tensorflow import keras from tensorflow.keras import layers from tensorflow.keras.applications import VGG16 from tensorflow.keras.preprocessing.image import ImageDataGenerator # データセットのパス json_folder_path = r'C:\Users\Desktop\機械学習' # データセットの読み込み def load_dataset(folder_path): dataset = [] for filename in os.listdir(folder_path): if filename.endswith(".json"): file_path = os.path.join(folder_path, filename) with open(file_path, 'r') as file: data = json.load(file) dataset.append(data) # appendを使用してリストに追加 # アノテーションデータを表示 print(f"Loaded dataset from {len(dataset)} JSON files.") return dataset # データセットの整形 def preprocess_dataset(dataset): images = [] boxes = [] for data in dataset: # 'image_path'が存在する場合のみ処理を行うように修正 if 'image_path' in data: image_path = data['image_path'] label = data.get('label', None) # 'label'が存在しない場合はNoneを返す box = data.get('box', None) # 'box'が存在しない場合はNoneを返す if label and box: image = cv2.imread(image_path) # OpenCVを使用して画像を読み込む images.append(image) boxes.append(box) return np.array(images), np.array(boxes) # データ拡張の設定 datagen = ImageDataGenerator( rotation_range=20, width_shift_range=0.2, height_shift_range=0.2, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode='nearest' ) # メインの実行部分 if __name__ == "__main__": # データセットの読み込み dataset = load_dataset(json_folder_path) # データセットの整形 images, boxes = preprocess_dataset(dataset) # データセットのサイズを確認 print(f"Total samples in the dataset: {len(images)}") # 訓練データとテストデータに分割 X_train, X_test, y_train, y_test = train_test_split(images, boxes, test_size=0.2, random_state=42) # データ拡張を適用 for i in range(len(X_train)): img = X_train[i] box = y_train[i] img = np.expand_dims(img, axis=0) box = np.expand_dims(box, axis=0) for j, (img_aug, box_aug) in enumerate(zip(datagen.flow(img, box), datagen.flow(box, box))): if j == 1: # 1回目のデータ拡張だけを適用 X_train = np.vstack((X_train, img_aug)) y_train = np.vstack((y_train, box_aug)) break # モデルの構築(VGG16を利用した転移学習) base_model = VGG16(weights='imagenet', include_top=False, input_shape=(224, 224, 3)) base_model.trainable = False model = keras.Sequential([ base_model, layers.Flatten(), layers.Dense(256, activation='relu'), layers.Dense(4) # 出力層のノード数は物体の座標情報による ]) # モデルのコンパイル model.compile(optimizer='adam', loss='mean_squared_error') # モデルのトレーニング model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test)) # テストデータでの評価 test_loss = model.evaluate(X_test, y_test) print(f"Test Loss: {test_loss}")
- 締切済み
- Python
- TaikooniQ1
- 回答数1
- python: ストアする値を更新するコード
pythonコードの質問です 入力は、画像のExcelシートのA列のようになっています 1行目:その後入力される単語の数 2行明以降:テキスト(ここでは野菜名) これに対して次のコードで「判定」をかけました #----------------------- #数値入力(入力される単語数) t = int(input()) flag = 0 store = 0 i = 0 for i in range(t): #野菜名判定 txt = input() #Tomatoの入力を1として変数flagに代入 if txt.count("Tomato") == 1: flag = 1 store = flag print("iは " + str(i) + "-----") print("判定 " + str(flag == 1 & (store - i) > 0)) print("storeは " + str(store)) i += 1 else: flag = 0 print("iは " + str(i) + "-----") print("判定 " + str(flag == 1 & (store - i) > 0)) print("storeは " + str(store)) i += 1 #----------------------- 2番め以降の入力を for i in range(t)で回し、"Tomato"がみつかると、flagに1を立てます そしてflagの値を、次に"Tomato"が出現するまでstoreに代入して保存 flag == 1 (Tomatoが出現した入力)and (store - i) > 0 となった場合にTrue それ以外はFalse 判定をさせようとしています "Tomato"が入力されても、一定期間はTrue判断にしたくないため、 (store - i) > 0 でジャッジしています ところがi == 7のとき、storeの値が本来storeで8になるべきところが、1のまま変化がおきていないため、本来"判定"がTrueであるべきがFalseとなります store値を上の条件「(store - i) > 0」で更新させたい つまり i が 7のとき、store は 8 ですが、コードのどこが間違っているのでしょうか 他のジャッジ方法でもかまいません
- コード(Python)の解説をして頂きたいです
このコードはスペースが2つ以上ある場合スペースを一つだけにする、そして文の最初と最後にスペースがあった場合そのスペースを消すというコードだということは理解出来たのですが、flgはなんの略なのかということと、ans = ans[1:] if ans[0] == ' ' else ans ans = ans[:-1] if ans[-1] == ' ' else ans このコードのelse ansはどのような働きをしているのか分かりません。 もし宜しければ解説をして頂きたいです。 def removeExtraSpaces(theString): ans = '' flg = True for s in theString: if s == ' ': if flg: ans += s flg = False continue flg = True ans += s ans = ans[1:] if ans[0] == ' ' else ans ans = ans[:-1] if ans[-1] == ' ' else ans return ans
- Pythonのコードの解説をお願いします
このコードはスペースが2つ以上ある場合スペースを一つだけにする、そして文の最初と最後にスペースがあった場合そのスペースを消すというものだとういうことは理解出来たのですが、なんでこういうコードを書いたぬぬかついんのか、 def removeExtraSpaces(theString): ans = '' flg = True for s in theString: if s == ' ': if flg: ans += s flg = False continue flg = True ans += s ans = ans[1:] if ans[0] == ' ' else ans ans = ans[:-1] if ans[-1] == ' ' else ans return ans これを解説して
- pythonの問題を解くのを助けていただきたいです
スペースが2つ以上ある場合スペースを一つだけにする、そして文の最初と最後にスペースがあった場合そのスペースを消すというコードをこのコードをベースに書き換えていただくことは可能でしょうか? def removeExtraSpaces(theString): outSt = "" foundExtraSpaces = False for ch in theString: if ch = " ": foundExtraSpaces = True elif foundExtraSpaces == True: outSt += ch return outSt print(removeExtraSpaces(" Hello Joe ")) #この場合”Hello Joe”と出力されるはずです。
- pythonの問題ー解き方を教えて頂きたいです。
プログラムのコードとどう考えればいいのかを教えていただきたいです。 言語はpythonです。 よろしくお願いします。 Write a function wheelOfFortune(letter, phrase) that plays one guess of the a letter within a phrase. The letter is a single character (that may be upper or lower case). The phrase is a string that is of any length with upper and lower case letters. The function should ignore the case of either the letter or the characters in the phrase. The function prints out the following messages: Example: wheelOfFortune(‘a’, ‘Hello World’) Sorry, there is no "a" Example: wheelOfFortune(‘w’, ‘Hello World’) There was 1 w found Found at position 6 Example: wheelOfFortune(‘L’, ‘Hello World’) There were 3 l's found Found at position 2 Found at position 3 Found at position 9 NOTE: When you print out the first line of how many letters are found, you should print out the letter in lower case always.
- pythonの問題ー解き方を教えて頂きたいです。
プログラムのコードとどう考えればいいのかを教えていただきたいです。 言語はpythonです。 よろしくお願いします。 Write a function called genAvg(numList, precision) that takes in a list numbers and finds the average of the numbers. It will then return a string that says something like: The average is 1.234 The output format of the average is specified by the precision parameter that is given to the function. The parameter defines how many digits to the right of the decimal place to round to. So, if the precision is 2, then the output format will round to the hundredths. This parameter will be an integer greater or equal to 0. Use the .format method of strings to make this output string. You may need to create an initial string with some string concatenation operations before using the .format method since the precision is not a fixed value. Example: genAvg([1,2,5], 4) will return the string The average is 2.6667
- C言語とpython言語について。
Visual Studio Codeで、C言語(これは必要なものを全てインストール済み)で、その上で、python言語のインスール(必要なもの全て)しても、C言語が、実行&コンパイル出来なくなる事はないですよね?教えて頂けると幸いです。
- github 使いみち
授業でプログラミングやソフトウェア開発について学んでいる学生です。よく界隈ではgithubの話が話題に出ると思うのですが、実際どういった時に使うのでしょうか? 別に授業で学ぶレベル、作るレベルでは他人との共同作業や更新履歴を残すこともないですし、なんかみんながいうほど、githubを使う機会がなくてあれーと思っています。 皆さんは実際どういった時に使いますか?仕事の内外に問わず教えてくださると勉強になります!
- 締切済み
- Python
- yamakawakawa
- 回答数1