質問編集履歴
1
ソースコードを貼り直した
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,73 +1,55 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
Pythonで、文字から2進数に変換してパリティを付与するというプログラムを作っているのですが
|
3
|
-
初歩的なことだと思うのですがエラーが出たので質問しました
|
2
|
+
Pythonで初歩的なことだと思うのですがエラーが出たので質問しました
|
4
3
|
どなたかわかる方教えていただけないでしょうか
|
5
4
|
|
6
5
|
### 発生している問題・エラーメッセージ
|
7
6
|
|
8
7
|
```NameError: name 'tmp' is not defined
|
9
8
|
```NameError: name 'tmp' is not defined
|
10
|
-
|
11
9
|
### 該当のソースコード
|
12
|
-
|
13
|
-
```
|
14
10
|
import numpy as np
|
15
|
-
|
16
11
|
import matplotlib.pyplot as plt
|
17
|
-
|
18
12
|
import scipy.fftpack as sfft
|
19
|
-
|
20
13
|
import matplotlib.mlab as mlab
|
21
|
-
|
22
14
|
import cis
|
23
|
-
|
24
15
|
import random
|
16
|
+
#import re
|
25
17
|
|
26
|
-
import re
|
27
|
-
|
28
18
|
print("Input string")
|
29
|
-
|
30
19
|
b = input()
|
31
|
-
|
32
20
|
a = []
|
33
|
-
|
34
21
|
b = []
|
35
|
-
|
36
22
|
fs=44100
|
37
|
-
|
38
23
|
t=np.arange(0,0.1,1/fs)
|
39
24
|
|
25
|
+
#低域の音信号を代わりに、乱数列を代用
|
40
26
|
r=np.array( [random.random() for i in range(4410)])
|
41
|
-
|
42
27
|
r=(r-0.5)/30
|
43
|
-
|
28
|
+
#19行目から32行目において、入力した文字列の二進変換処理。
|
29
|
+
#二進変換した後のデータが多次元配列としてaに格納される。
|
30
|
+
#rangeは引数に指定した開始数から終了数までの
|
31
|
+
#連続した数値を要素として持つ range 型のオブジェクトを作成します。
|
32
|
+
#lenは引数に指定したオブジェクトの長さの取得
|
33
|
+
#ordは文字をunicode値に変換する関数
|
34
|
+
#tmp一時ファイルの作成
|
35
|
+
#bin引数に指定した整数を2進数
|
44
36
|
for i in range(len(b)):
|
45
|
-
|
46
37
|
s ="00000000"+ bin(ord(b[i]))[2:]
|
47
|
-
|
48
38
|
s = s[-8:]
|
49
|
-
|
50
39
|
print(b[i]+":"+s)
|
51
|
-
|
52
40
|
tmp=[]
|
53
|
-
|
54
41
|
for j in range(8):
|
55
|
-
|
56
|
-
|
42
|
+
tmp.append(int(s[j]))
|
57
|
-
|
58
43
|
p=0
|
59
|
-
|
60
44
|
for j in range(1,8):
|
61
|
-
|
62
45
|
p=p^tmp[j]
|
63
|
-
|
64
46
|
tmp[0]=p
|
65
|
-
|
66
47
|
a.append(tmp)
|
67
|
-
|
68
48
|
a = np.array(a)
|
69
49
|
|
50
|
+
```
|
70
51
|
|
52
|
+
|
71
53
|
### 試したこと
|
72
54
|
|
73
55
|
for文のところで何かおかしなことをしてると思ってa.appendの部分をいじったりしたのですが直せませんでした
|