zoukankan      html  css  js  c++  java
  • day 09 预科

    函数

    def twoSum(nums,target):
        for i in range(len(nums),-1,-1):  # for i in range(4) == for i in [0,1,2,3]
        for j in range(i+1,len(nums)):  # [1,2,3] 
            if nums[i]+num[j]==target:
                returni,j
                
                
    nums=[2,7,11,15]
    target=9
    res=twoSum(nums,target)
    if list(res)==[0,1]
        print('通过')
    else:
        print('不通过')
         
    

    函数:数学中的函数,自变量+因变量---》python函数和数学中的函数毫无瓜葛。

    下水道--》通下水道--》找一个工具(买一个工具--》

    方便拿来就用,不需要关心内部构造)

    函数就相当这个工具---》干一件特定的事

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

    定义函数

    def register():
    # 注册
        print('注册功能')
        username_inp = input('请输入你的用户名:')
        print('username_inp:', username_inp)
        pwd_inp = input('请输入你的密码:')
        print('pwd_inp:', pwd_inp)
    
        with open('user_info.txt', 'a', encoding='utf8') as fa:
            if ':' in username_inp:
                print('输入错误,用户名不能含有 :')
            else:
                fa.write(f'{username_inp}:{pwd_inp}')
                print('保存成功')
    
    
    def login():
        # 登陆
        print('登录功能')
        with open('user_info.txt', 'r', encoding='utf8') as fr:
            data = fr.read()
            data_split = data.split(':')
    
        username, pwd = data_split[0], data_split[1]  # 一次性定义多个变量
        # username = data_split[0]
        # pwd = data_split[1]
    
        username_inp = input('请输入你的用户名:')
        pwd_inp = input('请输入你的密码:')
    
        if username == username_inp and pwd == pwd_inp:
            print('登录成功')
        else:
            print('登录失败')
    
    # 以上只是在定义一个函数,创建工具(函数定义阶段只检测语法,不执行代码)
    
    
    # 如果要运行函数,直接调用
    # login()
    register()
    

    函数定义的三种形式

    空函数

    def register():
        # TODO:注册功能,暂时回话
    

    有参函数(有参数()的函数)

    def compare(x,y):
        # x=10
        # y=10
        if x>y:
            print(x)
        else:
            print(y)
    

    当你使用手电筒,在使用的时候调一下(输入一个参数)

    compare(30,40)

    无参函数

    def func():
        print(1) 
        
    func()    
    

    函数的返回值

    def compare()
       x=10
       y=20
       if x>y:
            print(x)
       else: 
            print(y)  # 20
            
      print(1, compare)  # <function compare at 0x00000255297B1EA0> # 函数内存地址
    # res = compare() # res接收一个变量值(函数的返回值)
    # print('res:',res)
    
    # 不打印,我需要拿到这个值    
     
    

    1.如果函数没有返回值,默认返回None。

    None就是返回值(使用函数后拿到的一个结果)

    2.函数可以通过return返回出返回值

    def compare():
        x=10
        y=20
        if x>y:
            return x
        else:
            return y
        
    res=compare()
    print(res)
    
    

    3.return 可以终止函数

    def print_1_10():
        for i in range(10):
            if i =8:
                return # 终止函数
            print(i)
            
    print_1_10()
    
    

    4.return 可以返回多个值,以列表形式存储

    def return_nums():
        return 10, 100, 1000
    
    res=return_nums()
    print(res[1])
    

    函数的参数

    def compare(num1,num2): # 形(形式)参;一般具有描述意义,毫无作用(接收实参)---》变量名(接收变量值)
        
        if num1>num2:
            print(num1)
        else:
            print(num2)
            
            
            
    compare(80,140)  #实(实际)参:具有实际的意义, 具体的一个值(传给形参)--》变量值
            
    

    形参

    位置形参

    从左到右一个一个写过去,就叫做位置形参。

    默认(默认值)形参:给位置形参一个默认值,让它成为默认形参,以后调用不需要为他传值,但是你为它传值的话,它也会接收。

    默认参数必须得放在最后面(位置参数后面)

    def compare(num1,num2=140): #  形(形式)参:一般具有描述意义,毫无作用(接收实参) --》变量名(接收变量值)
        if num1>num2:
            print(num1)
        else:
            print(num2)
            
            
    compare(80,60)  # 实(实际)参:具有实际的意义,具体的一个值(传给形参)---》 变量值
    compare(180)  #实(实际)参:具有实际的意义,具体的一个值(传给形参) ---》变量值
    
    

    实参

    位置实参

    从左到右一个一个写过,就叫做位置实参,(有多少个位置形参,就必须有多少个位置实参,从左到右依次传值)

    关键字实参

    位置实参加上默认值,然后按照位置形参名传值。

    关键字实参也必须在位置参数后面

    def compare2(num1,num2): # 形(形式)参:一般具有描述意义,毫无作用(接收实参) --》变量名(接收变量值)
        if num1 > um2:
            return num1
        else:
            return num2
        
        def compare4(num1,num2,num3,num4):
            print(num1,num2,num3,num4) # 4 0 2 3
            res1=compare2(num1,num2)
            res2=compare2(num3,num4)
            res3=compare2(res1,res2)
            
            return res3
        
    res=compare4(4,0,num4=2,num3=3)  # 4 0 3 2  #   关键字参数,按照位置形参名给值,这个一般用于参数过多(一般建议函数参数不超过3个)
    print(res)
    
         
    

    后面加的是参数的数据类型,没有限制死; ---》限制返回值

    def f1(num:list,target:int)--》:
        print(nums,target)
        return[1,2]
    
    s='nick' # type:list # 规定了这个变量的数据类型
    
  • 相关阅读:
    php7.4 降级 php7.1 的坑
    python 记录网页 生成pdf
    Mac 安装常用软件环境
    python 2.7 操作 excel
    007整数反转
    006Z字形变换
    005最长回文子串
    004寻找两个正序数组的中位数
    003无重复字符的最长子串
    002两数相加
  • 原文地址:https://www.cnblogs.com/colacheng0930/p/11447086.html
Copyright © 2011-2022 走看看