鱼C论坛

 找回密码
 立即注册
查看: 1878|回复: 0

[技术交流] 零基础入门学习Python——笔记15之17讲函数

[复制链接]
发表于 2017-8-25 16:06:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
基础知识总结:
0、使用函数的好处:
0) 可以降低代码量(调用函数只需要一行,而拷贝黏贴需要N倍代码)
1) 可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都做修改
2) 使序更容易阅读(没有人会希望看到一个程序重复一万行“I love FishC.com”)

1、使用“def”关键字,要注意函数名后边要加上小括号“()”然后小括号后边是冒号“:”,然后缩进部分均属于函数体的内容

2、def MyFun((x, y), (a, b)):
    return x * y - a * b
这样的写法是错误的,函数的参数需要的是变量,而这里你试图用“元祖”的形式来传递是不可行的。
可以改为这样:
>>> def MyFun(x, y):
        return x[0] * x[1] - y[0] * y[1]

>>> MyFun((3, 4), (1, 2))  ——>结果为10

程序:
0、利用欧几里得算法求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数
小甲鱼的做法:
def gcd(x, y):
    while y:
        t = x % y
        x = y
        y = t
    return x   
print(gcd(4, 6))

自己的做法:
def Gcd(x,y):
    while y:
        z=x
        x=y
        y=z%y
    return x
num1=int(input())
num2=int(input())
print('最大公约数是:%d'%Gcd(num1,num2))
1、编写一个将十进制转换为二进制的函数,要求采用“除2取余”的方式,结果与调用bin()一样返回字符串形式。
小甲鱼的做法,小甲鱼有没有偷懒呀,我在百度上看的做法也是这样
def Dec2Bin(dec):
    temp = []
    result = ''   
    while dec:
        quo = dec % 2
        dec = dec // 2
        temp.append(quo)

    while temp:
        result += str(temp.pop())
   
    return result
print(Dec2Bin(62))

自己的做法:
def Doc_bin(doc):
    list1=[]
    result=''
    temp=doc
    while temp:
        list1.append(temp%2)
        temp=temp//2
        
    listlen=len(list1)
    while(listlen>0):  
        result += str(list1.pop())
        listlen-=1
        
    return result

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表