行为心理学研究表明:
21天以上重复会形成习惯;90天的重复会形成稳定习惯。一个动作,重复21天就会变成习惯性的动作;同样,任何一个想法,重复21天,或者重复验证21次,就会变成习惯性想法。所以,一个观念如果被别人或者自己验证21次以上,一定已经变成你的信念。
习惯真的很神奇,可以无意识的影响着我们的思维和行为
当然,最好是拥有一个好习惯啦!
习惯的养成可简要分为三阶段:
1~7天,“刻意,不自然”状态,
7~21天,“刻意,自然”状态
21~90天,“不刻意,自然”
和朋友正刻意培养一些习惯,这周很忙碌,所以感觉到一点点疲惫,对,习惯养成记现在正处于不自然和自然状态的衔接点。。。
希望习惯值不断+1
本周,找到一个常见的例子:
简易计算器
先上图:
代码如下:
from tkinter import *
from tkinter.ttk import *
def frame(master):
w = Frame(master)
w.pack(side=TOP, expand=YES, fill=BOTH,pady=4)
return w
def button(master, text, command):
w = Button(master, text=text, command=command, width=5)
w.pack(side=LEFT, expand=YES, fill=BOTH, padx=3, pady=5)
return w
def calc(text):
try:
if (cal_flag.get() == 0):
return eval(text)
else:
return calculate(str(eval(text)))
except:
return 'Error'
def calculate(text):
float_index = text.find('.')
if float_index > 0:
text_head = text[:float_index]
text_tail = text[float_index:]
elif float_index < 0:
text_head = text
text_tail = ''
else:
text_head = ''
text_tail = text
list_ = [char for char in text_head]
length = len(list_)
tmp_index = 3
while length - tmp_index > 0:
list_.insert(length - tmp_index, ',')
tmp_index += 3
list_.extend(text_tail)
new_text = ''
for char in list_:
new_text += char
return new_text
# 开始界面的实现
root = Tk()
root.title("Calculator") # 标题
text = StringVar()
cal_flag = IntVar()
cal_flag.set(0)
# 创建文本框
Entry(root, textvariable=text).pack(expand=YES, fill=BOTH, padx=25, pady=10)
style = Style()
style.configure('TButton', padding=20)
addbtn = frame(root)
button(addbtn, 'C', lambda t=text: t.set(''))
button(addbtn,'<-', lambda t=text: t.set(back(t.get())))
button(addbtn,'±', lambda t=text: t.set('-('+t.get()+')'))
# 数字及操作按钮
for key in ('789/', '456*', '123-', '0.=+'):
cal = frame(root)
for char in key:
if char == '=':
button(cal, char, lambda t=text: t.set(calc(t.get())))
else:
button(cal, char, lambda t=text, c=char: t.set(t.get()+c))
root.mainloop()
代码说明:
1、为了美观,引用了tkinter的组件ttk,不使用也可以,如下图,其实也不丑
2、四个函数:
(1)frame,创建条形框架。(Frame是屏幕上的一块矩形区域,多是用来作为容器(container)来布局窗体。 )
简单创建框架语句:
w = Frame ( master, option, ... )
其中,master是父窗口
(2)button,创建按钮
(3)calc,用eval方法计算表达式字符串,函数中运用了try-else-except异常处理,可能错误形式有:除数为0,语法错误等,直接“except:”一劳永逸,但无法知道究竟是什么错误
(4)calculate, 这里考虑了三种情况: 无整数部份, 无小数部份, 同时有整数和小数部份,由于字符串是不可改变的, 这里由字符串生成列表以便执行insert操作和extend操作, 操作完成后最由列表生成字符串返回
float_index用来表示浮点数