np.set_printoptions(current_printoptions) typeError : precision must be an integer
Ada yang bisa kasih masukan supaya hasilnya tidak error? saya juga sudah mencoba memodifnya tapi tidak menemukan titik terangnya, kesalahan pada np.set_printoptions(current_printoptions) . Terimakasih
def __init__(self,size):
self.size = size
self.A = np.zeros((size,size), dtype = np.int8)
self.B = np.zeros((size,size), dtype = np.int8)
self.C = np.zeros((size,size), dtype = np.int8)
self.D = np.zeros((size,size), dtype = np.int8)
self.E = np.zeros((size,size), dtype = np.int8)
self.F = np.zeros((size,size), dtype = np.int8)
self.faces = [self.A, self.B, self.C, self.D, self.E, self.F]
def __str__(self):
current_printoptions = np.get_printoptions()
np.set_printoptions(formatter={'str': '{: 3d}'.format})
output = ""
indent = " " * (1 + self.size * 4)
for row in self.A:
output += indent + str(row) + "\n"
for zipped_row in zip(self.B, self.C, self.D, self.E):
for row in zipped_row:
output += str(row)
output += "\n"
for row in self.F:
output += indent + str(row) + "\n"
np.set_printoptions(current_printoptions)
return output
def init_arange(self):
i = 0
for face in self.faces:
for y in range(self.size):
for x in range(self.size):
face[y][x] = i
i += 1
def init_plainteks(self, teks):
i = 0
for face in self.faces:
for y in range(self.size):
for x in range(self.size):
if len(teks)>i:
face[y][x] = ord(teks[i])
else:
face[y][x] = 37
i += 1
def encrypt(self,key):
for move in key.split('-'):
if move[0] == 'R':
self.rotate_row(int(move[1]))
if move[0] == 'C':
self.rotate_column(int(move[1]))
if move[0] == 'L':
self.rotate_level(int(move[1]))
def decrypt(self,key):
rev_moves = key.split('-')
new_moves = list()
for i in range(1, len(rev_moves) + 1):
new_moves.append(rev_moves[-1 * i])
for move in new_moves:
if move[0] == 'R':
self.rev_rotate_row(int(move[1]))
if move[0] == 'C':
self.rev_rotate_column(int(move[1]))
if move[0] == 'L':
self.rev_rotate_level(int(move[1]))
def rotate_row(self, n):
# B -> C -> D -> E -> B
if n in (1,2,3):
for i in range(n):
tmpB = np.copy(self.B[-1])
self.B[-1] = self.E[-1]
self.E[-1] = self.D[-1]
self.D[-1] = self.C[-1]
self.C[-1] = tmpB
# rotate F by - 90*n
self.F = np.rot90(self.F, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpB = np.copy(selef.B[:1])
self.B[:1] = self.E[:1]
self.E[:1] = self.D[:1]
self.D[:1] = self.C[:1]
self.C[:1] = tmpB
# rotate A by 90 derajat*n
self.A = np.rot90(self.A, n-3)
def rev_rotate_row(self,n):
# B -> C -> D -> E -> B
if n in (1,2,3):
for i in range(n):
tmpB = np.copy(self.B[-1])
self.B[-1] = self.C[-1]
self.C[-1] = self.D[-1]
self.D[-1] = self.E[-1]
self.E[-1] = tmpB
# rotate F by -90*n
self.F = np.rot90(self.F, n-4)
elif n in (4,5,6):
for i in range(n-3):
tmpB = np.copy(self.B[-1])
self.B[:1] = self.C[:1]
self.C[:1] = self.D[:1]
self.D[:1] = self.E[:1]
self.E[:1] = tmpB
# rotate A by 90*n
self.A = np.rot90(self.A, 3-n)
def rotate_column(self, n):
# A -> E -> F -> C -> A
if n in (1,2,3):
for i in range(n):
tmpA = np.copy(self.A[:,-1])
self.A[:,-1] = self.C[:,-1]
self.C[:,-1] = self.F[:,-1]
self.F[:,-1] = np.flip(self.E[:,0])
self.E[:,0] = np.flip(tmpA)
# rotate D by -90*n
self.D = np.rot90(self.D, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[:,:1])
self.A[:,:1] = self.C[:,:1]
self.C[:,:1] = self.F[:,:1]
self.F[:,:1] = np.flip(self.E[:,-1:])
self.E[:,-1:] = np.flip(tmpA)
# rotate B by 90*n
self.B = np.rot90(self.B, n-3)
def rev_rotate_column(self,n):
# A -> E -> F -> C -> A
if n in (1,2,3):
for i in range(n):
tmpA = np.copy(self.A[:,-1])
self.A[:,-1] = self.E[:,-1]
self.E[:,-1] = self.F[:,-1]
self.F[:,-1] = np.flip(self.C[:,0])
self.C[:,0] = np.flip(tmpA)
# rotate D by -90*n
self.D = np.rot90(self.D, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[:,:1])
self.A[:,:1] = self.E[:,:1]
self.E[:,:1] = self.F[:,:1]
self.F[:,:1] = np.flip(self.C[:,-1:])
self.C[:,-1:] = np.flip(tmpA)
# rotate B by 90*n
self.B = np.rot90(self.B, n-3)
def rotate_level(self,n):
# A -> B -> F -> D -> A
if n in range(n):
for i in range(n):
tmpA = np.copy(self.A[0])
self.A[0] = self.D[:,-1]
self.D[:,-1] = np.flip(self.F[-1])
self.F[-1] = self.B[:,0]
self.B[:,0] = np.flip(tmpA)
# rotate E by -90*n
self.E = np.rot90(self.E, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[1:])
self.A[-1:] = np.rot90(self.D[:,:1])
self.D[:,:1] = np.rot90(self.F[:1])
self.F[:1] = np.rot90(self.B[:,-1:])
self.B[:,1:] = np.rot90(tmpA)
# rotate C by 90*n
self.C = np.rot90(self.C, n-3)
def rev_rotate_level(self,n):
# A -> B -> F -> D -> A
if n in (1,2,3):
for i in range(n):
tmpA = np.copy(self.A[-1])
self.A[0] = self.B[:,-1]
self.B[:, -1] = np.flip(self.F[-1])
self.F[-1] = self.D[:,0]
self.D[:,0] = np.flip(tmpA)
# rotate E by -90*n
self.E = np.rot90(self.E, n-4)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[-1:])
self.A[-1:] = np.rot90(self.B[:,:1])
self.B[:,:1] = np.rot90(self.F[:1])
self.F[:1] = np.rot90(self.D[:,-1:])
self.D[:,-1:] = np.rot90(tmpA)
# rotate C by 90*n
self.C = np.rot90(self.C, 3-n)
if __name__ == "__main__":
msg = input("Message: ")
rubikcube = RubikCube(size=3)
rubikcube.init_plainteks(msg)
# rubikcube.init_arange()
print(rubikcube)
key = input("Key: ")
rubikcube.encrypt(key)
print(rubikcube)
import numpy as npclass RubikCube:
def __init__(self,size):
self.size = size
self.A = np.zeros((size,size), dtype = np.int8)
self.B = np.zeros((size,size), dtype = np.int8)
self.C = np.zeros((size,size), dtype = np.int8)
self.D = np.zeros((size,size), dtype = np.int8)
self.E = np.zeros((size,size), dtype = np.int8)
self.F = np.zeros((size,size), dtype = np.int8)
self.faces = [self.A, self.B, self.C, self.D, self.E, self.F]
def __str__(self):
current_printoptions = np.get_printoptions()
np.set_printoptions(formatter={'str': '{: 3d}'.format})
output = ""
indent = " " * (1 + self.size * 4)
for row in self.A:
output += indent + str(row) + "\n"
for zipped_row in zip(self.B, self.C, self.D, self.E):
for row in zipped_row:
output += str(row)
output += "\n"
for row in self.F:
output += indent + str(row) + "\n"
np.set_printoptions(current_printoptions)
return output
def init_arange(self):
i = 0
for face in self.faces:
for y in range(self.size):
for x in range(self.size):
face[y][x] = i
i += 1
def init_plainteks(self, teks):
i = 0
for face in self.faces:
for y in range(self.size):
for x in range(self.size):
if len(teks)>i:
face[y][x] = ord(teks[i])
else:
face[y][x] = 37
i += 1
def encrypt(self,key):
for move in key.split('-'):
if move[0] == 'R':
self.rotate_row(int(move[1]))
if move[0] == 'C':
self.rotate_column(int(move[1]))
if move[0] == 'L':
self.rotate_level(int(move[1]))
def decrypt(self,key):
rev_moves = key.split('-')
new_moves = list()
for i in range(1, len(rev_moves) + 1):
new_moves.append(rev_moves[-1 * i])
for move in new_moves:
if move[0] == 'R':
self.rev_rotate_row(int(move[1]))
if move[0] == 'C':
self.rev_rotate_column(int(move[1]))
if move[0] == 'L':
self.rev_rotate_level(int(move[1]))
def rotate_row(self, n):
# B -> C -> D -> E -> B
if n in (1,2,3):
for i in range(n):
tmpB = np.copy(self.B[-1])
self.B[-1] = self.E[-1]
self.E[-1] = self.D[-1]
self.D[-1] = self.C[-1]
self.C[-1] = tmpB
# rotate F by - 90*n
self.F = np.rot90(self.F, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpB = np.copy(selef.B[:1])
self.B[:1] = self.E[:1]
self.E[:1] = self.D[:1]
self.D[:1] = self.C[:1]
self.C[:1] = tmpB
# rotate A by 90 derajat*n
self.A = np.rot90(self.A, n-3)
def rev_rotate_row(self,n):
# B -> C -> D -> E -> B
if n in (1,2,3):
for i in range(n):
tmpB = np.copy(self.B[-1])
self.B[-1] = self.C[-1]
self.C[-1] = self.D[-1]
self.D[-1] = self.E[-1]
self.E[-1] = tmpB
# rotate F by -90*n
self.F = np.rot90(self.F, n-4)
elif n in (4,5,6):
for i in range(n-3):
tmpB = np.copy(self.B[-1])
self.B[:1] = self.C[:1]
self.C[:1] = self.D[:1]
self.D[:1] = self.E[:1]
self.E[:1] = tmpB
# rotate A by 90*n
self.A = np.rot90(self.A, 3-n)
def rotate_column(self, n):
# A -> E -> F -> C -> A
if n in (1,2,3):
for i in range(n):
tmpA = np.copy(self.A[:,-1])
self.A[:,-1] = self.C[:,-1]
self.C[:,-1] = self.F[:,-1]
self.F[:,-1] = np.flip(self.E[:,0])
self.E[:,0] = np.flip(tmpA)
# rotate D by -90*n
self.D = np.rot90(self.D, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[:,:1])
self.A[:,:1] = self.C[:,:1]
self.C[:,:1] = self.F[:,:1]
self.F[:,:1] = np.flip(self.E[:,-1:])
self.E[:,-1:] = np.flip(tmpA)
# rotate B by 90*n
self.B = np.rot90(self.B, n-3)
def rev_rotate_column(self,n):
# A -> E -> F -> C -> A
if n in (1,2,3):
for i in range(n):
tmpA = np.copy(self.A[:,-1])
self.A[:,-1] = self.E[:,-1]
self.E[:,-1] = self.F[:,-1]
self.F[:,-1] = np.flip(self.C[:,0])
self.C[:,0] = np.flip(tmpA)
# rotate D by -90*n
self.D = np.rot90(self.D, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[:,:1])
self.A[:,:1] = self.E[:,:1]
self.E[:,:1] = self.F[:,:1]
self.F[:,:1] = np.flip(self.C[:,-1:])
self.C[:,-1:] = np.flip(tmpA)
# rotate B by 90*n
self.B = np.rot90(self.B, n-3)
def rotate_level(self,n):
# A -> B -> F -> D -> A
if n in range(n):
for i in range(n):
tmpA = np.copy(self.A[0])
self.A[0] = self.D[:,-1]
self.D[:,-1] = np.flip(self.F[-1])
self.F[-1] = self.B[:,0]
self.B[:,0] = np.flip(tmpA)
# rotate E by -90*n
self.E = np.rot90(self.E, 4-n)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[1:])
self.A[-1:] = np.rot90(self.D[:,:1])
self.D[:,:1] = np.rot90(self.F[:1])
self.F[:1] = np.rot90(self.B[:,-1:])
self.B[:,1:] = np.rot90(tmpA)
# rotate C by 90*n
self.C = np.rot90(self.C, n-3)
def rev_rotate_level(self,n):
# A -> B -> F -> D -> A
if n in (1,2,3):
for i in range(n):
tmpA = np.copy(self.A[-1])
self.A[0] = self.B[:,-1]
self.B[:, -1] = np.flip(self.F[-1])
self.F[-1] = self.D[:,0]
self.D[:,0] = np.flip(tmpA)
# rotate E by -90*n
self.E = np.rot90(self.E, n-4)
elif n in (4,5,6):
for i in range(n-3):
tmpA = np.copy(self.A[-1:])
self.A[-1:] = np.rot90(self.B[:,:1])
self.B[:,:1] = np.rot90(self.F[:1])
self.F[:1] = np.rot90(self.D[:,-1:])
self.D[:,-1:] = np.rot90(tmpA)
# rotate C by 90*n
self.C = np.rot90(self.C, 3-n)
if __name__ == "__main__":
msg = input("Message: ")
rubikcube = RubikCube(size=3)
rubikcube.init_plainteks(msg)
# rubikcube.init_arange()
print(rubikcube)
key = input("Key: ")
rubikcube.encrypt(key)
print(rubikcube)
atau respon:
Jawaban
Yang bagian ini,
Kenapa harus di set_printoptions lagi akhiran nya? jika pada akhirnya memakai yang
Oh sorry, kek nya ga ada kaitannya ama error nya rupanya.
Edit 2 ======
Kendala nya itu ada pada Numpy. Entah karena perubahan apa yang terjadi
Mengembalikan nilai default set_printoptions menggunakan value sebelum nya terjadi kesalahan/
Edit 3 =====
Jadi dari pada
Kenapa harus di set_printoptions lagi akhiran nya? jika pada akhirnya memakai yang
formatter={'str': '{: 3d}'.format}
def __str__(self): current_printoptions = np.get_printoptions() np.set_printoptions(formatter={'str': '{: 3d}'.format}) output = "" indent = " " * (1 + self.size * 4) for row in self.A: output += indent + str(row) + "\n" for zipped_row in zip(self.B, self.C, self.D, self.E): for row in zipped_row: output += str(row) output += "\n" for row in self.F: output += indent + str(row) + "\n" np.set_printoptions(current_printoptions) return outputEdit =======
Oh sorry, kek nya ga ada kaitannya ama error nya rupanya.
Edit 2 ======
Kendala nya itu ada pada Numpy. Entah karena perubahan apa yang terjadi
Mengembalikan nilai default set_printoptions menggunakan value sebelum nya terjadi kesalahan/
Edit 3 =====
current_printoptions = np.get_printoptions() print(np.get_printoptions()) print(current_printoptions) np.set_printoptions(formatter={'str': '{: 3d}'.format}) print(np.get_printoptions()); print(current_printoptions); keluarnya {'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 8, 'suppress': False, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False} {'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 8, 'suppress': False, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False} {'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 8, 'suppress': False, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': {'str': <built-in method format of str object at 0x0000017C39E67A70>}, 'legacy': False} {'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 8, 'suppress': False, 'linewidth': 75, 'nanstr': 'nan', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False}
Jadi dari pada
np.set_printoptions(current_printoptions)gunakan ini aja mungkin
np.set_printoptions(formatter=None)
17 Kontribusi 5 Poin
Login untuk gabung berdiskusi
Pertanyaan Lainnya
Top Kontributor
- @ahanafi
795 Kontribusi 523 Poin
- @Nandar
647 Kontribusi 204 Poin
- @dianarifr
642 Kontribusi 316 Poin
- @Saputroandhi
509 Kontribusi 162 Poin
- @dodipsitorus
412 Kontribusi 145 Poin