微信号:imooc-com

介绍:慕课网是一个超酷的互联网、IT技术免费学习平台,创新的网络一站式学习、实践体验;服务及时贴心,内容专业、有趣易学。专注服务互联网工程师快速成为技术高手!

2个程序员用代码敲出对妈妈的爱

2017-05-12 08:11 慕课网

图 | 来源网络
文 | navcat 、途索


01


这是一个程序员使用python代码,实现一张图片效果图



import seaborn as sns
import numpy as np
from pylab import *
#Define Data
data=np.zeros([64,64],dtype="float")


#Begin to Draw
POS_VALUE=0.8
NEG_VALUE=-0.8
data[1:31,1]=POS_VALUE
for i in range(1,11):
    data[i,i]=POS_VALUE
for i in range(11,21):
    data[21-i,i]=POS_VALUE
data[1:31,21]=POS_VALUE

data[2,31:34]=POS_VALUE
for i in range(0,7):
    data[i+2,31-i]=POS_VALUE
data[8:25,25]=POS_VALUE
for i in range(25,32):
    data[i,i]=POS_VALUE
data[31,31:34]=POS_VALUE
for i in range(34,41):
    data[65-i,i]=POS_VALUE
data[8:25,40]=POS_VALUE
for i in range(0,7):
    data[i+2,i+34]=POS_VALUE

data[1:31,43]=POS_VALUE
for i in range(1,11):
    data[i,43+i]=POS_VALUE
for i in range(11,21):
    data[21-i,43+i]=POS_VALUE
data[1:31,63]=POS_VALUE

for i in range(37,44):
    data[i,i-11]=NEG_VALUE
for i in range(37,44):
    data[i,64-i]=NEG_VALUE
for i in range(44,57):
    data[i,i-23]=NEG_VALUE
for i in range(44,57):
    data[i,89-i]=NEG_VALUE
for i in range(37,44):
    data[i,i+2]=NEG_VALUE
for i in range(37,45):
    data[i,77-i]=NEG_VALUE

data[33:63,11]=NEG_VALUE
data[33,9:14]=NEG_VALUE
data[63,9:14]=NEG_VALUE

data[33:57,47]=NEG_VALUE
for i in range(57,64):
    data[i,i-10]=NEG_VALUE
data[63,53:56]=NEG_VALUE
for i in range(0,6):
    data[63-i,i+55]=NEG_VALUE
data[33:58,61]=NEG_VALUE

#SHOW THE MAP
sns.heatmap(-data,xticklabels=False,yticklabels=False)
show()

 

实现的效果图



02

这是一个程序员使用python3 中的线程和协程,实现孩子成长的过程,表达出对妈妈的爱




#!/usr/bin/python

#coding=utf-8


import time, random

import threading

from functools import wraps


 # 孕期,你懂的 

PREGNANCY= [

        '今天,妈妈的体温38°,比平常高了0.5°',

        '妈妈吐得很厉害,是你捣的鬼吗?',

        '妈妈看到了你的手指,很可爱,不过看上去还有点像鸭蹼',

        '你身高8cm,但是已经有指纹了',

        '医生说看到你在吸吮自己的大拇指,我想知道,那是什么味道',

        '眉毛和眼皮都长出来了,天生就是爱运动',

        '妈妈看到你的大脑在长大,我想,你一定是个聪明的孩子',

        '你偶尔会张开双眼,似乎看到什么,又似乎没有看到',

        '妈妈看到你越来越强壮,很开心',

        '哇喔,你来了,50cm,你很开心,可妈妈很痛',

]


 # 你要什么,你懂的 

WHAT_I_WANTS= [

         'AD钙奶',

         '哇哈哈',

         '棒棒糖',

         '皮卡丘',

         '学钢琴',

         '自行车',

         '上北大'

]


 # 母爱无穷,你懂的 

WHAT_MOTHER_CARES = [

         '给你打了点生活费',

         '天冷了,多加衣',

         '天热了,买点衣服吧',

         '都10点了,还不起床',

         '快点,要迟到了',

         '有点出息行不',

         '妈妈想你了...'

]



def  coroutine(func) :

         ''' 协程装饰器,调用一次next,进入等待 '''

         @wraps(func)

         def wrapper(*args, **kwargs):

                g = func(*args, **kwargs)

                next (g)

                return g

          return wrapper



class Person(object):

               ''' 人 '''

               def __init__(self ) :

                           self.age = 0



