0. 你有听说过DRY吗?

  me:不知道

  参考答案:

      

1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
  me:函数可以设置参数。

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

  me:无数个,但是设置多了也不是很好,代码不容易度阅读,一般一到两个比较合适;

  参考答案:可以的,理论上你想要有多少个就可以有多少个,只不过如果函数的参数过多,在调用的时候出错的机率就会大大提高,因而写这个函数的程序员也会被相应的问候祖宗,所以,尽量精简吧,在Python的世界里,精简才是王道!
3. 创建函数使用什么关键字,要注意什么?

  me:def创建函数,

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

4. 请问这个函数有多少个参数?

def MyFun((x, y), (a, b)):
return x * y - a * b

  me:4个

  参考答案:如果你回答两个,那么恭喜你错啦,答案是0,因为类似于这样的写法是错误的!
      我们分析下,函数的参数需要的是变量,而这里你试图用“元祖”的形式来传递是不可行的。

5.请问调用以下这个函数会打印什么内容?

def hello():
print('Hello World!')
return
print('Welcome To FishC.com!')

  me:“hello,world”

  参考答案:因为当Python执行到return语句的时候,Python认为函数到此结束,需要返回了(尽管没有任何返回值)。

动手

0. 编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。

  me:

def power(x,y):
return x**y

参考答案:

def power(x, y):
result = 1 for i in range(y):
result *= x return result print(power(2, 3))

1. 编写一个函数,利用欧几里得算法(脑补链接)求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。

  me:

def gcd(a, b):
while a != 0:
a, b = b % a, a return b

  参考答案:

def gcd(x, y):
while y:
t = x % y
x = y
y = t return x print(gcd(4, 6))

2.编写一个将十进制转换为二进制的函数,要求采用“除2取余”(脑补链接)的方式,结果与调用bin()一样返回字符串形式。

  me:

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 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))

第017讲:函数 - Python的乐高积木的更多相关文章

  1. 函数:Python的乐高积木 - 零基础入门学习Python017

    函数:Python的乐高积木 让编程改变世界 Change the world by program 相信大家小时候应该都玩过神奇的乐高积木,只要通过想象和创意,我们可以用它拼凑出很多神奇的东西. 随 ...

  2. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  3. 匿名函数python内置高阶函数以及递归

    匿名函数 python定义一个函数通常使用def关键词,后面跟函数名,然后是注释.代码块等. def func(): '''注释''' print('from func') 这样就在全局命名空间定义了 ...

  4. C语言第七讲,函数入门.

    C语言第七讲,函数入门. 一丶了解面向过程和面向对象的区别. 为什么要先讲面向过程和面向对象的区别? 面向过程,就是什么都要自己做.  比如你要吃饭. 那么你得自己做饭. 面向对象, 面向对象就是我要 ...

  5. 零基础入门学习Python(17)--函数:Python的乐高积木

    前言 相信大家小时候都玩过神奇的乐高积木, 只要通过想象力和创造力我们可以拼凑很多神奇的东西,那么随着我们学习的深入,我们编写的Python代码也将日益增加,并且也越来越复杂, 所以呢,我们需要找寻一 ...

  6. 课时17:函数:Python的乐高积木

    目录: 一.创建和调用函数 二.函数的参数 三.函数的返回值 四.课时17课后习题及答案 为了使得程序得代码变得简单,就需要把程序分解成较小得组成部分.有三种方法可以实现:函数.对象.模块. **** ...

  7. zip函数-Python 3

    zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表. zip函数在获取数据后,生成字典(dict)时比较好用. for examples: # Code based on P ...

  8. partial函数-python学习

    一个函数可以有多个参数,而在有的情况下有的参数先得到,有的参数需要在后面的情景中才能知道,python 给我们提供了partial函数用于携带部分参数生成一个新函数. def add(a,b,c=2) ...

  9. Python hasattr() 函数 // python中hasattr()、getattr()、setattr()函数的使用

    http://www.runoob.com/python/python-func-hasattr.html https://www.cnblogs.com/zanjiahaoge666/p/74752 ...

随机推荐

  1. BZOJ4625 [BJOI2016]水晶 最小割

    题意简述 给你一个三维的坐标系,坐标系上 \((x_i+y_i+z_i)\bmod 3 = 0\) 的点内有能量源.给定 \(n\) 个点含有能量值为 \(c_i\) 的水晶,如果一个水晶位于能量源上 ...

  2. Python网络爬虫数据解析的三种方式

    request实现数据爬取的流程: 指定url 基于request发起请求 获取响应的数据 数据解析 持久化存储 1.正则解析: 常用的正则回顾:https://www.cnblogs.com/wqz ...

  3. Arduino-数学函数

  4. js中或者vue中 Object.assign()用法详解

    Object.assign()是浅拷贝. 合并对象 var o1 = { a: 1 }; var o2 = { b: 2 }; var o3 = { c: 3 }; var obj = Object. ...

  5. 【leetcode】848. Shifting Letters

    题目如下: 解题思路:本题首先要很快速的计算出任意一个字符shift后会变成哪个字符,其实也很简单,让shift = shift % 26,接下来再做计算.第二部是求出每个字符要shift的次数.可以 ...

  6. POJ 2456 Aggressive cows ( 二分 && 贪心 )

    题意 : 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 <= xi <= 1e9) ...

  7. Codeforces 980D

    这题其实挺水的,但我比较vegetable,交了好多次才过. 题意: 给定一个序列,把这个序列的所有连续子序列分组,每组中任意两个数相乘是个完全平方数,输出每个子序列最少分的组数: 思路: 先把每个数 ...

  8. HDU 6623 Minimal Power of Prime

    Time limit 1000 ms Memory limit 65536 kB OS Windows 中文题意 给一个数n,设将n质因数分解后可以得到 \[n=\prod_{i=1}^{\omega ...

  9. <知识整理>2019清北学堂提高储备D2

    简单数据结构: 一.二叉搜索树 1.前置技能: n/1+n/2+……+n/n=O(n log n)  (本天复杂度常涉及) 2.入门题引入: N<=100000. 这里多了一个删除的操作,因此要 ...

  10. Nginx 在 Linux 下安装与搭建集群

    搭建集群图例 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分: 环境说明 Linux 为 CentOS 7.2 发行版 + Java jdk 1.8 + ...