第八章 函数

#1.
#A:函数的定义与使用
#B:传递实参的方法有:位置实参、关键字实参。注意:这两种方式不能混用
#C:python不支持函数重载
#D:函数默认形参必须是不可变对象,可以指定为None
def fun(value0, value1 = None, value2 = "szn"):
    print(str(value0) + " " + str(value1) + " " + str(value2))
fun(1, 2, "s")                              #1 2 s
fun(value0 = 1, value1 = 2)                 #1 2 s
fun(value0 = ‘szn‘, value1 = 1, value2 = 2) #szn 1 2
fun(1)                                      #1 None szn

#2.
#A:对于不可变参数作为函数形参时候,相当于C++的传值调用,比如字符串,数字都是不可变的
#B:对于可变参数作为函数形参时候,相当于C++的传引用调用,比如列表,字典都是可变的
def fun(value):             #此fun函数会覆盖上一个定义的fun函数
    value = 10
value = 1
fun(value)
#fun(value0 = ‘szn‘, value1 = 1, value2 = 2)#运行会出错
print(value)                #1

def fun(value):
    value.append(10)
Test = [1]
fun(Test)
print(Test)                 #[1, 10]

#3.
#A:函数返回值
def fun(value):
    value.append(0)
    return value
Test = [1]
Test1 = fun(Test)
Test1[0] = 2
print(Test)                 #[2, 0]
print(Test1)                #[2, 0]

#4.
#A:传递任意数量的实参
def fun(*value):            #*value将创建一个空的元组,将所有接受到的值都放入其中
#   value[0] += 1           #运行会出错
    print(value[0])         #1
    print(value)            #[1, ‘s‘]
fun(1, ‘s‘)     

#5.
#A:结合使用位置实参和任意数量的实参,必须在函数定义中将接纳任意数量实参的形参放在最后
def fun(size, *value):
    print(str(size), end = " ")
    for v in value:
        print(str(v), end = " ")
fun(10, 1, 2, 3)            #10, 1, 2, 3
print("")

#6.
#A:可以让函数接受任意数量的键-值对
def fun(value0, **value1):
    print(str(value0), end = ‘ ‘)
    print(value1)
fun(10, value1 = ‘3‘, value2 = {1: ‘s‘})    #10 {‘value2: {1: ‘s‘}‘, ‘value1‘: ‘3‘}
Test = {‘3‘ : 2, ‘s‘ : 1}   #这里的键值必须是字符串类型
fun(10, **Test)             #10 {‘3‘: 2, ‘s‘: 1}
print("")

#7.
#A:将函数存储在被称为模块的独立文件中,再将模块导入到主程序中。import语句允许在当前运行的程序文件中使用模块中的代码
#B:一般import应该放在程序开始的地方
import Te                   #Te文件只需存在当前目录下即可 这句代码让Te里的所有函数可以被使用 并且当此文件是第一次被导入当前文件的时候,会从上到下执行Te文件里的代码
                            #Te.py
print("import")             #import
Te.TeFun()                  #Te.py
#TeFun()                    #出错
print("")

from Te import TeFun        #由于Te文件不是第一次被导入,所以不执行Te里面的代码
TeFun()                     #Te.py

#8.
#A:如果导入的函数名称太长或者与当前文件的函数名称存在冲突,可以在导入函数的时候使用as给函数指定一个别名
#B:可以给导入的模块重命名
#C:使用*可以导入模块里的所有函数,但是不推荐使用,容易产生名字冲突
print("")
import Te as T
T.TeFun()                   #Te.py
from Te import TeFun as TFun#由于Te文件不是第一次被导入,所以不执行Te里面的代码
TFun()                      #Te.py
from Te import*             #由于Te文件不是第一次被导入,所以不执行Te里面的代码 不建议使用这种方法
TeFun()                     #Te.py

  

时间: 2024-08-03 13:59:49

第八章 函数的相关文章

第八章 函数幽探

内联与宏: C++新增的内联函数与普通函数一样是按值传递的,而宏是直接替换的. #define SQUARE(X) X*X int a; a = SQUARE(5+10) //相当于a = 5+10*5+10 C++的引用变量: 引用变量的最大用途是用作函数的形参,通过将引用变量作为参数,函数将使用原始数据而不是其副本.引用为处理大型结构提供了非常方便的途径. 将引用作为函数参数的参数传递方法称为按引用传递. 传递引用的限制更严格,引用只是得到了变量的别名,此时将不能传递表达式. 临时变量.引用