class Growing(object):


                def __init__(self, monther, child, condition):

                             self.monther = monther

                             self.child = child

                             self.condition = condition


                def  grow_up(self):

                                ··· 年龄增长,此处,我和母亲的年龄同时增长···

                                try:

                                               self.condition.acquire()

                                                # 随机增长年龄

                                                age = random.randint(1,3)

                                                # age = 1

                                                self.monther.age += age

                                                self.child.age += age

                                  finally:

                                                 self.condition.release()


                def  time_lapse(self):

                            ··· 时间流逝···

                           try:

                                                  time.sleep(random.randint(1, 3))

                           except InterruptedError:

                                         pass



class MotherGrowing(Growing):


             def __init__(self, *args, **kwargs):

                          super(MotherGrowing, self).__init__(*args, **kwargs)

                           self.monther.age = 22


             def growing(self):

                            ··· 妈妈在变老 ···

                        self.grow_up()

                        if self.age > 60:

                                  print('<<<<<<<<<<<<<<妈妈老了>>>>>>>>>')

                        # print('----->妈妈【{0}】岁了'.format(self.age))


             def pregnant(self):

                          ··· 孕期 ···

                         self.age = 22

                         print('---那一年,妈妈%d 岁----' % self.age)

                         # 成长周期

                        for week, desc in enumerate(PREGNANCY):

                                      print("[第{0}月] {1}".format(week + 1, desc))

                                      # 这里是漫长的等待

                                      self.time_lapse()


@coroutine

def from_child(self):

              ···你要什么,妈妈就给你什么···

               while True:

                            something = (yield)

                            self.time_lapse()

                            print('[妈{0}岁, 我{1}岁]>>你说要:[{2}], 妈妈给你 【{2}】'.format(

                                      self.monther.age, self.child.age, something))


def to_child(self, cg):

             ···对孩子的关怀···

             care = cg.from_monther()

             max_count = 0

             while max_count < 20:

                           index=random.randint(0, len(WHAT_MOTHER_CARES) - 1)

                           # 不间断的关怀

                           care.send(WHAT_MOTHER_CARES[index])

                           max_count += 1

                           # 妈妈在变老

                           self.growing()


def say(self):

            print('{0}岁妈妈对{1}岁孩子说,你是好样的!'.format(

                      self.monther.age,

                      self.child.age))



classChildGrowing(Growing):


               def __init__(self, *args, **kwargs):

                           super(ChildGrowing, self).__init__(*args, **kwargs)


               def growing(self):

                             ···我长大了···

                            self.grow_up()

                             if self.child.age > 18:

                                       print('<<<<<<<<<<<<<<我长大了>>>>>>>>>')

                             # print('-----<我【{0}】岁了'.format(self.age))


def to_mother(self, mg):

           ···向妈妈索取···

           say = mg.from_child()

            max_count = 0

            while max_count < 20:

                          index = random.randint(0, len(WHAT_I_WANTS) - 1)

                          # 不间断索取

                          say.send(WHAT_I_WANTS[index])

                          max_count += 1

                          # 我在成长

                          self.growing()


  @coroutine

  def from_monther(self):

               ···来自妈妈的爱···

                while True:

                             care = (yield)

                             self.time_lapse()

                             print('[我{0}岁, 妈{1}岁]<<妈妈说:{2}'.format(

                                       self.child.age,

                                       self.monther.age,

                                       care))


    def say(self):

                  print('{0}岁的我对{1}岁的妈说:妈,您辛苦了,母亲节快乐!'.format(

                            self.child.age,

                            self.monther.age

                                ))



def main():

              monther = Person()

               me = Person()

               condition= threading.Condition()


                g_mother = MotherGrowing(monther, me, condition)

                g_mother.pregnant()


                 g_me = ChildGrowing(monther, me, condition)

                # 妈妈线程

                 t_mothor = threading.Thread(target=g_mother.to_child, args=(g_me,))

                # 我的线程

                t_me = threading.Thread(target=g_me.to_mother, args=(g_mother, ))


                t_mothor.start()

                t_me.start()


                t_mothor.join()

                t_me.join()


               # 我说

              g_me.say()

              # 妈妈说

              g_mother.say()


if__name__== '__main__':

                 main()

 







你会选择什么方式表达对妈妈的爱呢
欢迎在留言区分享



 
慕课网 更多文章 慕课网紧急@所有人,你的第一张BAT入场券马上要过期了! 奥运来了,抢书啦,先到先得 2小时搞定移动直播App开发 开始学习 4 年前端狗,2 年 CTO,一个程序员六年的奋斗史 教师节,老师竟然送你礼物!(9.10日,不限名额!!!)
猜您喜欢 谷歌Android One廉价手机平台的对手是WP吗? 调查:成功创业者的15个特征,你拥有几个? 腾讯换logo了!还出了套“腾讯字体”:6763个汉字 ! linux文件系统详解 美团App iOS开发与FRP