python基础1-简明python教程-5.2函数

上一篇 / 下一篇  2018-05-22 10:08:57 / 个人分类:python学习

7.可变参数
定义的函数里面有任意数量的变量,也就是参数数量是可变的,可通
过使用星号来实现。
声明一个诸如*param的星号参数时,从此处开始直到结束的所有位置参数
(Positional Arguments)都将被收集并汇集成一个称为“param”的元组
类似,当声明一个诸如 **param的双星号参数时,从此处开始直至结束的所有关键字参数都将被收集并汇集成一个名为param 的字典。
def total(a=5, *numbers, **phonebook):
    print('a', a)
    #遍历元组中的所有项目
    for single_item in numbers:
        print('single_item', single_item)
   #遍历字典中的所有项目
    for first_part, second_part in phonebook.items():
        print(first_part, second_part)
print(total(10, 1, 2, 3, jack=11123, john=2231, inge=1560))
输出:
a 10
single_item 1
single_item 2
single_item 3
Inge 1560
John 2231
Jack 1123
None
*numbers输出所有的位置参数,10不是single_item,输出a 10,
**phonebook输出所有的关键字参数。  为什么最后返回一个None。
因为python函数使用return返回值,如果不用return, 而用print输出值,这个函数默认还有一个返回值为None。
怎么修改成不返回none呢?
把print('single_item', single_item)成return('single_item', single_item);print(first_part, second_part) 改成return(first_part, second_part)
输出:
a 10
('single_item', 1)
要改成return返回多个参数的。(暂时不理解)
8.return语句
用于从函数中返回,就是中断函数。也可以选择在中断函数时从函数中返回一个值。maximum  函数将会返回参数中的最大值,
def maximum(x, y):
if x > y:
return x
elif x == y:
return 'The numbers are equal'
else:
return y #不写y只写return ,返回None
print(maximum(2, 3))
输出:
$ python function_return.py
3
如果return语句没有搭配任何一个值则代表着返回 None。 None在 Python 中一个特殊的类型,代表着虚无,它用于指示一个变量没有值,如果有值则它的值便是  None(虚无)。
每一个函数都在其末尾隐含了一句return None,除非写了return语句。
运行print(some_function()),其中some_function 函数不使用return语句,
def some_function():
pass
Python 中的pass 语句用于指示一个没有内容的语句块。
9.Docstrings
即文档字符串,当程序实际运行时,可以通过一个函数来获取文档。
函数的第一行逻辑行中的字符串是该函数的文档字符串(DocString)。注意文档字符串也适用模块(Modules)与类(Class) 。
该文档字符串所约定的是一串多行字符串,其中第一行以某一大写字母开始,以句号结束第二行为空行,后跟的第三行开始是任何详细的解释说明。 建议所有重要功
能的所有文档字符串中都遵循这一约定。
通过使用函数的__doc__(doc前后两个双下划线)属性(属于函数的名称)来获取
函数  print_max  的文档字符串属性。只消记住 Python 将所有东西都视为一个对象,这其中自然包括函数。

def print_max(x, y): #---文档字符串
    '''Print the maximum of two numbers.
                                                 
    The two values must be integers.'''#打印两个数值中的最大数,这两个数都应该是是整数
    #将x y转换为整数类型
    x = int(x)
    y = int(y)
    if x > y:
        print(x, 'is maximum')
    else:
        print(y, 'is maximum')
print_max(3,5)      #文档字符串写入参数
print(print_max.__doc__)# __doc__(前后两个双下划线)属性来获取函数                            print_max的文档字符串属性
输出:最后一行替换为help(print_max.__doc__)输出结果相同
5 is maximum
Prints the maximum of two numbers.
   The two values must be integers.(注意该行缩进三个字符'''的位置)




TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2018-11-13  
    123
45678910
11121314151617
18192021222324
252627282930 

数据统计

  • 访问量: 1637
  • 日志数: 13
  • 建立时间: 2018-05-07
  • 更新时间: 2018-09-05

RSS订阅

Open Toolbar