• [Python]小甲鱼Python视频第017课(函数


    # -*- coding: utf-8 -*-
    """
    Created on Wed Mar  6 18:49:30 2019
    
    @author: Administrator
    """
                                                      
    """
    测试题:
          
    0. 你有听说过DRY吗?
        Don't repeat yourself
        人类的本质是复读机,但不要总写重复的代码。
           
    1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
        提高代码的复用性
         
    2. 函数可以有多个参数吗?
         可以
    3. 创建函数使用什么关键字,要注意什么?
        要有括号和冒号 
        def func_name():
    4. 请问这个函数有多少个参数?
        def MyFun((x, y), (a, b)):
        return x * y - a * b
        
        不允许这种写法
        
    5. 请问调用以下这个函数会打印什么内容?
    >>> def hello():
            print('Hello World!')
            return
            print('Welcome To FishC.com!')
    
    
    Hello World!
        
        
    动动手:
         
    0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。    
    1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。
    2. 编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。
    """
    
    
    def dds0_pow(x,y):
        result = 1;
        negative = 0;
        
        if y == 0:
            if x == 0:
                return None;
            else:
                return result;
        elif y > 0:
            negative = 0;
        else:
            negative = 1;
            y = -y;
            
        while True:
            result *=x;
            y = y - 1;
            if y == 0:
                break;
        
        if negative == 1:
            return 1/result;
        else:
            return result;
        
    #辗转相除法 https://baike.baidu.com/item/辗转相除法
    def dds1_gcd(x,y):
        bigger , small = (x,y) if x > y else (y,x);
        
        divided  = bigger;
        division = small;
        leaves   = 0;
        while True:
            leaves = divided % division;
            if leaves == 0:
                break;
            else:
                divided = division;
                division = leaves;
                
        return division;
            
    #除2取余
    def dds2_bin(num_dec):
        result = '';
        
        leaves = 0;
        div_result = num_dec;
        while True:
            leaves = div_result % 2;
            div_result = div_result // 2;
            result = str(leaves) + result;
            if div_result == 0:
                break;
    
                
                
        return '0b'+result;
            
        
    print(dds2_bin(255));   
    

      

    ~不再更新,都不让我写公式,博客园太拉胯了
  • 相关阅读:
    2013总结,新的征程开始了!
    NOIP2015滚粗记
    HelloWorld!
    For the strivers ——
    【DP】最长公共子序列
    【DP】青蛙过河
    【DP+拓扑】关键子工程
    【线段树+向量】POJ 2991 Crane
    【线段树】POJ3225 Help with intervals
    【数学】test20170311
  • 原文地址:https://www.cnblogs.com/alimy/p/10502601.html
Copyright © 2020-2023  润新知