一个小功能 一个函数可以搞定 为啥大佬们都喜欢分成好多
题目是:这有什么讲究吗
小甲鱼的代码:
user_data = {}
def new_user():
prompt = '请输入用户名:'
while True:
name = input(prompt)
if name in user_data:
prompt = '此用户名已经被使用,请重新输入:'
continue
else:
break
passwd = input('请输入密码:')
user_data = passwd
print('注册成功,赶紧试试登录吧^_^')
def old_user():
prompt = '请输入用户名:'
while True:
name = input(prompt)
if name not in user_data:
prompt = '您输入的用户名不存在,请重新输入:'
continue
else:
break
passwd = input('请输入密码:')
pwd = user_data.get(name)
if passwd == pwd:
print('欢迎进入XXOO系统,请点右上角的X结束程序!')
else:
print('密码错误!')
def showmenu():
prompt = '''
|--- 新建用户:N/n ---|
|--- 登录账号:E/e ---|
|--- 推出程序:Q/q ---|
|--- 请输入指令代码:'''
while True:
chosen = False
while not chosen:
choice = input(prompt)
if choice not in 'NnEeQq':
print('您输入的指令代码错误,请重新输入:')
else:
chosen = True
if choice == 'q' or choice == 'Q':
break
if choice == 'n' or choice == 'N':
new_user()
if choice == 'e' or choice == 'E':
old_user()
showmenu()
我的代码:
dict_user = {}
def order_input ():
while True:
print ('|--- 新建用户:N/n ---|')
print ('|--- 登录用户:E/e ---|')
print ('|--- 退出程序:Q/q ---|')
order = input('|--- 请输入指令代码:')
if order.isalpha():
if order == 'N' or order == 'n':
name = input('请输入用户名:')
while name in dict_user.keys():
name = input('此用户名已经被使用,请重新输入:')
else:
password = input('请输入密码:')
dict_user = password
print('注册成功,赶紧试试登陆吧\n')
elif order == 'E' or order == 'e':
name = input('请输入用户名:')
while name not in dict_user.keys():
name = input('您输入的用户名不存在,请重新输入:')
else:
password = input('请输入密码:')
if password == dict_user:
print ('欢迎进入XXOO系统,请点击右上角的X结束程序!')
break
else:
print ('密码错误!')
elif order == 'Q' or order == 'q':
break
else :
print ('|--- 输入有误!请重新输入! ---|\n')
else :
print ('|--- 输入有误!请重新输入! ---|\n')
order_input()
解耦 本帖最后由 sunrise085 于 2020-9-13 22:55 编辑
现阶段是学习过程,所能接触到的程序最大也不过几百行代码。
真正编写大型程序的时候几万几十万行代码,写在一个函数中实现,如何调试?
大型程序也不是一个人完成的,都是分成若干个模块,一个团队甚至几个团队共同编写的,怎么可能把所有内容写在一个函数中,当然是需要每个模块写成一个函数或者一个文件,这样既方便任务峰,也方便调试,还可以划分责任,还有就是后来者能够很方便的看到那个模块是干什么的
再者,大型程序中,都有很多功能模块是重复代码,这么分模块编程,能够重复利用,否则在很多地方需要多次出现相同或类似的代码,增加程序的代码量 定义函数,方便重复调用某一功能,代码简洁,小段体会不到,写个几千行才会点感觉
而且便于后期维护,特别是大量代码时,BUG都找不到在哪,头秃,分开定义功能函数起码能排除某些确定的函数代码是无误的
便于其他人理解代码的意思,否则一大坨在那,看不懂啊
函数有 松耦合 和 紧耦合
松耦合 代表两个函数之间尽量减少不必要的关联
紧耦合 代表两个函数之间缺一不可
将一个项目写成多个模块或者函数有利于整体的修改和调用
你想,如果后期你要修改一个元素或者其中一个功能,让你重构或者说重写一整篇代码,工作量是非常大的 更好的复用 功能和功能放一起,流程和流程放一起,后台和后台放一起,这样各个部门才能协调。
不能说大公司就一个部门吧?
得有前端设计,逻辑运算,后台数据处理才算完整的程序。
页:
[1]