美文网首页
七夕,用python表白的各种姿势

七夕,用python表白的各种姿势

作者: 寻风浪 | 来源:发表于2019-08-07 14:55 被阅读0次

    一眨眼又到了七夕,这个古老又神圣的日子。小浪同举国上下无数名艰苦的程序员一样,一头扎入了一场由"女神"这种生物引起的战争。只不过,在战歌的帮助下,指尖浪得飞起。

    如何用python优雅地对女神表白呢?

    代码和程序地址:https://github.com/ADlead/Qixi.git

    1. 一行代码

    使用print函数,最简单的真诚

    print('\n'.join([''.join([('ILOVEYOU '[(x - y) % 8] if (
            (x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (
            y * 0.1) ** 3 <= 0 else ' ') for x in range(-30, 30)]) for y in range(15, -15, -1)]))
    

    直接运行,可得结果


    这个方法简单直接,缺点是技能比较低阶,对高级的女神来说杀伤力不够。那么,要怎么办呢?

    2. 手动绘心

    既然以静制动无法取胜,那就让python来手动绘制一颗心

    import turtle
    import math
    heart = turtle.Screen()
    heart.setworldcoordinates(-7, -7, 7, 7) # set size
    alex = turtle.Turtle()
    alex.color("purple")  # set color
    alex.pensize(7)
    alex.penup()
    alex.speed(7)
    walkStart = -1
    walkEnd = 1
    i = walkStart
    j = walkEnd
    while i <= 0 and j >= 0:
        y1 = math.sqrt(1 - i * i) + (i * i) ** (1/4.0)
        y2 = -math.sqrt(1 - i * i) + (i * i) ** (1/4.0)
        y3 = math.sqrt(1 - j * j) + (j * j) ** (1/4.0)
        y4 = -math.sqrt(1 - j * j) + (j * j) ** (1/4.0)
        alex.setx(i)
        alex.sety(y1)
        alex.dot()
        alex.sety(y2)
        alex.dot()
        alex.setx(j)
        alex.sety(y3)
        alex.dot()
        alex.sety(y4)
        alex.dot()
        # adjust density
        i += 0.07
        j -= 0.07
    heart.exitonclick()
    

    与第一个方法相比,这个显得更加浪漫,但是感觉还是不够猛啊,似乎也仍可能会被女神拒绝。

    3. 表白程序

    那就来一个让女神无法拒绝的程序,这也是曾经在dou音上很火的一个表白程序...

    from tkinter import *
    from tkinter import messagebox
    import random
    
    def no_close():
        return
    
    def close_all_windows():
        window.destroy()
    # cancel tips
    def close_windows():
        messagebox.showinfo(title="不要嘛~", message="不选喜欢不许走!")
    # “喜欢”window
    def Love():
        love = Toplevel(window)
        love.geometry("300x100+580+250")
        love.title("爱你么么哒~")
        btn = Button(love, text="那我们在一起吧!", width=15, height=2, command=close_all_window)
        btn.place(x=100, y=30)
        love.protocol("WM_DELETE_WINDOW", no_close)
    
    def on_enter(e):
        global pos
        dx = random.randint(100, 200)
        dy = random.randint(100, 300)
        print(pos, dx, dy)
        pos = (pos[0] + dx) % 200, (pos[1] - 250 + dy) % 350 + 250
        btn2.place(x=pos[0], y=pos[1])
    
    window = Tk()
    window.title("嗨,女神~")  # set title
    window.geometry("360x640+550+50")  # set size
    window.protocol("WM_DELETE_WINDOW", close_windows)  # close window
    label = Label(window, text="喜欢你很久了", font=("微软雅黑", 18))
    label.place(x=120, y=50)
    label = Label(window, text="你喜欢我吗?", font=("微软雅黑", 24))
    label.place(x=70, y=100)
    btn1 = Button(window, text="喜欢", width=15, height=2, command=Love)
    btn1.place(x=110, y=200)
    # "不喜欢" button
    pos = [110, 300]
    btn2 = Button(window, text="不喜欢", width=15, height=2)
    btn2.place(x=pos[0], y=pos[1])
    
    btn2.bind("<Enter>", on_enter)
    # show window and keep running
    window.mainloop()
    

    通过pyinstaller把程序打包成exe之后,把程序发给小姐姐,让她运行

    表白的形式各种各样,最重要的还是要有心意,有心才能打动对方。

    浪完了,我也该去花店买一束花,送给我心中的那个小姐姐了。

    相关文章

      网友评论

          本文标题:七夕,用python表白的各种姿势

          本文链接:https://www.haomeiwen.com/subject/fdbodctx.html