Python编程从入门到实践第八章-函数

8-1 def display(): print("I will learn function in this chapter")#函数 function chapter章节 display() 8-2 def favorite_book(title): print("One of my favorite book is " + title.title() + ".") favorite_book('sword coming') 8-3 def

JavaScript基础学习之-JavaScript权威指南--8.1-8.4函数

第八章函数 函数是JavaScript中很重要的一个章节,懂得这个章节就可以轻松阅读别人的代码,会熟悉一些不常用的代码写法. 按照难易程度控制文章的长度. 前言: 函数是一段只定义一次,可能被执行或调用任意次的JavaScript代码. 若一个函数挂载在一个对象上,作为对象的属性,称为对象的方法.当通过这个对象来调用函数时,该对象就是此次调用的上下文,函数会隐式自动获得上下文对象. JavaScript中函数即对象,程序可以任意操控. JavaScript的函数可以嵌套在其他函数中定义,这样嵌套

python入到到实战--第八章

第八章 函数 定义函数 关键字def def get_name(): print("测试函数代码") 调用函数 get_name() 向函数传递信息------在函数的括号内添加需要传递的信息 实参和形参 在函数定义时,函数括号内的参数是形参: 在调用函数时,函数括号内的参数是实参: 传递参数----还可以使用列表和字典 位置实参:实参的顺序和形参的顺序相同---------顺序很重要,如果顺序错误,则实际结果会跟预期结果差别 关键字实参:每个实参由变量名和值组成: 位置实参: def

《C与指针》读后感

到目前为止,我已经读到了<C与指针>第十六章,总共十八章,接下来的章节内容分别是标准函数库.数据结构.以及C语言的运行环境,还没有完全做完练习就写这篇读后感原因有二,第一个当然是最主要的,这本书的前面十五章已经差不多完全概括这门语言的精髓了,第二个原因就是我很懒,懒得做下面的习题,这些习题的答案在网上都找得到,不过中文的解释倒是不多,所以我才一边做练习一边试着翻译答案,不过英语水平确实不太高,翻译的也不太好,大概意思吧. 接下来说正题,这本书--<C与指针>,这本书并不是很适合初学

JS、jQuery

JS 一.词法结构 1.区分大小写 2.注意 //单行 /* 多行注释 */ 3.字面量(直接量 literal) 12 数字 5.8 小数 "hello" 'hello' true /js/gi //正则 null //空 {x:1,y:2} {1,2,3,4} 4.标识符(变量)和保留字 5.分号可以省略但是可能会产生问题,js会自动补 二.类型.值和变量 1.原始类型 数字 字符串 布尔 null空 undefined未定义 2.对象类型 3.类 Array Function D

python读书笔记-《A Byte of Python》中文第三版后半部分

编辑器:windows,linux 不要用notepad,缩进糟糕 -------------- 5.18缩进 同一层次的语句必须有相同的缩进.每一组这样的语句称为一个块. 1i = 5 2  print('Value is ', i)# Error! Notice a single space at the start of the line行首有空格 3print('I repeat, the value is ', i) 当你运行的时候,会得到下面的出错信息: 1File "whitesp

JavaScript 权威指南第6版 - [阅读笔记]

JavaScript 基础   Page 13 (1)<script> 的属性:async,charset,defer='defer',language已废,src,type (2)null 是一个空值,是一个特殊对象: undefined 表示空值,它不是对象 是未定义的意思:undefined==null 返回true; (3)全局变量: 全局属性:undefined.Infinty.Nan 全局函数:isNaN()[Not a Number不是数字返回true].parseInt().e

JS权威指南读书笔记(三)

第七章 数组 1 数组的实现是经过优化的,用数字索引来访问数组元素一般来说比访问常规的对象属性要快的多. 2 数组直接量的语法允许有可选的结尾的逗号,故[ ; ; ]只有两个元素而非三个. 3 调用构造函数创建数组 a 调用时没有参数 => 空数组 b 调用时有一个数值参数 => 指定长度的数组 c 显式指定两个或多个数组元素或一个非数值元素 => 参数成为新数组的元素 4 稀疏数组:包含从0开始的不连续索引(即 '索引值' in '数组' 运算返回 false)的数组.可以用Array