跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

【python】送给女神的AI聊天软件(内附源码)

想起了前段时间520给女朋友写的自动聊天软件,现在分享一下吧。

目录 先看一下效果图 需要用到的库: tkinter、time、urllib、requests 窗体设计: 函数: 为粉丝们额外添加的功能:根据女友输入的内容自定义回复 添加后的效果图: 完整代码: 先看一下效果图

就当是女友无聊的时候自己抽不出时间的小分身吧!

需要用到的库: tkinter、time、urllib、requests tkinter负责窗体、time显示时间、urllib和requests负责请求 窗体设计:

from tkinter import *

win1 = Tk() win1.geometry('400x644+100+100') win1.title('xxx男神的AI分身') Label11 = Label(win1, text='男神白', font=('黑体', 12), anchor='center').place(y=13, x=15, width=380, height=20) Entry11 = Entry(win1, font=('等线', 11), width = 70) Entry11.place(y=600, x=15, width=310, height=26) Button11 = Button(win1, text='发送', font=('等线', 11), command = mecha).place(y=598, x=328, width=65, height=30) console = Text(win1, font=('等线', 11)) console.place(y=35, x=15, width=368, height=550) console.insert(1.0,' 欢迎来到你与男神的小天地!

\n你可以把你想说的内容输入到下面的输入框哦\n') console.mark_set('markOne', 1.0) console.mark_set('markTwo', 3.0) console.tag_add('tag1', 'markOne', 'markTwo') console.tag_config('tag1', foreground='red') win1.bind("", test_fun) win1.mainloop() 函数: 在txet部件上显示发送时间及颜色处理,使用requests和urllib库来调用接口处理回复你女朋友的信息。

def liaotian():

global b import time b = 3 def mecha(): global b b+=2 console.insert('end',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n') console.insert('end',str(Entry11.get())+'\n') console.mark_set(str(b-1), str(b-1)+'.0') console.mark_set(str(b), str(b)+'.0') console.tag_add(str(b), str(b-1), str(b)) console.tag_config(str(b), foreground='blue') console.see(END) console.update() console.insert('end',time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n') console.insert('end',aicha()+'\n') console.mark_set(str(b-1), str(b-1)+'.0') console.mark_set(str(b), str(b)+'.0') console.tag_add(str(b), str(b-1), str(b)) console.tag_config(str(b), foreground='red') console.see(END) Entry11.delete(0,END) console.update() def test_fun(self): mecha() def aicha(): global b b+=2 msg = str(Entry11.get())

else: import urllib import requests def qingyunke(msg): url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg)) html = requests.get(url) return html.json()["content"] print("原话>>", msg) res = qingyunke(msg) res = res.replace('菲菲', '你男神') res = res.replace('我', '你男神') print("智能回复>>", res) return res 为粉丝们额外添加的功能:根据女友输入的内容自定义回复 我自己添加的内容太肉麻的,不太适合分享给你们哈。

于是我就给你们做多了一个自定义回复的功能。

嘿嘿!那就是独一无二的代码了 坚持着你们直接能使用代码不做任何修改的原则,我就不让你们在代码里面添加了,当你第一次运行此代码的时候会自动创建一个txt文件(甚至还不用让你创建文件),你就可以在txt文件中自定义回复内容了。

使用异常处理模块try来尝试open读取名为“自定义回复.txt”的文件,若不存在 except 就创建,若已存在直接读取即可。

操作读取的字符串逐个添加到zidingyi字典中,判断输入的语句是否在zidingyi.keys()中即可做出相应回复。

添加后的效果图:

zidingyi = {}

try: with open("自定义回复.txt", "r", encoding='utf8') as f: asd = f.readlines() print(asd) for line in asd: line = line.strip('\n') wen, da = line.split(':', 1) zidingyi[wen] = da except: with open("自定义回复.txt", "w+", encoding='utf8') as f: f.write('提示——>采用“输入:回复”格式 如——>你吃饭了吗?

:我吃饭啦 回车以继续下一自定义回复(注意使用英文的冒号)') with open("自定义回复.txt", "r", encoding='utf8') as f: asd = f.readlines() print(asd) for line in asd[1:]: line = line.strip('\n') wen, da = line.split(':', 1) zidingyi[wen] = da print(line) print(zidingyi) 完整代码:

from tkinter import *

def liaotian(): global b import time b = 3

def mecha(): global b b += 2 console.insert('end', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n') console.insert('end', str(Entry11.get()) + '\n') console.mark_set(str(b - 1), str(b - 1) + '.0') console.mark_set(str(b), str(b) + '.0') console.tag_add(str(b), str(b - 1), str(b)) console.tag_config(str(b), foreground='blue') console.see(END) console.update() console.insert('end', time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n') console.insert('end', aicha() + '\n') console.mark_set(str(b - 1), str(b - 1) + '.0') console.mark_set(str(b), str(b) + '.0') console.tag_add(str(b), str(b - 1), str(b)) console.tag_config(str(b), foreground='red') console.see(END) Entry11.delete(0, END) console.update()

def test_fun(self): mecha()

def aicha(): global b b += 2 msg = str(Entry11.get()) if msg in zidingyi.keys(): res = zidingyi[msg] return res else: import urllib import requests def qingyunke(msg): url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(urllib.parse.quote(msg)) html = requests.get(url) return html.json()["content"]

print("原话>>", msg) res = qingyunke(msg) res = res.replace('菲菲', '你男神') res = res.replace('我', '你男神') print("智能回复>>", res) return res

zidingyi = {} try: with open("自定义回复.txt", "r", encoding='utf8') as f: asd = f.readlines() print(asd) for line in asd: line = line.strip('\n') wen, da = line.split(':', 1) zidingyi[wen] = da except: with open("自定义回复.txt", "w+", encoding='utf8') as f: f.write('提示——>采用“输入:回复”格式 如——>你吃饭了吗?

:我吃饭啦 回车以继续下一自定义回复(注意使用英文的冒号)') with open("自定义回复.txt", "r", encoding='utf8') as f: asd = f.readlines() print(asd) for line in asd[1:]: line = line.strip('\n') wen, da = line.split(':', 1) zidingyi[wen] = da print(line) print(zidingyi) win1 = Tk() win1.geometry('400x644+100+100') win1.title('男神的AI分身') Label11 = Label(win1, text='你男神', font=('黑体', 12), anchor='center').place(y=13, x=15, width=380, height=20) Entry11 = Entry(win1, font=('等线', 11), width=70) Entry11.place(y=600, x=15, width=310, height=26) Button11 = Button(win1, text='发送', font=('等线', 11), command=mecha).place(y=598, x=328, width=65, height=30) console = Text(win1, font=('等线', 11)) console.place(y=35, x=15, width=368, height=550) console.insert(1.0, ' 欢迎来到你与男神的小天地!

\n 你可以把你想说的内容输入到下面的输入框哦\n') console.mark_set('markOne', 1.0) console.mark_set('markTwo', 3.0) console.tag_add('tag1', 'markOne', 'markTwo') console.tag_config('tag1', foreground='red') win1.bind("", test_fun) win1.mainloop()

liaotian()

怎么样,是不是特别简单~快复制去送给你心中的那个女神吧~ 如果有帮助到你的,麻烦点赞收藏关注一下,后面会不定期更新自己写的一些有趣的python代码 再次感谢那些不离不弃的铁粉,我们下篇见~

相关文章