from datetime import datetime AA.objects.create(my_date=datetime.now())장고는 날짜에 Timezone을 추가해서 사용한다. timezone을 함께 넣어주던가
사용하지 않는다고 명시하던가 해야한다.
from django.utils import timezone AA.objects.create(my_date=timezone.now())
from datetime import datetime AA.objects.create(my_date=datetime.now())장고는 날짜에 Timezone을 추가해서 사용한다. timezone을 함께 넣어주던가
from django.utils import timezone AA.objects.create(my_date=timezone.now())
python manage.py makemigrations --empty <앱이름>이렇게 하면 makemigrations의 빈 통이 보인다. 다른건 보지말고 얘만 보자.
... operations = [ ]이 안에다가 무슨일을 한 건지 적어준다.
operations = [
migrations.RenameModel(
old_name='Pattern',
new_name='MessagePattern',
),
]
이후 Model명을 바꾸고 사용하고 있는 다른 파일들 모델명을 전부 바꾼다.import os os.removedirs(some_path)하지만 디렉터리 안에 파일이 있다면 삭제되지 않는다. 그럴땐
import shutil shutil.rmtree(some_path)이렇게 삭제하자
def postfix_eval(expr):
operand_stack = []
token_list = postfix_expr.split()
for token in token_list:
if token in '0123456789':
operand_stack.append(int(token))
else:
operand2 = operand_stack.pop()
operand1 = operand_stack.pop()
result = do_math(token, operand1, operand2)
operand_stack.append(result)
return operand_stack.pop()
def do_math(op, op1, op2):
if op == "*":
return op1 * op2
elif op == "/":
return op1 / op2
elif op == '+':
return op1 + op2
else:
return op1 - op2
실행
print(postfix_eval('7 8 + 3 2 + /'))
여기서 주목할 것은 do_math
def post_math(op, op1, op2):
return eval(op1 + op + op2)
테스트를 해보자.
post_math('+', '1', '2')
3
문자열을 그대로 맘대로 합쳐서 그 문자열 자체를 평가#!/bin/python3 import sys from math import factorial n = int(input().strip()) print(factorial(n))
def readFile(filename):
with open(filename) as file:
return [ x.strip('\n').replace(' ','') for x in file.readlines()]
list_ = readFile('1991.txt')
def my_tree(r):
return [r, [], []]
root = None
def add(data, left, right):
global root
if root is None:
if data != '.':
root = my_tree(data)
if left != '.':
root[1] = my_tree(left)
if right != '.':
root[2] = my_tree(right)
return root
else:
return search(root, data, left, right)
def search(root, data, left, right):
if root is None or root == []:
return root
elif root[0] == data:
if left != '.':
root[1] = my_tree(left)
if right != '.':
root[2] = my_tree(right)
return root
else:
search(root[1], data, left, right)
search(root[2], data, left, right)
for l_ in list_[1:]:
add(l_[0],l_[1],l_[2])
def preorder(root):
if root:
print(root[0], end='')
if root[1]:
preorder(root[1])
if root[2]:
preorder(root[2])
def inorder(root):
if root:
if root[1]:
inorder(root[1])
print(root[0], end='')
if root[2]:
inorder(root[2])
def postorder(root):
if root:
if root[1]:
postorder(root[1])
if root[2]:
postorder(root[2])
print(root[0], end='')
preorder(root) print() inorder(root) print() postorder(root) print()