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

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

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

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

Q&A

解決済

1回答

1487閲覧

Python name 'tmp' is not defined とエラーが出ます。

unchan

総合スコア3

Python

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

0グッド

0クリップ

投稿2021/09/12 13:37

編集2021/09/13 03:35

前提・実現したいこと

Pythonで初歩的なことだと思うのですがエラーが出たので質問しました
どなたかわかる方教えていただけないでしょうか

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

NameError:

1```NameError: name 'tmp' is not defined 2### 該当のソースコード 3import numpy as np 4import matplotlib.pyplot as plt 5import scipy.fftpack as sfft 6import matplotlib.mlab as mlab 7import cis 8import random 9#import re 10 11print("Input string") 12b = input() 13a = [] 14b = [] 15fs=44100 16t=np.arange(0,0.1,1/fs) 17 18#低域の音信号を代わりに、乱数列を代用 19r=np.array( [random.random() for i in range(4410)]) 20r=(r-0.5)/30 21#19行目から32行目において、入力した文字列の二進変換処理。 22#二進変換した後のデータが多次元配列としてaに格納される。 23#rangeは引数に指定した開始数から終了数までの 24#連続した数値を要素として持つ range 型のオブジェクトを作成します。 25#lenは引数に指定したオブジェクトの長さの取得 26#ordは文字をunicode値に変換する関数 27#tmp一時ファイルの作成 28#bin引数に指定した整数を2進数 29for i in range(len(b)): 30 s ="00000000"+ bin(ord(b[i]))[2:] 31 s = s[-8:] 32 print(b[i]+":"+s) 33 tmp=[] 34 for j in range(8): 35 tmp.append(int(s[j])) 36 p=0 37 for j in range(1,8): 38 p=p^tmp[j] 39 tmp[0]=p 40a.append(tmp) 41a = np.array(a) 42

試したこと

for文のところで何かおかしなことをしてると思ってa.appendの部分をいじったりしたのですが直せませんでした

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

Python 3.9.7

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

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

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

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

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

y_waiwai

2021/09/12 13:41

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
y_waiwai

2021/09/12 13:44

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
guest

回答1

0

ベストアンサー

python

1b = input() 2a = [] 3b = []

の部分で、inputしたものは消えてしまって、bには[]が代入されます。

python

1for i in range(len(b)):

でlen(b)はゼロですので、このループは一回も実行されません。
そのためにtmpは一度も代入されません。
そのあとでtmpを使おうとしているので、
NameError: name 'tmp' is not defined
となります。

python

1b = []

を正しいものに修正しましょう。

投稿2021/09/13 10:59

ppaul

総合スコア24666

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

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

unchan

2021/09/20 16:16

ありがとうございます! 直りました。助かりました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問