栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

小学生用python做的原创操作系统(ScrptiOS 第一篇)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小学生用python做的原创操作系统(ScrptiOS 第一篇)

hello,这里是又菜又逊又爱装13的中国小学生Moxn!(笑)

进入正题,我今天做了一个叫ScrptiOS的操作系统,来给大家分享并解释一下。废话少说,上代码!

(此次编程环境为Pycharm,配置Python3.10,不喜勿喷!!!)

import os
import time

def todayData():
    print(f"""{time.ctime()}
                            """)


def tomorrowData():
    dataSplit = time.ctime().split()
    dataSplit[2] = (int(dataSplit[2]) + 1)
    if dataSplit[1] == "Dec" and int(dataSplit[2]) == 31:
        dataSplit[-1] = (int(dataSplit[-1]) + 1)

    if int(dataSplit[2]) == 28:
        if dataSplit[1] == "Feb":
            dataSplit[1] = "Mar"
            dataSplit[2] = 1
    elif int(dataSplit[2]) == 31:
        if dataSplit[1] == "Jan":
            dataSplit[1] = "Feb"
            dataSplit[2] = 1
        elif dataSplit[1] == "Mar":
            dataSplit[1] = "Apr"
            dataSplit[2] = 1
        elif dataSplit[1] == "May":
            dataSplit[1] = "Jun"
            dataSplit[2] = 1
        elif dataSplit[1] == "Jul":
            dataSplit[1] = "Aug"
            dataSplit[2] = 1
        elif dataSplit[1] == "Aug":
            dataSplit[1] = "Sept"
            dataSplit[2] = 1
        elif dataSplit[1] == "Oct":
            dataSplit[1] = "Nov"
            dataSplit[2] = 1
        elif dataSplit[1] == "Dec":
            dataSplit[1] = "Jan"
            dataSplit[2] = 1
    elif int(dataSplit[2] == 30):
        if dataSplit[1] == "Apr":
            dataSplit[1] = "May"
            dataSplit[2] = 1
        elif dataSplit[1] == "Jun":
            dataSplit[1] = "Jul"
            dataSplit[2] = 1
        elif dataSplit[1] == "Sep" or "Sept":
            dataSplit[1] = "Oct"
            dataSplit[2] = 1
        elif dataSplit[1] == "Nov":
            dataSplit[1] = "Dec"
            dataSplit[2] = 1

    if dataSplit[0] == "Mon":
        dataSplit[0] = "Tue"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
    """)
    elif dataSplit[0] == "Tue":
        dataSplit[0] = "Wed"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Wed":
        dataSplit[0] = "Thur"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                        """)
    elif dataSplit[0] == "Thur":
        dataSplit[0] = "Fri"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Fri":
        dataSplit[0] = "Sat"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Sat":
        dataSplit[0] = "Sun"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Sun":
        dataSplit[0] = "Mon"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)


