zoukankan      html  css  js  c++  java
  • 小甲鱼Python第017讲函数

    测试题:
          
    0. 你有听说过DRY吗?
           emmm,DYP是程序员工人的指导原则:Don't Repeat Youself。

      武装自己的思想,拿起函数,不要再去重复拷贝一段代码。
    1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?
         使用函数的优点:

      0)可以降低代码量(调用一行即可,粘贴复制将增加大量代码)

      1)可以降低维护成本(若修改只需要修改函数内部)

      2)更容易阅读

    2. 函数可以有多个参数吗?
         任意多个。只不过参数越多,出现错误的几率就越多。


    3. 创建函数使用什么关键字,要注意什么?

      关键字“def”,函数名后加“()”,小括号后加“:”。eg:

    1 def first(name,sex="girl"):
    2     print(name+"是一个"+sex)
    3 
    4     return
    5 output1 = first ("小白")
    6 output2= first(sex = "boy",name ="小黑")
    7 output2= first( "boy","小黑")

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

    1. def MyFun((x, y), (a, b)):
    2.     return x * y - a * b
    复制代码

      欧吼!我错了~~

      原来是0。因为类似于这样的写法是错误的。函数的参数需要的是变量,而这里试图用元组的形式传递是不可行的。

      修改:

    1 def MyFun (x,y):
    2     return x[0]*x[1]-y[0]*y[1]
    3 result = MyFun((3,5),(1,4))
    4 print(result)


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

    1. >>> def hello():
    2.         print('Hello World!')
    3.         return
    4.         print('Welcome To FishC.com!')
    复制代码

      会打印:Hello World!

      因为python在执行函数的时候,遇到return就默认函数结束,需要返回,不对函数进行下一步运行。(尽管没有返回值)

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

     1 #方法一:
     2 def power1(x,y):
     3     return x**y
     4 g =power1(2,3)
     5 print(g)
     6 #方法二:
     7 def power2(x,y):
     8     result = 1
     9     for i in range(y):
    10         result  *=x
    11     return  result
    12 print(power2(3,3))

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

     1 print("求解最大公约数")
     2 def gcd(x,y):
     3     while y != 0 :
     4         result= x % y
     5         x=y
     6         y=result
     7     return x
     8 x = int (input("请输入一个正整数x:"))
     9 y = int (input("请输入一个正整数y:"))
    10 g = gcd(x,y)
    11 print(g)

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

     1 print("十进制转二进制")
     2 def tansl(x):
     3     list = []
     4     number = ""
     5     while x :
     6         y = x%2
     7         x= x//2
     8         list.append(y)
     9     while list:
    10         number += str(list.pop())
    11     return number
    12 x = int(input("请输入一个正整数:"))
    13 print(tansl(x))

    3. 请写下这一节课你学习到的内容:格式不限,回忆并复述是加强记忆的好方式

  • 相关阅读:
    mvc 注册脚本的其他方法
    如何将html代码转换为Xml并生成Dom树
    用TFIDF值来判断词的重要性
    oem key
    vs2010 下的ado.net 实体模型创建数据库时datetime 类型的问题
    asp.net mvc 动态注册脚本
    ASP.NET 中如何对生成的 HTML 内容流进行控制
    C# 子窗体调用父窗体的方法
    layui 弹出新页面
    winform excel导入进度条
  • 原文地址:https://www.cnblogs.com/IT-NXXB/p/12909328.html
Copyright © 2011-2022 走看看