关于#python#的问题,请各位专家解答!

1.

img


Python,程序的解答,用户名和密码的输入问题程序的解读

img


正确代码如下:


def login(username, password):
    if (username == "seven" or username == "alex") and password == "123":
        print("登陆成功!")
        return True
    else:
        print("登陆失败!")
        return False


def main():
    username = input("请输入用户名:")
    password = input("请输入密码:")
    if not login(username, password):
        for i in range(3):
            username = input("请重新输入用户名,第%d次:" % (i + 1))
            password = input("请重新输入密码,第%d次:" % (i + 1))
            if login(username, password):
                break


if __name__ == '__main__':
    main()

最后建议可登入的用户名和密码放在数组里面。

这不写的挺好么,解释啥。。。

在for循环里,加一个验证,if login成立时,break循环

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7582340
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Python,自己修改的爬取淘宝网页的代码 修改Python爬虫,爬取淘宝商品信息也不报错,也不输出信息的错误
  • 同时,你还可以查看手册:python- 用于操作列表的工具 中的内容
  • 除此之外, 这篇博客: Python函数(函数定义、函数调用)用法详解中的 Python函数值传递和引用传递(包括形式参数和实际参数的区别) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 通常情况下,定义函数时都会选择有参数的函数形式,函数参数的作用是传递数据给函数,令其对接收的数据做具体的操作处理。

    在使用函数时,经常会用到形式参数(简称“形参”)和实际参数(简称“实参”),二者都叫参数,之间的区别是:

    • 形式参数:在定义函数时,函数名后面括号中的参数就是形式参数,例如:

      #定义函数时,这里的函数参数 obj 就是形式参数
      def demo(obj)    
      	print(obj)
      
    • 实际参数:在调用函数时,函数名后面括号中的参数称为实际参数,也就是函数的调用者给函数的参数。例如:

      a = "C语言中文网"
      #调用已经定义好的 demo 函数,此时传入的函数参数 a 就是实际参数
      demo(a)
      

    实参和形参的区别,就如同剧本选主角,剧本中的角色相当于形参,而演角色的演员就相当于实参。

    明白了什么是形参和实参后,再来想一个问题,那就是实参是如何传递给形参的呢?

    Python 中,根据实际参数的类型不同,函数参数的传递方式可分为 2 种,分别为值传递和引用(地址)传递:

    1. 值传递:适用于实参类型为不可变类型(字符串、数字、元组);
    2. 引用(地址)传递:适用于实参类型为可变类型(列表,字典);

    值传递和引用传递的区别是,函数参数进行值传递后,若形参的值发生改变,不会影响实参的值;而函数参数继续引用传递后,改变形参的值,实参的值也会一同改变。

    例如,定义一个名为 demo 的函数,分别为传入一个字符串类型的变量(代表值传递)和列表类型的变量(代表引用传递):

    def demo(obj) :    
    	obj += obj   
        print("形参值为:",obj)
    print("-------值传递-----")
    a = "C语言中文网"
    print("a的值为:",a)
    demo(a)
    print("实参值为:",a)
    print("-----引用传递-----")
    a = [1,2,3]
    print("a的值为:",a)
    demo(a)
    print("实参值为:",a)
    

    运行结果为:

    -------值传递-----
    a的值为: C语言中文网
    形参值为: C语言中文网C语言中文网
    实参值为: C语言中文网
    -----引用传递-----
    a的值为: [1, 2, 3]
    形参值为: [1, 2, 3, 1, 2, 3]
    实参值为: [1, 2, 3, 1, 2, 3]
    

    分析运行结果不难看出,在执行值传递时,改变形式参数的值,实际参数并不会发生改变;而在进行引用传递时,改变形式参数的值,实际参数也会发生同样的改变。

  • 您还可以看一下 Toby老师的python机器学习-乳腺癌细胞挖掘课程中的 如何创建python虚拟编程环境-避免项目包版本冲突(选修)小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题:关于Python中用户名和密码输入的问题,您想了解哪个方面,例如实现用户名和密码的输入验证、保护用户名和密码的安全等?

    参考资料给出的是与软件测试相关的内容,并没有提到与Python中用户名和密码输入相关的信息。请您提供更具体的问题描述,以便我们能够更好地回答您的问题。如果您对Python中用户名和密码输入的任何方面有疑问,请提供具体的问题。