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
文件的查看与创建
下课!



