电子词典

发布时间:2024-11-16 23:00

电子阅读器内置有词典功能,遇到生词可即时查询。 #生活乐趣# #阅读乐趣# #电子阅读#

#!/usr/bin/env python3
#coding=utf-8
from socket import *
import sys
import getpass 


def main():
    if len(sys.argv) < 3:
        print('argv is error')
        return
    HOST = sys.argv[1]
    PORT = int(sys.argv[2])
    s = socket()
    s.connect((HOST,PORT))

    while True:
        print('''
            ==========Welcome=========
            --1.注册   2.登录   3.退出--
            ==========================
            ''')
        try:
            cmd = int(input("输入选项(1,2or3)>>"))
        except Exception:
            print("命令错误")
            continue
        if cmd not in [1,2,3]:
            print("请输入正确选项")
            sys.stdin.flush() #清除标准输入
            continue
        elif cmd == 1:
            if do_register(s) == 0:
                print("注册成功!")
            else:
                print("注册失败!")
        elif cmd == 2:
            name = do_login(s)
            if name != 1:
                print("登录成功!")
                login(s,name)
            else:
                print("登录失败!")
        elif cmd == 3:
            s.send(b'E')
            sys.exit("谢谢使用")

def do_register(s):
    while True:
        name = input("User:")
        passwd = getpass.getpass()
        passwd1 = getpass.getpass("Confirm:")
        if (' ' in name) or (' ' in passwd):
            print('用户名或密码不许有空格')
            continue 
        if passwd != passwd1:
            print("密码不一致")
            continue 

        msg = 'R {} {}'.format(name,passwd)
        #发送请求
        s.send(msg.encode())
        #收到回复
        data = s.recv(128).decode()

        if data == 'OK':
            return 0
        elif data == "EXISTS":
            print("用户已存在")
            return 1
        else:
            return 1


def do_login(s):
    name = input("User:")
    passwd = getpass.getpass()
    msg = "L {} {}".format(name,passwd)
    s.send(msg.encode())
    data = s.recv(128).decode()

    if data == 'OK':
        return name
    else:
        print("用户名或密码不正确")
        return 1


def do_query(s,name):
    while True:
        word = input("单词:")
        if word == '##':
            break

        msg = 'Q {} {}'.format(name,word)
        s.send(msg.encode())
        data = s.recv(128).decode()
        if data == 'OK':
            data = s.recv(2048).decode()
            print(data)
        else:
            print("没有找到该单词")


def do_history(s,name):
    msg = 'H {}'.format(name)
    s.send(msg.encode())
    data = s.recv(128).decode()

    if data == 'OK':
        while True:
            data = s.recv(1024).decode()
            if data == '##':
                break
            print(data)
    else:
        print('没有历史记录')

def login(s,name):
    while True:
        print('''
            ==============查询界面===========
            --1.查词    2.历史记录   3.退出--
            ================================
            ''')
        try:
            cmd = int(input("输入选项(1,2or3)>>"))
        except Exception:
            print("命令错误")
            continue
        if cmd not in [1,2,3]:
            print("请输入正确选项")
            sys.stdin.flush() #清除标准输入
            continue
        elif cmd == 1:
            do_query(s,name)
        elif cmd == 2:
            do_history(s,name)
        elif cmd == 3:
            return

if __name__ == "__main__":
    main()
 

网址:电子词典 https://www.yuejiaxmz.com/news/view/94319

相关内容

大仲马美食词典(壹力文库)【全本
生活电器广告词精选
连队生活小词典
妙组词
有关厨房电器的广告词
掌组词
爱词霸
电子维修是什么
【饲养】饲养的近义词
8个情感生活感悟经典句子,句句经典走心

随便看看