zoukankan      html  css  js  c++  java
  • 20190902 函数

    函数

    需定义函数,类似于定义变量

    创建工具(定义阶段只检测语法,不执行代码)

    想要运行函数,首先需要调用

    函数相当于一个工具

    函数分开工具,不会减少代码量

    1.函数的语法

    def 函数名(工具名-->相当于变量名):      #注意():  
        <函数实现的功能>
    
    使用的时候直接调用
    函数名 +()
    
    

    2.定义函数的三种方式

    1.空函数

    def 函数():
        #todo:注册功能,  暂时不写
        pass      #以后可以跳入   指令: #TODO:
    
    

    2.有参函数

    设定参数的函数

    def compare(num1,num2):
        if num1>num2
        	print(num1)
        else :
            print(num2)
    compare(30,40)
    # 可以直接更改调用里的数据,打印时会根据大小输出.
    

    3.无参函数

    没有参数不需要设置参数

    def func():
        print()
    func()
    #使用的时候直接调用
    

    3.函数的返回值

    return

    1. return是一个函数结束的标志,一个函数可以有多个return

    2. return的返回值可以返回任意数据类型

    3. return的返回值无个数限制,可以用逗号隔开返回多个值.

      ​ 0个:返回none

      ​ 1个:返回值是该值本身

      ​ 多个:返回值是元组

    # 为什么要有返回值
    def max_self(salary_x, salary_y):
        if salary_x > salary_y:
            return salary_x
        else:
            return salary_y
    
    
    max_salary = max_self(20000, 30000)
    print(max_salary*12)
    

    4.函数的参数

    def compare(num1,num2):   #形参:一般具有描述意义,名字.
                                   接受变量值,接受实参
        if num1>num2
        	print(num1)
        else :
            print(num2)
    compare(30,40)             #实参:具有实际的意义,具体的一个值
    

    1.形参

    本质就是变量名

    位置形参:

    从左到右一个一个的写过去定义的形参,称为位置形参.

    位置形参与位置实参的个数一致

    按照位置定义的形参,都必须被传值,多一个不行,少一个也不行。

    默认形参

    def compare(num1,num2=140):   #将位置形参赋值固定作为默认形参
        if num1>num2
        	print(num1)
        else :
            print(num2)
    compare(30)           #输入的值就变为第一个,第二个是默认形参
    compare(30,80)     #如果有值,则用输入的值
    

    2.实参

    函数调用阶段括号内的参数,本质是变量的值.

    位置实参

    函数调用阶段,从左到右的顺序依次定义的实参,称之为位置实参

    按照位置为对应的形参依次传值

    关键字实参

    在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参。

    func(y=1,x=2)
    

    特点:可以打破位置的限制,但仍能为指定的形参赋值.

    1. 可以混用位置实参和关键字实参,但是位置实参必须在关键字实参的左边。
    2. 可以混用位置实参和关键字实参,但不能对一个形参重复赋值。
    def func(x, y):
        print(x)
        print(y)
        
    func(x, y=2)
    func(y=2, x)  # SyntaxError: positional argument follows keyword argument
    func(x, x=1)  # NameError: name 'x' is not defined
    

    4.编写登录注册功能

    #注册阶段
    def zhuce():
        print("注册功能")
        user_name=input("请输入注册用户名:")
        # print('用户名:', user_name)
        user_pwd=input('请输入你的登录密码:')
        # print("用户密码:",user_pwd)
        with open('用户档案.txt','a',encoding='utf8') as f:
            if ":" in user_name :
                print('包含特殊字符请重新输入')
            else :
                f.write(f'{user_name}:{user_pwd}')
                # f.write(user_name,user_pwd)
                print('保存成功')
    
    #登录阶段
    
    def denglu():
        print('登录界面')
        with open ('用户档案.txt','r',encoding='utf8') as f:
            jilu=f.read()
            jilu_biao=jilu.split(":")
            print(jilu_biao)
        #获取用户登录信息列表
        name,pwd=jilu_biao[0],jilu_biao[1]
        # #定义登录用户的密码提取位置
        #
        denglu_name=input("请输入登录名:")
        denglu_pwd=input("请输入登录密码:")
        #用户登录时输入密码
    
        if denglu_name == name and pwd==denglu_pwd:
            #判断登录用户与记录中注册密码是否相等
            print("登录成功")
        else :
            print('登录失败')
    
    # 首次注册
    zhuce()
    
    # 登录
    denglu()
    
    
    
    
  • 相关阅读:
    mybatis plus 执行sql
    springboot 打印 mybatisplus 的sql
    easyexcel 简单使用
    springboot ehcache
    easyexcel 时间转换
    springboot stopwatch
    c# 开机自动启动
    sqlHelper
    DirectX录音
    c# 发邮件
  • 原文地址:https://www.cnblogs.com/fwzzz/p/11448603.html
Copyright © 2011-2022 走看看