python基础拾遗(1)函数,模块

1.函数

    1.默认参数值

#含有默认值参数的函数必须把含默认值的参数放在普通参数之后
def sum(a,b=10):
    print(a,b)

#这样就不行
def sum(a=10,b):
    print(a,b)

sum(a=10)

    2.关键字参数

def sum(a,b=1,c=10):
    print(a,b,c)

#在使用函数时指定关键字后可以不按照函数要求顺序输入参数
sum(1)
sum(b=2,a=10)
sum(c=1,b=2,a=1)

    3.可变参数

    有时你可能想定义的函数里面能够有任意数量的变量,也就是参数数量是可变的,这可以通 过使用星号来实现

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=1123,John=2231,Inge=1560))

2.DocString

  DocStrings是python提供的一个重要功能用来帮助更好地记录和解释程序(类似于注释)。重要的是,我们可以在程序运行时,通过函数访问这些文档(name.__doc__)。

def	print_max(x,	y):	
    '''Prints	the	maximum	of	two	numbers.打印两个数值中的最大数。
    The	two	values	must	be	integers.这两个数都应该是整数'''

    #	如果可能,将其转换至整数类型
    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__)

3.模块

    1.导入

    导入的模块应该位于当前文件夹下或者环境变量的文件夹中。可以通过sys.path查看环境变量文件夹位置。

    另外,除后缀.py的文件可以作为导入模块外,C语言编写的模块也可在python中被使用。

    模块的导入方式有三种,分别是

        1)import 模块名

            这样的方式将会导入模块内的全部函数及变量,当需要使用相应函数时应该使用 a.sum()(模块名.函数名)这样的方式使用。 这样做的好处是导入的模块内的函数不会因名称与原有函数冲突,但是每次使用会比较麻烦,可以赋值给本地变量使用,另一方面导入模块有较高的代价,因此python引入了.pyc文件作为中间形式的文件,加快了该过程。

        2)from 模块名 import 函数名,变量名

            这样的方法能够直接导入模d块中的函数和变量名进行使用,但要注意该名称是否会和原有函数名产生冲突。

        3)from 模块名 import * 

            这种方法会直接引入模块中所有的函数及变量,但不包含注入“__version__”这样包含双下划线的变量。应该尽量避免使用这种导入方式,避免与原有名称产生冲突。

    2."__name__" 的使用

if __name__== '__main__':
    print('this program is being run by itself')
else:
    print('i am being imported from another module')

        通过使用__name__可以判断当前模块是否是被引用还是独自运作,从而可以根据出相应情况做出调整。

    3.dir()函数的使用

        在引入模块后,我们可以通过dir(模块名)函数来查看所引入的模块所包含的函数名,对象名,变量名。当没有提供参数时则会返回当前模块的相关信息。

      当dir()中的参数为某一个类时,则会返回该类中所含的对象名如 dir(str) 可查看str类中包含的对象。同时,还有一个vars() 函数也可以返回给你这些值的属性,但只是可能,它并不能针对所 有类都能正常工作。

import sys

def doNothing():
    return None
    
a = 1

#查看sys所包含函数名,类名,变量名
print(dir(sys))
print("\n")

#产看当前模块信息
print(dir())

        4.包

       现在,你必须开始遵守用以组织你的程序的层次结构。变量通常位于函数内部,函数与全局 变量通常位于模块内部。如果你希望组织起这些模块的话,应该怎么办?这便是包 (Packages)应当登场的时刻。
包是指一个包含模块与一个特殊的        __init__.py        文件的文件夹,后者向    Python    表明这一文 件夹是特别的,因为其包含了    Python    模块。
       建设你想创建一个名为“world”的包,其中还包含着    ”asia“、”africa“等其它子包,同时这些子 包都包含了诸如”india“、”madagascar“等模块。
       下面是你会构建出的文件夹的结构:

-	<some	folder	present	in	the	sys.path>/
    -	world/
        -	__init__.py	
        -	asia/
            -	__init__.py
            -	india/
                -	__init__.py
                -	foo.py
            -	africa/
                -	__init__.py
	            -	madagascar/																
                    -	__init__.py																
                    -	bar.py

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值