import hashlib
data = b'Hello World'
hash_object = hashlib.sha256() # 어떤 해쉬 알고리즘 쓸래?
hash_object.update(data) # 어떤 값을 해슁할 것인가?
hex_dig = hash_object.hexdigest() # 16진수로 해쉬값을 리턴해줌
print(hex_dig)
hash_object.update(hex_dig.encode()) # 어떤 값을 해슁할 것인가?
hex_dig = hash_object.hexdigest() # 16진수로 해쉬값을 리턴해줌
print(hex_dig)
hash_object.update(hex_dig.encode()) # 어떤 값을 해슁할 것인가?
hex_dig = hash_object.hexdigest() # 16진수로 해쉬값을 리턴해줌
print(hex_dig)
import hashlib
class Block:
def __init__(self, index, timestamp, data, prev_hash):
self.index = index
self.timestamp = timestamp
self.data = data
self.prev_hash = prev_hash
self.hash = self.hash_block()
def hash_block(self):
hash_object = hashlib.sha256()
hash_data = str(self.index) + str(self.timestamp) + str(self.data) + str(self.prev_hash)
hash_object.update(hash_data.encode())
return hash_object.hexdigest()
import datetime
def create_genesis_block():
return Block(0, datetime.datetime.now(), "Genesis Block", "0")
def next_block(prev_block):
index = prev_block.index + 1
timestamp = datetime.datetime.now()
data = "Dave Block" + str(index)
return Block(index, timestamp, data, prev_block.hash)
blockchain = [create_genesis_block()]
prev_block = blockchain[0]
for index in range(10):
new_block = next_block(prev_block)
blockchain.append(new_block)
prev_block = new_block
print ("Block Index: " + str(new_block.index))
print ("Hash Value: " + str(new_block.hash))
Block Index: 1 data = { "seller": "Dave", "buyer": "David", "amount": 100 } Block Index: 2 data = { "seller": "David", "buyer": "Alex", "amount": 120 } Block Index: 3 data = { "seller": "Alex", "buyer": "Mike", "amount": 150 }
def next_block(prev_block, data):
index = prev_block.index + 1
timestamp = datetime.datetime.now()
return Block(index, timestamp, data, prev_block.hash)
data = { "seller": "Dave", "buyer": "David", "amount": 100 }
new_block = next_block(prev_block, data)
blockchain.append(new_block)
prev_block = new_block
data = { "seller": "David", "buyer": "Alex", "amount": 120 }
new_block = next_block(prev_block, data)
blockchain.append(new_block)
prev_block = new_block
data = { "seller": "Alex", "buyer": "Mike", "amount": 150 }
new_block = next_block(prev_block, data)
blockchain.append(new_block)
prev_block = new_block
block = blockchain[1]
block.data
string을 stack에 넣으면 맨 마지막에 넣은 것부터 가져올 수 있음 string을 queue(FIFO)에 넣으면 맨 처음 넣은 넣은 것부터 가져올 수 있음 string을 stack과 queue(FIFO) 에 일단 넣은 후에, 각각 하나씩 꺼내어 비교하면 위 코드가 가능함
import queue
def palidrome(string):
data_list = list()
data_queue = queue.Queue()
for index in range(len(string)):
data_list.append(string[index])
data_queue.put(string[index])
for index in range(len(string) // 2):
data1 = data_list.pop()
data2 = data_queue.get()
print (data1, data2)
if data1 != data2:
return False
return True
print (palidrome('arstsra'))
import openpyxl
# 엑셀파일 열기
wb = openpyxl.load_workbook('data/train.xlsx')
# 현재 Active Sheet 얻기
ws = wb.active
# ws = wb.get_sheet_by_name("Sheet1")
name_list = dict()
for r in ws.rows:
name_list[r[3].value] = r[5].value
#if name[0] == 'F':
# ws.cell(row=r[0].row, column=2).value = 'F'
# ws.cell(row=row_index, column=5).value = sum
print(name_list['Connolly, Miss. Kate'])
# 엑셀 파일 저장
# wb.save("score2.xlsx")
wb.close()