def yesterdayData():
    dataSplit = time.ctime().split()
    dataSplit[2] = (int(dataSplit[2]) - 1)
    if dataSplit[1] == "Jan" and int(dataSplit[2]) == 1:
        dataSplit[-1] == (int(dataSplit[-1]) - 1)
    if int(dataSplit[2]) == 1:
        if dataSplit[1] == "Jan":
            dataSplit[1] = "Dec"
            dataSplit[2] = 31
        elif dataSplit[1] == "Feb":
            dataSplit[1] == "Jan"
            dataSplit[2] = 31
        elif dataSplit[1] == "Mar":
            dataSplit[1] = "Feb"
            dataSplit[2] = 28
        elif dataSplit[1] == "Apr":
            dataSplit[1] == "Mar"
            dataSplit[2] = 31
        elif dataSplit[1] == "May":
            dataSplit[1] = "Apr"
            dataSplit[2] = 30
        elif dataSplit[1] == "Jun":
            dataSplit[1] == "May"
            dataSplit[2] = 31
        elif dataSplit[1] == "Jul":
            dataSplit[1] = "Jun"
            dataSplit[2] = 30
        elif dataSplit[1] == "Aug":
            dataSplit[1] == "Jul"
            dataSplit[2] = 31
        elif dataSplit[1] == "Sep" or "Sept":
            dataSplit[1] = "Aug"
            dataSplit[2] = 31
        elif dataSplit[1] == "Oct":
            dataSplit[1] == "Sept"
            dataSplit[1] = 30
        elif dataSplit[1] == "Nov":
            dataSplit[1] = "Oct"
            dataSplit[2] = 31
        elif dataSplit[1] == "Dec":
            dataSplit[1] == "Oct"
            dataSplit[2] = 30

    if dataSplit[0] == "Mon":
        dataSplit[0] = "Sun"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
        """)
    elif dataSplit[0] == "Tue":
        dataSplit[0] = "Mon"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Wed":
        dataSplit[0] = "Tue"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Thur":
        dataSplit[0] = "Wed"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Fri":
        dataSplit[0] = "Thur"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Sat":
        dataSplit[0] = "Fri"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Sun":
        dataSplit[0] = "Sat"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)


def NEL_main():
    pass


def err():
    print("""BAD COMMAND!
    """)


def ScrptiOS_main():
    fileNames = []
    fileNums = []
    fileContents = []
    fileTypes = []
    isNum1 = True
    isFileName = True
    fileNum = 0
    fileNamesNum = 1
    fileDatas = []

    while True:
        command = input("OS:// ")
        split = command.split()
        lenSplit = len(split)

        if command != "":
            if split[0] == "data":
                if lenSplit == 1:
                    todayData()
                elif lenSplit == 2:
                    if lenSplit == 2:
                        if split[-1] == "today":
                            todayData()
                        elif split[-1] == "tomorrow":
                            tomorrowData()
                        elif split[-1] == "yesterday":
                            yesterdayData()
            elif split[0] == "goto":
                if lenSplit == 2:
                    os.system(f"start {split[-1]}")
                    print("")
                else:
                    err()
            elif split[0] == "file":
                if lenSplit == 2:
                    if split[-1] == "/fs":
                        if isNum1 is True:
                            fileNames.append("sans")
                            fileTypes.append("Word")
                            fileContents.append("")
                            fileNums.append(fileNum)
                            fileDatas.append(time.ctime())
                            isNum1 = False
                            print("""OKay!
                            """)
                        else:
                            fileNames.append(f"sans({fileNamesNum})")
                            fileTypes.append("Word")
                            fileContents.append("")
                            fileNums.append(fileNum)
                            fileNamesNum += 1
                            fileDatas.append(time.ctime())
                            print("""OKay!
                                                        """)
                    elif split[-1] == "/ls":
                        print("NAMES        TYPES        DATAS")
                        num = 0
                        while True:
                            try:
                                print(f"{fileNames[num]}        {fileTypes[num]}        {fileDatas[num]}")
                                num += 1
                            except:
                                print("")
                                break


if __name__ == "__main__":
    ScrptiOS_main()

(一共250多行代码,有点长QAQ)

先看所有的函数:

def todayData():
    print(f"""{time.ctime()}
                            """)

1.todayData函数:

获取当前时间,系统内语法为"data"  或  "data today"

def tomorrowData():
    dataSplit = time.ctime().split()
    dataSplit[2] = (int(dataSplit[2]) + 1)
    if dataSplit[1] == "Dec" and int(dataSplit[2]) == 31:
        dataSplit[-1] = (int(dataSplit[-1]) + 1)

    if int(dataSplit[2]) == 28:
        if dataSplit[1] == "Feb":
            dataSplit[1] = "Mar"
            dataSplit[2] = 1
    elif int(dataSplit[2]) == 31:
        if dataSplit[1] == "Jan":
            dataSplit[1] = "Feb"
            dataSplit[2] = 1
        elif dataSplit[1] == "Mar":
            dataSplit[1] = "Apr"
            dataSplit[2] = 1
        elif dataSplit[1] == "May":
            dataSplit[1] = "Jun"
            dataSplit[2] = 1
        elif dataSplit[1] == "Jul":
            dataSplit[1] = "Aug"
            dataSplit[2] = 1
        elif dataSplit[1] == "Aug":
            dataSplit[1] = "Sept"
            dataSplit[2] = 1
        elif dataSplit[1] == "Oct":
            dataSplit[1] = "Nov"
            dataSplit[2] = 1
        elif dataSplit[1] == "Dec":
            dataSplit[1] = "Jan"
            dataSplit[2] = 1
    elif int(dataSplit[2] == 30):
        if dataSplit[1] == "Apr":
            dataSplit[1] = "May"
            dataSplit[2] = 1
        elif dataSplit[1] == "Jun":
            dataSplit[1] = "Jul"
            dataSplit[2] = 1
        elif dataSplit[1] == "Sep" or "Sept":
            dataSplit[1] = "Oct"
            dataSplit[2] = 1
        elif dataSplit[1] == "Nov":
            dataSplit[1] = "Dec"
            dataSplit[2] = 1

    if dataSplit[0] == "Mon":
        dataSplit[0] = "Tue"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
    """)
    elif dataSplit[0] == "Tue":
        dataSplit[0] = "Wed"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Wed":
        dataSplit[0] = "Thur"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                        """)
    elif dataSplit[0] == "Thur":
        dataSplit[0] = "Fri"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Fri":
        dataSplit[0] = "Sat"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Sat":
        dataSplit[0] = "Sun"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Sun":
        dataSplit[0] = "Mon"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)

2.dataTomorrow函数:

2-1:

dataSplit = time.ctime().split()
dataSplit[2] = (int(dataSplit[2]) + 1)

这里是把一个time.ctime拆分为一个单独的列表(dataSplit),具体要看time.ctime的格式:

Wed Apr 27 18:08:31 2022

拆分后为:

["Wed" "Apr" "27" "18:08:31" "2022"]
星期几  几月  几号  几点       几年

再回来看: 

dataSplit = time.ctime().split()
dataSplit[2] = (int(dataSplit[2]) + 1)

第二行的意思是将”几号“int后加1(即明天) 

2-2:

if dataSplit[1] == "Dec" and int(dataSplit[2]) == 31:
    dataSplit[-1] = (int(dataSplit[-1]) + 1)
    dataSplit[2] = 1

这里是如果时间是2022.12.31(即2022年的最后一天),则跳转到2023.1.1(即2023的第一天)

2-3:

if int(dataSplit[2]) == 28:
        if dataSplit[1] == "Feb":
            dataSplit[1] = "Mar"
            dataSplit[2] = 1
    elif int(dataSplit[2]) == 31:
        if dataSplit[1] == "Jan":
            dataSplit[1] = "Feb"
            dataSplit[2] = 1
        elif dataSplit[1] == "Mar":
            dataSplit[1] = "Apr"
            dataSplit[2] = 1
        elif dataSplit[1] == "May":
            dataSplit[1] = "Jun"
            dataSplit[2] = 1
        elif dataSplit[1] == "Jul":
            dataSplit[1] = "Aug"
            dataSplit[2] = 1
        elif dataSplit[1] == "Aug":
            dataSplit[1] = "Sept"
            dataSplit[2] = 1
        elif dataSplit[1] == "Oct":
            dataSplit[1] = "Nov"
            dataSplit[2] = 1
        elif dataSplit[1] == "Dec":
            dataSplit[1] = "Jan"
            dataSplit[2] = 1
    elif int(dataSplit[2] == 30):
        if dataSplit[1] == "Apr":
            dataSplit[1] = "May"
            dataSplit[2] = 1
        elif dataSplit[1] == "Jun":
            dataSplit[1] = "Jul"
            dataSplit[2] = 1
        elif dataSplit[1] == "Sep" or "Sept":
            dataSplit[1] = "Oct"
            dataSplit[2] = 1
        elif dataSplit[1] == "Nov":
            dataSplit[1] = "Dec"
            dataSplit[2] = 1

设置如果是每个月的最后一天,便跳转到下一个月的第一天

2-4:

if dataSplit[0] == "Mon":
        dataSplit[0] = "Tue"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
    """)
    elif dataSplit[0] == "Tue":
        dataSplit[0] = "Wed"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Wed":
        dataSplit[0] = "Thur"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                        """)
    elif dataSplit[0] == "Thur":
        dataSplit[0] = "Fri"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Fri":
        dataSplit[0] = "Sat"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Sat":
        dataSplit[0] = "Sun"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Sun":
        dataSplit[0] = "Mon"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)

如果今天是星期一,则星期几这一项设为星期二,几号一项加1

def yesterdayData():
    dataSplit = time.ctime().split()
    dataSplit[2] = (int(dataSplit[2]) - 1)
    if dataSplit[1] == "Jan" and int(dataSplit[2]) == 1:
        dataSplit[-1] == (int(dataSplit[-1]) - 1)
    if int(dataSplit[2]) == 1:
        if dataSplit[1] == "Jan":
            dataSplit[1] = "Dec"
            dataSplit[2] = 31
        elif dataSplit[1] == "Feb":
            dataSplit[1] == "Jan"
            dataSplit[2] = 31
        elif dataSplit[1] == "Mar":
            dataSplit[1] = "Feb"
            dataSplit[2] = 28
        elif dataSplit[1] == "Apr":
            dataSplit[1] == "Mar"
            dataSplit[2] = 31
        elif dataSplit[1] == "May":
            dataSplit[1] = "Apr"
            dataSplit[2] = 30
        elif dataSplit[1] == "Jun":
            dataSplit[1] == "May"
            dataSplit[2] = 31
        elif dataSplit[1] == "Jul":
            dataSplit[1] = "Jun"
            dataSplit[2] = 30
        elif dataSplit[1] == "Aug":
            dataSplit[1] == "Jul"
            dataSplit[2] = 31
        elif dataSplit[1] == "Sep" or "Sept":
            dataSplit[1] = "Aug"
            dataSplit[2] = 31
        elif dataSplit[1] == "Oct":
            dataSplit[1] == "Sept"
            dataSplit[1] = 30
        elif dataSplit[1] == "Nov":
            dataSplit[1] = "Oct"
            dataSplit[2] = 31
        elif dataSplit[1] == "Dec":
            dataSplit[1] == "Oct"
            dataSplit[2] = 30

    if dataSplit[0] == "Mon":
        dataSplit[0] = "Sun"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
        """)
    elif dataSplit[0] == "Tue":
        dataSplit[0] = "Mon"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Wed":
        dataSplit[0] = "Tue"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                            """)
    elif dataSplit[0] == "Thur":
        dataSplit[0] = "Wed"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Fri":
        dataSplit[0] = "Thur"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Sat":
        dataSplit[0] = "Fri"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)
    elif dataSplit[0] == "Sun":
        dataSplit[0] = "Sat"
        print(f"""{dataSplit[0]} {dataSplit[1]} {dataSplit[2]} {dataSplit[3]} {dataSplit[4]}
                                """)

3.yesterdData函数:

和tomorrow函数差不多的意思

def NEL_main():
    pass

内置编程语言newScrptiLanguage函数,未制作

def err():
    print("""BAD COMMAND!
    """)

4.err函数

报错,不说了

def ScrptiOS_main():
    fileNames = []
    fileNums = []
    fileContents = []
    fileTypes = []
    isNum1 = True
    isFileName = True
    fileNum = 0
    fileNamesNum = 1
    fileDatas = []

    while True:
        command = input("OS:// ")
        split = command.split()
        lenSplit = len(split)

        if command != "":
            if split[0] == "data":
                if lenSplit == 1:
                    todayData()
                elif lenSplit == 2:
                    if lenSplit == 2:
                        if split[-1] == "today":
                            todayData()
                        elif split[-1] == "tomorrow":
                            tomorrowData()
                        elif split[-1] == "yesterday":
                            yesterdayData()
            elif split[0] == "goto":
                if lenSplit == 2:
                    os.system(f"start {split[-1]}")
                    print("")
                else:
                    err()
            elif split[0] == "file":
                if lenSplit == 2:
                    if split[-1] == "/fs":
                        if isNum1 is True:
                            fileNames.append("sans")
                            fileTypes.append("Word")
                            fileContents.append("")
                            fileNums.append(fileNum)
                            fileDatas.append(time.ctime())
                            isNum1 = False
                            print("""OKay!
                            """)
                        else:
                            fileNames.append(f"sans({fileNamesNum})")
                            fileTypes.append("Word")
                            fileContents.append("")
                            fileNums.append(fileNum)
                            fileNamesNum += 1
                            fileDatas.append(time.ctime())
                            print("""OKay!
                                                        """)
                    elif split[-1] == "/ls":
                        print("NAMES        TYPES        DATAS")
                        num = 0
                        while True:
                            try:
                                print(f"{fileNames[num]}        {fileTypes[num]}        {fileDatas[num]}")
                                num += 1
                            except:
                                print("")
                                break

5.main函数:

5-1:

fileNames = []
fileNums = []
fileContents = []
fileTypes = []
isNum1 = True
isFileName = True
fileNum = 0
fileNamesNum = 1
fileDatas = []

分别是:

        文件名

        文件编号

        文件内容

        文件类型(即后缀名)

        第一个文件

        是文件名

        文件的数字

        文件名的数字

        文件创建的时间

5-2:

command = input("OS:// ")
        split = command.split()
        lenSplit = len(split)

懂的都懂

5-3:

if command != "":
            if split[0] == "data":
                if lenSplit == 1:
                    todayData()
                elif lenSplit == 2:
                    if lenSplit == 2:
                        if split[-1] == "today":
                            todayData()
                        elif split[-1] == "tomorrow":
                            tomorrowData()
                        elif split[-1] == "yesterday":
                            yesterdayData()
            elif split[0] == "goto":
                if lenSplit == 2:
                    os.system(f"start {split[-1]}")
                    print("")
                else:
                    err()

网址跳转和日期判断

5-4:

elif split[0] == "file":
                if lenSplit == 2:
                    if split[-1] == "/fs":
                        if isNum1 is True:
                            fileNames.append("sans")
                            fileTypes.append("Word")
                            fileContents.append("")
                            fileNums.append(fileNum)
                            fileDatas.append(time.ctime())
                            isNum1 = False
                            print("""OKay!
                            """)
                        else:
                            fileNames.append(f"sans({fileNamesNum})")
                            fileTypes.append("Word")
                            fileContents.append("")
                            fileNums.append(fileNum)
                            fileNamesNum += 1
                            fileDatas.append(time.ctime())
                            print("""OKay!
                                                        """)
                    elif split[-1] == "/ls":
                        print("NAMES        TYPES        DATAS")
                        num = 0
                        while True:
                            try:
                                print(f"{fileNames[num]}        {fileTypes[num]}        {fileDatas[num]}")
                                num += 1
                            except:
                                print("")
                                break

文件的查看与创建

下课!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840100.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号