在python中,如何从一个问题添加到两个列表中
我不知道我是否走错了方向,但我希望你能帮我睁开眼睛。我也不太确定这个问题的措辞是否正确,但我需要这个问题来询问用户他们会选择哪个模块两次,然后将其添加到单独的列表中。我想有更好的方法可以做到这一点 重要的是,我要将用户输入插入列表,而不是其他类型的容器在python中,如何从一个问题添加到两个列表中,python,python-3.x,list,Python,Python 3.x,List,我不知道我是否走错了方向,但我希望你能帮我睁开眼睛。我也不太确定这个问题的措辞是否正确,但我需要这个问题来询问用户他们会选择哪个模块两次,然后将其添加到单独的列表中。我想有更好的方法可以做到这一点 重要的是,我要将用户输入插入列表,而不是其他类型的容器 def Module_selection(lss=[]): print("Welcome, you can pick your module here") modules = ["Programmin
def Module_selection(lss=[]):
print("Welcome, you can pick your module here")
modules = ["Programming 1", "Programming 2", "Networking 1", "Mathematics"]
print(lss)
StudID = input("Please enter your student ID: ")
Password = input("Please enter your password: ")
if StudID.isnumeric():
StudID = int(StudID)
found = 0
for item in lss:
if StudID == item[5] and Password == item[4]:
option = input("""Please select the first module you want to take
1)Programming 1
2)Programming 2
3)Networking 1
4)Mathematics""")
found = 1
if option == "1":
item[6] = modules[0]
break
elif option == "2":
item[6] = modules[1]
break
elif option == "3":
item[6] = modules[2]
break
elif option == "4":
item[6] = modules[3]
break
if found == 0:
print("There is no student with this information")
我可以看出,在计算机编程中,你需要关注的最重要的原则是尽可能将不同的任务分开 例如,您有:
- 检查用户名和密码是否正确的代码
- 询问学生想要学习的课程的代码:
- 联网
- 英式
- 数学等等
def get_和_check_登录_凭据(lss=[]):
StudID=输入(“请输入您的学生ID:”)
密码=输入(“请输入您的密码:”)
如果StudID.isnumeric():
StudID=int(StudID)
找到=0
对于lss中的项目:
如果StudID==项目[5]和密码==项目[4]:
发现=1
如果找到==0:
打印(“没有学生拥有此信息”)
我注意到另外一件事:
您定义了一个包含以下两项代码的函数:
- 处理许多项目
- 只处理一个项目
#一个功能,完成所有功能
def模块_选择(lss=[]):
#此函数处理许多项
#`lss`包含许多项
对于lss中的项目:
#在for循环的内部
#处理一个项目的*大量*代码
以下内容应写成两个独立的函数:代码不应全部包含在一个函数中:
def进程(lss=[]):
对于lss中的项目:
#处理一个项目
过程(项目)
#几乎没有内联代码
#只需调用函数来处理一个项目
def过程_1(项目):
通过
#将处理一个项目的代码放在这里。
下面,我试图清理您检查用户名和密码的代码,但这对我来说毫无意义:
def get_和_check_凭证(项目):
StudID=输入(“请输入您的学生ID:”)
密码=输入(“请输入您的密码:”)
如果StudID.isnumeric():
StudID=int(StudID)
如果StudID==项目[5]和密码==项目[4]:
返回True#允许访问
返回False#禁止访问
请注意:
包含“正确的”学生ID项[5]
包含“正确的”密码项[6]
item
被命名为item
变量名称应始终有意义。
比如说,
- “
”是比“shirt\u size
”更好的变量名s
项”
”中
另外,假设您正在使用一个网站,例如gmail.com
或stackoverflow.com
你输入你的用户名
以下内容与您的代码非常相似:
StudID=input(“请输入您的学生ID:”)
如果StudID==正确的\u用户名:
#选择要注册的课程
其他:
#禁止进入。
#禁止最终用户注册大学课程。
网站如何提前知道正确的学生ID
这就好像计算机已经知道用户应该输入什么用户名
如果stackoverflow.com
是这样的话,那就意味着地球上只有一个人可以登录stackoverflow.com
其他人不能使用stackoverflow.com
我建议搜索学生ID
如果您有一个很长的学生ID列表,您可以搜索该列表以查看是否有用户输入
#举个例子,,
#也许一个叫“约翰·米勒”的学生有学生证
# "8623462"
#
#“8623462”、“3974923”和“2973942”都是示例
#有效学生证的有效期
#
登录={
“8623462”:“密码1234”,
“3974923”:“PA$$WORD”,
“2973942”:“hE11oWoR1D”
}
def get_和_check_凭据(登录):
"""
+--------+--------------------------------------------+
|输出|意义|
+--------+--------------------------------------------+
|0 |最终用户已输入|
||有效的学生id和密码|
||允许进入|
+--------+--------------------------------------------+
|1 |错误1:学生id不是数字|
+--------+--------------------------------------------+
|2 |错误2:数据库中没有学生id|
+--------+--------------------------------------------+
|3 |错误3:用户名正确,但|
||密码错误|
+--------+--------------------------------------------+
只有一条路可以走对
还有上百万种出错的方式。
这就是为什么错误代码0表示一切正常。